**TI92P*Group file dated 09/07/00, 17:05nw40 control _rangebodegenumstepsnyquist polestNrangefacYsetboundsetupndtutorial !vmargin#yhigin#zeroesD$ZmaxminR R(min;|pzmaxpzՊmaxpzՉ:pzminpzՊminpzՅ:pzlt}'max(minmaxmin}gaincontrol\polesgaincontrol\zeroesڭKpzpz} distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reeder returns min,max rootsgainֺCDisp 10^xz?0#  NxhiNxloMteamodeExact/Approx-& control\olLeZ+*z)(xhi'xlo&FUNCTION-Graph 2-graph-split 2 app-DEGREE-Angle-C xloM?0# Nz)M*N t * O) OPtText string(10^y),ceiling(xlo)+.03,y*N)M; }& control\olKTe+magmaxT*magminT)(xhi'xlo&FUNCTION-Graph-graph-split 1 app-2-number of graphs-TOP-BOTTOM-Split Screen-gaincontrol\olPause magminT - -magmaxT dB-zmagmagmaxmagmaxmag:magmagminmagminmag:& gainKmagxhixlocontrol\numstepsxhixlotC#zmagmaxC#magminmagmaxmagminmag} dB are 20*log(mag)}xlo  - -xhi  Hz-zrangecontrol\rangefacTxhirangecontrol\rangefacTxlogaincontrol\_rangerangexhixlorange}APPROXIMATE-Exact/Approx-gainzAUTO-Exact/Approx-Exact/Approx- eamodeeamode} plot phase in degrees plot amp. in dB distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas ReedergainAcontrol\yhizzcontrol\yhi2z NeamodeExact/Approx-@#control\yhize*control\yhi&control\thicontrol\tlo control\olXz&control\thicontrol\tlo control\olYe:control\thi9control\tlo& control\olX& control\olYegaincontrol\ol)on-axes-on-grid-Pause tick+tick(tickz@A#*'&T?P#N ticktick}z&&y: -* zx: -& - -' z;:9tt&tt gaincontrol\setboundPause 9  - -:  Hz-zDisp tstep:9control\numsteps;mmcontrol\rangefacT:mmcontrol\rangefacT9gaincontrol\_rangemmmm}PARAMETRIC-Graph-APPROXIMATE-Exact/Approx-gainzAUTO-Exact/Approx-Exact/Approx- eamodeeamode}FULL-Split Screen- v14: log setbound calls _range calls setbound uses Graph distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reedergaingg] distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reedergg, -/*z)]Pause Disp ymax**e2XK*e2XK*Disp cai>ymaxcDisp ymaxDisp aiwhen(ai,ai,ai,)aiDisp e2ClrIOabs(imag(e2))aiLocal ai,c''e2Y'e2Y'&&e2Y&e2Y&good;+,,e2Ye2Xgoodvare2incvarmaxvarmintgoode2}*C#z'C#& distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas ReederincvarmaxvarminvarܳH NO WARRANTY-bThese programs come with ABSOLUTELY-bGNU General Public Licence-bdistributed free under the-bCopyright (C) 2000 P. Douglas Reeder-bControl Toolbox 1.1-babout-VPause control\_range(-Wutility-Vcontrol\Nyquist(-Wcontrol\Bode(-WGraphing-Vcontrol\vmargin(-Wcontrol\zeroes(-Wcontrol\poles(-Wanalysis-VOn-grid-On-Axes- distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reeder Copyright (C) 2000 P. Douglas Reeder distributed free under the GNU General Public Licence reeder.29@osu.edu INTRODUCTION Open this file in the calculator Text Editor Press [F4] repeatedly tostep through this tutorial. The lines marked with a "C" will be executed. Press [F3] then [1] to set split screen ("Script view"). The Control Toolbox is a collection of functionsand programs to aid solving Control Theory problems, i.e. problems regarding systems which can be described by sets of ordinary differentialequations. This tutorial assumes you have a basic understanding of Laplace tranformed differential equations, i.e. functions on the s-plane. GAINS Gains (transmittances) and transfer functions are written in the same form as they are commonly written on the blackboard: as expressions involving s, the complex frequency. For example, an integrator can be written C1/s A system with a zero at -4 and poles at -3 and +2 can be written C(s+4)/((s+3)*(s-2)) or C(s+4)/(s^2+s-6) or any other algebraicly equivalent form. Press [2nd] to generate the square root of -1 for systems with complex roots such as C(s+3)/((s+1-)*(s+1+)) You can save these expressions to variables: CDefine gain = (s-10)/(s+5) DON'T save them as functions: CDefine gain(s) = (s-10)/(s+5) Use the rules of block algebra to combine gains. The gain of two blocks in series is the product of their gains: CDefine g1 = 1/(s+1) CDefine g2 = (s-2)/(s+2) Cg1*g2 The gain of two blocks in parellel is the sum of their gains: Cg1+g2 The gain of a positive feedback loop with forward (open loop) gain g andfeedback gain h is CDefine g = 1/(s-1) CDefine h = (s+2)/((s+10)*(s+9)) CDefine clgain = g/(1+g*h) Cclgain If a pole and zero occur at the same frenquency, e.g. C(s+2)/((s+5)*(s+2)) Move one of the roots to avoid cancellation: C(s+2.0000001)/((s+5)*(s+2)) Fortunately, this is rare in real-world problems. ANALYSIS The function poles() finds the poles (roots of the characteristic equation): Ccontrol\poles( (s+3)/(s^2+3*s+2) ) The function zeroes() (spelled with an 'e') finds the zeros: Ccontrol\zeroes( (3*s^2-3*s-18)/(s+5) ) The function vmargin() finds the vector margin, a measure of stability: Ccontrol\vmargin(1/(s+1)) You may want to press [diamond][enter] to enable approximation when running vmargin() on complicated expressions. GRAPHING The program bode() graphs amplitude in decibels and phase in degrees: Ccontrol\bode( 100*(s+10)/((s+30)*(s+90)) ) The graphing menu items may be used to save the graph, zoom in or out, and draw lines, tangents and text. Trace ([F3]) is particularly useful for getting exact values. The frequency of a point is 10^x. To switch between the two Bode graphs, press [2nd][APPS]. To plot one of the graphs full-screen, switch to that graph and press [MODE][F2] and set split screen to FULL. The number of data points calculated is set by the variable control\numsteps. The number of data points plotted is set by the variable xres. The range of frequencies plotted can be increased by increasing control\rangefac. The program nyquist() graphs on the complex plane: Ccontrol\nyquist( 100*(s+10)/((s+30)*(s+90)) ) In Nyquist plots the frequency of a point is 10^t. The number of data points plotted is set by the variable control\numsteps. SETUP The program setup() sets some graphing parameters and sets up a custom menu. In the Home application you can enable the custom menu by pressing [2nd][CUSTOM]. Ccontrol\setup() LIMITATIONS Symbolic constants can be used while combining gain expressions, but must be replaced with literal constants before using the toolbox functions: CDefine g2 = K/(s-2) CDefine h2 = (s-1)/(s+4) CDefine clgain = g2/(1+g2*h2) Ccontrol\bode(clgain|K=20) end of tutorial<marginR{marginmarginmarginmargin& zKmhimlocontrol\numstepsmhimlotcontrol\rangefacTmhicontrol\rangefacTmlocontrol\_rangeC#margin}mhimlo}margin} distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reeder vector margin; g in terms of s6 ?(uW&YC#!'&(&'(gg distributed free under the GNU General Public Licence Copyright (C) 2000 P. Douglas Reedergg2