<?xml version="1.0" encoding="UTF-8"?>
<Worksheet><Version major="6" minor="1"/><View-Properties><Hide name="Section Range"/><Hide name="Group Range"/><Zoom percentage="100"/></View-Properties><Styles><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 3" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Author" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 2" rightmargin="0.0" spaceabove="8.0" spacebelow="2.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Author258" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal257" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Title" rightmargin="0.0" spaceabove="12.0" spacebelow="12.0"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="Heading 3" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Heading 2" readonly="false" size="14" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle369"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle368"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle367"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle366"/><Font background="[0,0,0]" italic="true" name="_cstyle365"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle364"/><Font background="[0,0,0]" italic="true" name="_cstyle363"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle362"/><Font background="[0,0,0]" italic="true" name="_cstyle361"/><Font background="[0,0,0]" italic="true" name="_cstyle360"/><Font background="[0,0,0]" family="Times New Roman" name="2D Comment" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="Page Number" underline="false"/><Font background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" name="Maple Input"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle359"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle358"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle357"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Author258" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle356"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle355"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle354"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle353"/><Font background="[0,0,0]" italic="true" name="_cstyle352"/><Font background="[0,0,0]" italic="true" name="_cstyle351"/><Font background="[0,0,0]" italic="true" name="_cstyle350"/><Font background="[0,0,0]" italic="true" name="_cstyle349"/><Font background="[0,0,0]" italic="true" name="_cstyle348"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle347"/><Font background="[0,0,0]" italic="true" name="_cstyle346"/><Font background="[0,0,0]" name="_cstyle345" size="12"/><Font background="[0,0,0]" italic="true" name="_cstyle344"/><Font background="[0,0,0]" italic="true" name="_cstyle343"/><Font background="[0,0,0]" italic="true" name="_cstyle342"/><Font background="[0,0,0]" italic="true" name="_cstyle341"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle340"/><Font background="[0,0,0]" foreground="[0,128,128]" italic="false" name="Hyperlink" underline="true"/><Font background="[0,0,0]" family="SymbolPi" italic="false" name="_cstyle337"/><Font background="[0,0,0]" family="SymbolPi" italic="false" name="_cstyle336"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle335"/><Font background="[0,0,0]" italic="true" name="_cstyle334"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle333"/><Font background="[0,0,0]" italic="true" name="_cstyle332"/><Font background="[0,0,0]" italic="true" name="_cstyle331"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle330"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle299"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle298"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle297"/><Font background="[0,0,0]" italic="true" name="_cstyle296"/><Font background="[0,0,0]" italic="true" name="_cstyle295"/><Font background="[0,0,0]" italic="true" name="_cstyle294"/><Font background="[0,0,0]" italic="true" name="_cstyle293"/><Font background="[0,0,0]" bold="true" italic="true" name="_cstyle292"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle291"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle290"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle329"/><Font background="[0,0,0]" italic="true" name="_cstyle328"/><Font background="[0,0,0]" italic="true" name="_cstyle327"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle326"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle325"/><Font background="[0,0,0]" italic="true" name="_cstyle324"/><Font background="[0,0,0]" italic="true" name="_cstyle323"/><Font background="[0,0,0]" italic="true" name="_cstyle322"/><Font background="[0,0,0]" italic="true" name="_cstyle321"/><Font background="[0,0,0]" italic="true" name="_cstyle320"/><Font background="[0,0,0]" bold="true" name="_cstyle287"/><Font background="[0,0,0]" italic="true" name="_cstyle286"/><Font background="[0,0,0]" italic="true" name="_cstyle285"/><Font background="[0,0,0]" italic="true" name="_cstyle284"/><Font background="[0,0,0]" italic="true" name="_cstyle283"/><Font background="[0,0,0]" italic="true" name="_cstyle282"/><Font background="[0,0,0]" italic="true" name="_cstyle281"/><Font background="[0,0,0]" italic="true" name="_cstyle280"/><Font background="[0,0,0]" italic="true" name="_cstyle319"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle318"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle317"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle316"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle315"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle314"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle313"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle312"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle311"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle310"/><Font background="[0,0,0]" italic="true" name="_cstyle279"/><Font background="[0,0,0]" italic="true" name="_cstyle278"/><Font background="[0,0,0]" italic="true" name="_cstyle277"/><Font background="[0,0,0]" italic="true" name="_cstyle276"/><Font background="[0,0,0]" italic="true" name="_cstyle275"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle274"/><Font background="[0,0,0]" italic="true" name="_cstyle273"/><Font background="[0,0,0]" italic="true" name="_cstyle272"/><Font background="[0,0,0]" italic="true" name="_cstyle271"/><Font background="[0,0,0]" italic="true" name="_cstyle270"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Title" readonly="false" size="18" underline="true"/><Font background="[0,0,0]" italic="true" name="_cstyle309"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle308"/><Font background="[0,0,0]" italic="true" name="_cstyle307"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle306"/><Font background="[0,0,0]" italic="true" name="_cstyle305"/><Font background="[0,0,0]" italic="true" name="_cstyle304"/><Font background="[0,0,0]" italic="true" name="_cstyle303"/><Font background="[0,0,0]" italic="true" name="_cstyle302"/><Font background="[0,0,0]" italic="true" name="_cstyle301"/><Font background="[0,0,0]" italic="true" name="_cstyle300"/><Font background="[0,0,0]" italic="true" name="_cstyle269"/><Font background="[0,0,0]" italic="true" name="_cstyle268"/><Font background="[0,0,0]" italic="true" name="_cstyle267"/><Font background="[0,0,0]" name="_cstyle266" underline="true"/><Font background="[0,0,0]" italic="true" name="_cstyle382"/><Font background="[0,0,0]" name="_cstyle265" underline="true"/><Font background="[0,0,0]" italic="true" name="_cstyle381"/><Font background="[0,0,0]" name="_cstyle264" underline="true"/><Font background="[0,0,0]" italic="true" name="_cstyle380"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Normal" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Normal257" readonly="false" size="10" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle262"/><Font background="[0,0,0]" italic="true" name="_cstyle261"/><Font background="[0,0,0]" name="_cstyle260" underline="true"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle379"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle378"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle377"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle376"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle259"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle375"/><Font background="[0,0,0]" italic="true" name="_cstyle258"/><Font background="[0,0,0]" italic="true" name="_cstyle374"/><Font background="[0,0,0]" italic="true" name="_cstyle257"/><Font background="[0,0,0]" italic="true" name="_cstyle373"/><Font background="[0,0,0]" italic="true" name="_cstyle256"/><Font background="[0,0,0]" italic="true" name="_cstyle372"/><Font background="[0,0,0]" italic="true" name="_cstyle371"/><Font background="[0,0,0]" family="SymbolPi" name="_cstyle370"/></Styles><Page-Numbers enabled="false" first-number="1" first-numbered-page="1" horizontal-location="right" style="Page Number" vertical-location="bottom"/><Group><Input><Text-field layout="Title" style="Title">SERIES COMPENSATION DESIGN</Text-field><Text-field layout="Title" style="Title">USING THE ROOT LOCUS</Text-field><Text-field layout="Author" style="_cstyle256"><Font bold="false" encoding="ISO8859-1" family="Times New Roman" foreground="[0,0,0]" size="12" underline="false">\251 2004 J.M. Redwood.</Font></Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Synopsis</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  This worksheet illustrates a method for designing a series-compensation network for a simple servo.  The method involves altering the root locus of a servo by suiting the network's poles and zeros in the complex plane so that the locus passes through dominant poles that produce the desired response.  The compensated servo's responses to standard inputs are then compared with those of the uncompensated servo.  Finally, the network is designed using standard components and the compensated servo's performance is checked using these components.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">License</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  This worksheet and the package of procedures entitled "Bode2", may be used, adapted, or copied, provided that copyright is acknowledged and the whole of this License section is included in any copies, or adaptations, of the worksheet, or of the package.</Text-field><Text-field layout="Normal" style="Normal">  This worksheet and the "Bode2" package may be used for educational purposes free of charge.</Text-field><Text-field layout="Normal" style="Normal">  Commercial users are not required to pay a license fee for this worksheet, or for the "Bode2" package.  Instead, they are requested to make a donation to Cancer Research UK, National Office, 61 Lincoln's Inn Fields, LONDON, WC2A 3PX, UK.  The donations line telephone number is +44 (0)20 7009 8820; the Fax number is  +44 (0)20 7269 3100; and the E-mail address is<Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle286" underline="false"> </Font>"customerservices@cancer.org.uk".  The size of donation is left to the user's discretion.</Text-field><Text-field layout="Normal" style="Normal">  This worksheet and associated  "Bode2" package of procedures are offered without warranty of any kind whatsoever.</Text-field><Text-field layout="Normal" style="Normal">   </Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Resources</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  This worksheet uses significant computer resources.  If necessary, the user should separate the worksheet into two parts, comprising everything down to and including the subsection "Poles and Zeros" in the "Compensated Servo" section, and then that subsection together with the remainder.  Copying the diagrams to a different file, and then deleting them from the worksheet may also help to free resources.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Introduction</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  The servo examined in this worksheet rotated a turntable about its vertical axis to a position determined by a remote synchro-control transmitter.  The turntable carried a load firmly fixed to it with its center of mass on the turntable's vertical axis.  The servo comprised a torque motor driving the table and a synchro control transformer through 3:1 reduction gearing.  The table drove another synchro control transformer through 36:1 step-up gearing.  The error between this 36-speed synchro control transformer and the remote synchro control transmitter was fed through a pre-amplifier, phase discrimination circuits and a series compensation network to a power amplifier and thence to the torque motor's field windings.  The torque motor had a permanent-magnet armature and the torque it produced was proportional to the current in the field windings.</Text-field><Text-field layout="Normal" style="Normal">  Without compensation, the servo was unstable.  A series compensation network was used to stabilize the servo and its design is illustrated in this worksheet.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Performance Required</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  The servo was required to have a fast response to a change of position input and to follow a constant speed input closely, which could contain noise at 16 cycles per second (cps) and above.  The maximum constant speed to be followed was 30 rpm.  Experience suggested that a servo with the following parameters would produce satisfactory results:</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">a.  Velocity error coefficient = 80 radians/second,</Text-field><Text-field layout="Normal" style="Normal">b.  Undamped natural frequency = 30 radians/second, and</Text-field><Text-field layout="Normal" style="Normal">c.  Damping ratio = 0.55.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Since radians are dimensionless, radians/second will be expressed as 1/sec in the remainder of this worksheet.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The servo loop is illustrated in the sketch below.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Block Diagram</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field alignment="centred"><Image height="414" width="560">TUZOV3RLVWI8b2I8Uj1NRExDZE5OWmpqOnRzOkg6PHVaYXRRSj08T2BMb1xcanl5eXlRdGZ5c2hDO0NYTENUSmNEWG9YdXF4UUt1UGVEQUlCdmF1VW9oQ29XVHFmSGNnckt1bklSSkV0S3lCO2VCYW1Xaz1GRnNidU11WF1EZHVVPl1FcltSakdEUGFlREF0Y1lkQktDRD9XWV9FbE9yRE9iWk9iWGl0R0tDeElWSVNEQFdETG9jcnliY1NzR1VHcENTaW13a2FldXVzd1lkbmNXaHVXaFNVT3lXWGtXSHVXTXdTSXllWUlJeVdYPE1naktEQVlSXztWOkFiO1NCQFtDUjtIWj1yOjpaUmh3RWFfS0dlUm9mVHZxUFBebHZoYk9walhyTEl5b3Bdb0hkU3ZxYl9ySnlgRGFwclBtZ29pTVlcXGBpd2ZpalNZZmNJW0tPb1k/cV5gYWBId0tBbTxxeXd5bVFfYjtXZ1ZZeWtpX0VPZW5wYm9ucURBbHFgd0tRYGVHeXE+Z1NwYl1PXFxOZ2l5T3N5SXhmd3RbeWBed3hOX2RAZ19GZ2RXSGxJb11VUF50R3BNVmRtV14+aFtDUWpSXmxZX2w/YHNnUG49b2RYb2lOYXU9d1tGX3BDZmpgUF9sUHM6WGRqcG9GZmhtdm5MT3hTUWxWSHVXYXRudnByVnJNZnM7P2Z4P2h5UXZtWHlwP1xcbWZ4W3lwQ1F5YXdlWEZxbXFweEBbb0h5dUBiUW9pdU9jTnBpcnF5RVB5RWhqTUd5YUlnPlB1Vml5S1F2W1FkdEdkbVZcXF1RdWJHdzp5XVF3XXl4bl5oZ3dwYD9hdl5pYml5altPYFxceGpmWW1vV2RtP3lhVnlwWFxcaHdjZml5c052Qkd0ZEZlX2BiZ2hjS1BwPz93UWlhXFxwYWhXcmVecUpfWzthdFlGbVt4YVhQeUB4Yl9BdVhYYmlweFdOYXdPeWN5djxmd3RIa3RGZldJX0RodjxHdz5xZUtZbVN2Zl53X1VPZ1pxd29QY2pOaGZwdndJb3BxdT9GZURxZmM/bXJIcFlWcVd4bkFmYT9oc09vXWxvZFRgdztnZmZedDp4cGdQeENGbVE/dVphdXhAc0NuanNJaEZhaExOcUtnb0lWZ0xgZE1xYExnYFk+ZEFOcVJGb2xgZVdmaz9IaUxmcGlvaWdeXWl5bU1mak9IdHVxWk1Jbj15b0dZbnc/dFd3b2dPdHZfYUZJZGZHXnlZXkZXd14/XFxlaW5cXEdcXGBZeFNncVtuZW5OZFZhaG1Hc1B5Ynd2ZWxHbVxcaXVLaWBrYFpFeGVGQWllSGJ5SFxcX0d1bFd3P3FgVmldXT9yPU9gb05dRVZyXFxPZ05fYW9IZFxcQFtHWG5oVnRCYWhLQW9PYWtFQW9haXZXQF9GSGlqaHBLR2toUXFSaWdGaXNLX1o9WWdOdm1kZ3RSTnJJaGM+UVxcP2FjRXhmbD5nXml4YmFqWD5dY3hsXFxWXz1uXV1vZnRAZ0lQYldvdkQ/ZktfZ0ZvbXFxa3JwdU5WZXhnY3BxXVVpcUhId3FReWA/aUZ4XWVxa0Vxc3R3cmVQZUhZaWNpa0F4ZldQclRRZmFIb1N3Z1hpXFxteXF2QHZJP3lDd2hVPnFlPnhYV3FAeHFBRm15QFtVSFxcUW95YFduR3lqXFxWZ2d3YFp4Z0RYc1o/bHNIamFvXkR5b14+aHBAZkRRcHlwbUNhZlFnY3hWdlFHeGhGaGNpW2BJbz5mbXB4b05AYGRpbkFRdU14bUJgYXRub1JvXFxbVmNdYGF5T1xcbG9vdldxckZcXG9mZ15GaWxZcG1wbk1IaGdpYmVfdkx3b3h4cEFxbWdwXFxzYG1LSGVteXNXX2hcXFZyRV9yWnd2eFhuaEldYVBtXFxebHRGeW94YmBYYlhXbXZmdnFXa0RmdHJmc1R4eFlQb1l3ckl3dW95a2JOdnJBcFB5XFxiWW1AZnhoUHVgSW14YWJFcWpqUWdqWGtRR3llRm93UHlTSF1xeGtPVnN1XnRRb25faXNOR2FqSXdHcHd3P2tcXFFgdUZrTHhcXFFvXUt5XmFnZWBmcE1paT1Jc3FoXl1AZ0ZwZ3h4cUt4bnlJdlZjUGlZPEFkRUlzS3NTWG13TmNyQT1oXT9CPWtCRnVCYGFXXmdZWUd0RGFJdmVFVWNmVFNFVlNzcm1UTXNiPkFySFVJZVd1Yz9jWUtESWFjaT1ZdFd4TXViaztob1F1akdYd2tjQEVHVEtmcnlVRWFVRndiY2NXZW9SZ1tXZU91dk9iallCPWtCRjs9XltSOjo6XFxzeVFqY3V5T1RvZ1RQZUV4amxUQnBSc3l1Vj1vXlhObklTWG1RQUB5WXVrZE1PUHBSY0h4RmBUaV1RV11vSl1TQDxQWj1CPj06Ojo6cm9rVnhJUnVHQlFbUl5pc2lrOjtSTEVkTUNkZT9EUj80Pg==</Image></Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Definitions</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle257" underline="false">  R</Font> is the reference input (angular position).</Text-field><Text-field layout="Normal" style="Normal">  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle269" underline="false">C</Font> is the controlled output (angular position).</Text-field><Text-field layout="Normal" style="Normal"><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle259" underline="false">  e</Font> = <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle270" underline="false">R - C</Font> is the error between the controlled output and the reference input.  </Text-field><Text-field layout="Normal" style="Normal">  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle258" underline="false">C/R</Font> is the closed loop response of the controlled output to the reference input.</Text-field><Text-field layout="Normal" style="Normal">  </Text-field><Text-field layout="Normal" style="Normal">N.B.  The servo is assumed to be linear throughout the operating region and the principle of super-position therefore applies.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Initialization</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  The "Bode2" package will be required for plotting attenuation and phase margin diagrams.  It is also necessary to call the "plots" package and to change the imaginary unit to <Font executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle292" underline="false">j</Font>, instead of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle293" underline="false">I</Font>.  More than 2 or 3 decimal places imply much greater precision than is warranted.  However, about 5 decimal places are needed to view the results of calculations satisfactorily, so "displayprecision" is set to 5 (computation occurs at the precision set by "Digits").</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">restart:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">interface(imaginaryunit=j): interface(displayprecision=5):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">with(plots): with(Bode2):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Some settings are now defined for the plots produced in this worksheet.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">txt := axesfont=[TIMES,ROMAN,12], labelfont=[TIMES,ROMAN,12], titlefont=[TIMES,ROMAN,12]:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">plotset := txt, colour=[blue,red,black], linestyle=[SOLID,SOLID,DOT]:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Transfer Functions shown in the Block Diagram</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">a.  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="12" style="_cstyle260">Pre-amplifier</Font> (including gains of synchros and error-phase-discriminating circuits).</Text-field><Text-field layout="Normal" prompt="&gt; " style="Normal"><Font italic="false" size="12" style="Maple Input" underline="false">K1;</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle261" underline="false"> </Font></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle262" underline="false">K1</Font> has units of volts/radian.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">b.  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="12" style="_cstyle264">Compensation Network</Font></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gc;</Font></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Gc has units of volts/volt.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">c.  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="12" style="_cstyle265">Power Amplifier</Font></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">K2;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">  K2 has the units of volt/volt.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">d.  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="12" style="_cstyle266">Motor and Load</Font></Text-field><Text-field layout="Normal" style="Normal">  The transfer function may be approximated as Gm <Font bold="false" encoding="ISO8859-1" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle290" underline="false">\273</Font> <Equation input-equation="1/(K[b]*s*(J*R[f]/(K[b]*K[tau])*s+1)*(L[f]/R[f]*s+1));" style="2D Comment">NiMqJiIiIkYkKiomJSJLRzYjJSJiR0YkJSJzR0YkLCYqKiUiSkdGJCYlIlJHNiMlImZHRiQqJkYmRiQmRic2IyUkdGF1R0YkISIiRipGJEYkRiRGJEYkLCYqKCYlIkxHRjBGJEYuRjZGKkYkRiRGJEYkRiRGNg==</Equation><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle291" underline="false">  =  </Font><Equation input-equation="1/(K[b]*s*(T[m]*s+1)*(T[f]*s+1))" style="2D Comment">NiMqJiIiIkYkKiomJSJLRzYjJSJiR0YkJSJzR0YkLCYqJiYlIlRHNiMlIm1HRiRGKkYkRiRGJEYkRiQsJiomJkYuNiMlImZHRiRGKkYkRiRGJEYkRiQhIiI=</Equation>.  </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  This assumes that the combined motor and load friction is relatively small, and if represented by <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle319" underline="false">q</Font>, a coefficient of viscous friction, then <Equation input-equation="q*R[f]/(K[b]*K[tau]);" style="2D Comment">NiMqKCUicUciIiImJSJSRzYjJSJmR0YlKiYmJSJLRzYjJSJiR0YlJkYsNiMlJHRhdUdGJSEiIg==</Equation>  &lt;&lt; 1.  <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation> is the motor and load's mechanical time constant, and <Equation input-equation="T[f];" style="2D Comment">NiMmJSJURzYjJSJmRw==</Equation> is the motor field's time constant. </Text-field><Text-field layout="Normal" style="Normal">    </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gm := 1/(K[b]*s*(T[m]*s + 1)*(T[f]*s + 1));</Font></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle342" underline="false">Gm</Font> has the units of (radian/sec/volt = 1/volt.sec)</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Motor &amp; Load Time Constants</Text-field></Title><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Data</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">  The combined mass of the load and table was 1.5 kg with a radius of gyration given by <Equation input-equation="k^2 = 72*mm^2;" style="2D Comment">NiMvKiQlImtHIiIjKiYiI3MiIiIqJCUjbW1HRiZGKQ==</Equation>.</Text-field><Text-field layout="Normal" style="Normal">  The moment of inertia of the 3:1 reduction gearing between the load-table and the motor referred to the motor shaft was <Equation input-equation="392700*g*mm^2;" style="2D Comment">NiMqKCInK0ZSIiIiJSJnR0YlJSNtbUciIiM=</Equation>.  </Text-field><Text-field layout="Normal" style="Normal">  The 36-speed synchro control transformer's moment of inertia was <Equation input-equation="7540*g*mm^2;" style="2D Comment">NiMqKCIlU3YiIiIlImdHRiUlI21tRyIiIw==</Equation> </Text-field><Text-field layout="Normal" style="Normal">  The moment of inertia of the 36-speed synchro control transformer's gearing referred to the load-table's drive shaft was <Equation input-equation="450410*g*mm^2;" style="2D Comment">NiMqKCInNS9YIiIiJSJnR0YlJSNtbUciIiM=</Equation>.</Text-field><Text-field layout="Normal" style="Normal">  The moment of inertia of the motor was <Equation input-equation=".6e-2*oz*inch^2;" style="2D Comment">NiMqKC0lJkZsb2F0RzYkIiInISIkIiIiJSNvekdGKSUlaW5jaEciIiM=</Equation>.</Text-field><Text-field layout="Normal" style="Normal">  The motor's torque constant was <Equation input-equation="K[tau] = 6.8*ozf*inch/amp;" style="2D Comment">NiMvJiUiS0c2IyUkdGF1RyoqLSUmRmxvYXRHNiQiI28hIiIiIiIlJG96ZkdGLiUlaW5jaEdGLiUkYW1wR0Yt</Equation> and its back-emf constant was <Equation input-equation="K[b] = 5*volt/(1000*rpm);" style="2D Comment">NiMvJiUiS0c2IyUiYkcqKCIiJiIiIiUldm9sdEdGKiomIiUrNUYqJSRycG1HRiohIiI=</Equation>. </Text-field><Text-field layout="Normal" style="Normal">  The overall gain <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle271" underline="false">K1</Font> of the pre-amplifier, including the synchro chain, was 10 volts/radian.</Text-field><Text-field layout="Normal" style="Normal">  The gain <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle272" underline="false">K2</Font> of the power amplifier was 2 volt/volt.</Text-field><Text-field layout="Normal" style="Normal">  The motor's field resistance was 0.84 ohms and its inductance was 0.1 <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle267" underline="false">mH</Font>.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  All the above data are converted below to SI units.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Inertias</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The moments of inertia of the 36-speed and 1-speed synchros, the 36-speed synchro's gearing and the load-table, each referred to the load-table's drive shaft were</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_synchros := convert( 7540.*(36^2 + 1),'units',g*mm^2,kg*m^2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_synchrogears := convert(450410.,'units',g*mm^2,kg*m^2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_load := convert(1.5*72,'units',kg*mm^2,kg*m^2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The total moment of inertia referred to the load-table's drive shaft was</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_total := J_synchros + J_synchrogears + J_load;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The moment of inertia of the gearing between the motor and the load-table's drive shaft was</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_gears := convert(392700,'units',g*mm^2,kg*m^2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The combined total moment of inertia at the load-table's drive shaft referred to the motor and that of the gearing between the motor and load drive shaft was</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">J_combined := J_total*(1/3)^2 + J_gears;</Font></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Mechanical and Motor Field Time Constants</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R[m] := 0.84;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">K[b] := convert(5/1000,'units',volt/rpm,volt/(radian/s) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">K[tau] := convert(6.8,'units','ounceforce*inch/A','N*m/A');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The inertias and the above are combined into the mechanical time constant, <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, of the motor and load.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[m] := R[m]*J_combined/(K[b]*K[tau]);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(T[m]);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The motor field's parameters are combined into the shunt field constant <Equation input-equation="T[f];" style="2D Comment">NiMmJSJURzYjJSJmRw==</Equation> </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">L[m] := 0.1*10^(-3);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[f] := L[m]/R[m];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Because <Equation input-equation="T[f];" style="2D Comment">NiMmJSJURzYjJSJmRw==</Equation> is very small compared with <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, it can be ignored initially, thus the motor and load transfer function is</Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gm := '1/(K[b]*s*(T[m]*s + 1))';</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gm := evalf(%);</Font></Text-field></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Loop Transfer Function</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">By definition, the loop transfer function is <Equation input-equation="C/epsilon = KG;" style="2D Comment">NiMvKiYlIkNHIiIiJShlcHNpbG9uRyEiIiUjS0dH</Equation>.  Setting the compensation network's transfer function to unity and ignoring the motor field time constant <Equation input-equation="T[f]" style="2D Comment">NiMmJSJURzYjJSJmRw==</Equation>, the loop transfer function for the uncompensated servo is given by,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG := K1*K2*1*Gm;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Before considering compensation, the gains should be set to small values and the uncompensated servo's response should be examined.  Setting <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle273" underline="false">K1 =</Font> <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle268" underline="false">K2</Font> = 1, the loop transfer function, is given by</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG_small := eval(KG,{K1=1,K2=1});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Inserting the normal gain settings <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle320" underline="false">K1</Font> = 10 and <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle321" underline="false">K2</Font> =2,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG := eval(KG,{K1=10,K2=2});</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Uncompensated Servo</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  The closed loop transfer function for the uncompensated servo with gains set to small values is </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`C/R uncomp small gains` :=  (KG_small/(1+KG_small));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The poles of this uncompensated servo are obtained thus,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">poles := [solve(denom(normal(`C/R uncomp small gains`)))];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The poles result in the following damping ratio and undamped natural frequency,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := sqrt(1-zeta^2)/zeta = abs( Im(poles[2])/Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := zeta*omega[n] = abs( Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">solve({eq1,eq2});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  These indicate an unstable servo - sluggish and very lightly damped.  A faster response is not possible without increasing the gains, but to do so would make the servo even more unstable.  </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The root locus of the compensated servo's open-loop transfer function is now plotted.  The poles of the uncompensated servo's closed loop transfer function with small values of gain are superimposed on this root locus.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">r := rootlocus(KG,s,0..1,colour=cyan,symbolsize=18):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">p := plot(map([Re,Im],poles),0..-15,-15..15,txt,style=point,symbol=cross,symbolsize=18,colour=red):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font encoding="ISO8859-1" italic="false" size="12" underline="false">display([r,p],labels=[\302,\301],axes=normal,labelfont=[SYMBOL],title="Root Locus of\134n Uncompensated Open-Loop Transfer Function\134n with Poles of Closed Loop Transfer Function\134n at Small Gains Superimposed",scaling=constrained);</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  To achieve the required parameters of <Equation input-equation="omega[n] = 30/sec;" style="2D Comment">NiMvJiUmb21lZ2FHNiMlIm5HKiYiI0kiIiIlJHNlY0chIiI=</Equation> and <Equation input-equation="zeta = 55/100;" style="2D Comment">NiMvJSV6ZXRhRyomIiNiIiIiIiQrIiEiIg==</Equation>, the root locus needs to be moved to the left along the real axis, so that the dominant poles can be at a radius of 30 from the origin and make an angle of <Equation input-equation="arccos(-55/100);" style="2D Comment">NiMtJSdhcmNjb3NHNiMsJComIiNiIiIiIiQrIiEiIkYr</Equation> = 56.6 degrees with the negative real axis.  These parameters would yield a fast, adequately damped transient performance of the closed loop servo.  Zeros to the left of the locus pull it to the left, and a lag-lead compensation network was used to provide a zero for this purpose.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Author258" style="Author258">  The closed loop transfer function for the uncompensated servo with its normal gain settings will be needed later and is </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`C/R uncomp` :=  (KG/(1+KG));</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Compensation Network</Text-field></Title><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Finding the Compensation Network's Constants</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">1.  The transfer function for a lag-lead network is <Equation input-equation="Gc = Kc*beta/alpha*(T[1]*s+1)/(T[1]/alpha+1)*(T[2]*s+1)/(beta*T[2]*s+1);" style="2D Comment">NiMvJSNHY0cqMCUjS2NHIiIiJSViZXRhR0YnJSZhbHBoYUchIiIsJiomJiUiVEc2I0YnRiclInNHRidGJ0YnRidGJywmKiZGLUYnRilGKkYnRidGJ0YqLCYqJiZGLjYjIiIjRidGMEYnRidGJ0YnRicsJiooRihGJ0Y1RidGMEYnRidGJ0YnRio=</Equation> = <Equation input-equation="Kc*(s+1/T[1])/(s+alpha/T[1])*(s+1/T[2])/(s+1/(beta*T[2]));" style="2D Comment">NiMqLCUjS2NHIiIiLCYlInNHRiUqJkYlRiUmJSJURzYjRiUhIiJGJUYlLCZGJ0YlKiYlJmFscGhhR0YlRilGLEYlRiwsJkYnRiUqJkYlRiUmRio2IyIiI0YsRiVGJSwmRidGJSomRiVGJSomJSViZXRhR0YlRjJGJUYsRiVGLA==</Equation>, in which <Equation input-equation="1 &lt; beta;" style="2D Comment">NiMyIiIiJSViZXRhRw==</Equation>, <Equation input-equation="1 &lt; alpha;" style="2D Comment">NiMyIiIiJSZhbHBoYUc=</Equation> and <Equation input-equation="beta &lt;&gt; alpha;" style="2D Comment">NiMwJSViZXRhRyUmYWxwaGFH</Equation>.  If <Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation> is chosen sufficiently large, the lag network's transfer function (the second part of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle343" underline="false">Gc</Font>) will have unit magnitude and zero phase at the dominant poles.  The first part of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle371" underline="false">Gc</Font>, <Equation input-equation="(s+1/T[1])/(s+alpha/T[1]);" style="2D Comment">NiMqJiwmJSJzRyIiIiomRiZGJiYlIlRHNiNGJiEiIkYmRiYsJkYlRiYqJiUmYWxwaGFHRiZGKEYrRiZGKw==</Equation>, (the lead network's transfer function) must contribute a phase change such that the root loci of the lead-compensated servo pass through dominant poles that yield the desired damping ratio and undamped natural frequency.  Having chosen <Equation input-equation="T[1]" style="2D Comment">NiMmJSJURzYjIiIi</Equation>, the phase change required from the lead network determines the value of <Equation input-equation="alpha;" style="2D Comment">NiMlJmFscGhhRw==</Equation>.  It is often convenient to choose <Equation input-equation="T[1];" style="2D Comment">NiMmJSJURzYjIiIi</Equation> equal to the motor and load mechanical time constant <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, so that the <Equation input-equation="[T[1]*s+1];" style="2D Comment">NiM3IywmKiYmJSJURzYjIiIiRiklInNHRilGKUYpRik=</Equation> term (approximately) cancels the <Equation input-equation="[T[m]*s+1];" style="2D Comment">NiM3IywmKiYmJSJURzYjJSJtRyIiIiUic0dGKkYqRipGKg==</Equation> term in the uncompensated servo's loop transfer function.  However, any reasonable choice can be made.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">2.  With the lead network's constants determined, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle331" underline="false">Kc</Font> can be obtained by equating to unity the magnitude of the transfer function for the combination of lead-network and uncompensated servo at the desired dominant poles. </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">3.  As <Equation input-equation="proc (t) options operator, arrow; infinity end proc;" style="2D Comment">NiNmKjYjJSJ0RzciNiQlKW9wZXJhdG9yRyUmYXJyb3dHNiIlKWluZmluaXR5R0YqRipGKg==</Equation>, the compensated servo's transfer function tends toward the value of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle332" underline="false">Kv</Font>, the velocity error coefficient.  Since the required value of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle334" underline="false">Kv</Font> is specified, and both <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle340" underline="false">a</Font> and <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle341" underline="false">Kc</Font> are known, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle335" underline="false">b</Font> can be found from this limiting value of the transfer function<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle333" underline="false">.</Font>  </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">4.  It remains to find sufficiently large <Equation input-equation="T[2]" style="2D Comment">NiMmJSJURzYjIiIj</Equation> from the condition, mentioned at paragraph 1 above, that the lag network's transfer function must have approximately unit magnitude and zero phase at the desired dominant poles,  </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Lead Angle Required</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"> The required dominant poles are <Equation input-equation="s_dom = -zeta*omega[n]+j*omega[n]*sqrt(1-zeta^2);" style="2D Comment">NiMvJSZzX2RvbUcsJiomJSV6ZXRhRyIiIiYlJm9tZWdhRzYjJSJuR0YoISIiKiglImpHRihGKUYoLSUlc3FydEc2IywmRihGKCokRiciIiNGLUYoRig=</Equation> and its conjugate, where <Equation input-equation="omega[n] = 30,zeta = 55/100;" style="2D Comment">NiQvJiUmb21lZ2FHNiMlIm5HIiNJLyUlemV0YUcqJiIjYiIiIiIkKyIhIiI=</Equation>.  Considering the positive pole, </Text-field><Text-field layout="Normal" style="Normal">  </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">s_dom := -zeta*omega[n]+j*omega[n]*sqrt(1-zeta^2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">s_dom := simplify( eval(s_dom,{omega[n] = 30, zeta = 55/100}) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The phase of the uncompensated servo at the dominant poles is obtained by evaluating the loop transfer function's phase at that pole thus</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">phase := argument(eval(KG,s=s_dom));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Hence, the phase change to be contributed by the lead network is given by</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">lead_angle := Pi - phase;</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(convert(%,degrees));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  That is, the lead part of the compensation network has to contribute 64 degrees to the phase of the compensated servo's loop transfer function for its root locus to pass through the chosen dominant pole.  This is represented in the sketch below by the angle BPA.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Sketch of Dominant Pole on Root Locus</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field alignment="centred"><Image height="414" width="560">TUZOV3RLVWI8b2I8Uj1NRExDZE5OWmpqOnRzOkg6PHVaYXRRSj08T2BMb1xcanl5eXlRdGZ5c2hTO21STENUSmNEWG9YdXNYRll2QEVEP0lCdm1YSEFGUUNSU1FCQ1tiXFxDVktlZkZjRzw/aG5bdHNBQ3hBQ05HYz5fckBNZjo9dGpJREhNZltfWDt5QlJFVFc/Z0w9VHJPUj1VQmNbVWZdZF1haFB3WGE9eD9DdnJlaW1XaGlpc3ZJUkFDWVBPVl9reHR5ZnFTeVhZdVNHVXNrc1ZPUnZbaExrUlJDVj5HREA9RVttVW9rZmU7RkZXVTw9ZXBZUkZJaXNnYlttdUA/SG13ZkprUllNVlJHRT5HaWZHRkZZd1JPR3hTcmpLeTtbYkNhY1Z1V3hZRUZnZG1VRkY/SDxBQ11bY2prdUFZaDxLcnZHWEhHRU5teXldc05ld3VFaFtRSEFVZWpfZGJNaERZUlFLd1VRSHdhdXJXeGB5WEZJR3hdc15tZVFPV3ZhRU1JZVVxVWBZSD07RU5teEtPaVVvc3Jfd3VbUk9zVmR5d1xcO2VfY0NkV0dld2hYeVNgXXV4dVlxYUd3PVRpc1R1YXhiXXdReXRJeVVjc2RlU3lYeUdFY3RQc2dnWVNpP3ZsY3c9WXdheWJ3P1Z0Z3lBeUloP1VGcXZXc3NYeXRrV0R4Z3h4T1k7aVZGd3lIQUJNR1hPd3hfUWJFQVl0U1hBeWl0SVV5aVNEb2RDYWhSR2VbZWVPP2NTR2Zwb3lkTVZsa3k+RWdpSVlGdXZ5T0Rld3NzXWM9YVN4Z3dbT3RMP2VgW1leY2RTRVZAY1ZaW2NlQ0ZGcXNZYVRWbXZUQVVeV0hHa1ZLcVRdPWVfW2Jzb2k8T0JEeVdsWUM/W0hgUUNtT1NpRUhLYXRES1R4bUJMY3NCYVRBcVZYXUhgYUlPR2hSZ0VGcVZsQVNHP1dGTUZdPUZGYVhcXD9XRlljPkV1U01GbWNlYktETVFWUmdIQEdna1tzWUVjTFFJR0d3RD1TbltkaV9WYz1TXFw/R0ZVUmJvRTxTaDxhUl1tQ3VTc05rck8/ZGJtWFJXeXFrZGxdZmBvRmRjSFRXUkFlVl9NQ21fYj5VWHJPYmBnZFljd0VtY01fc09rYmNFSEZlSVJpdkBFSEBFRkR5Y2pjdEs/ZUxLclJlQlttSG47VG1LRW1FRElBRUZBZmQ7Q01pZEprcktzY05hY0hPc11HZW9PYkZLZ0BBSE9PUk53RWtXZmA/ZVdPYmpjeTtfc11FZUBTREdRUztNc0lBUlxcR0ZhS1c8R3d5WVhQQ3NWRWRpc2Z0Y1lkV2VeTVdGU2g+P0g+SWdoTWRzQ0lMdXJra1Q7TWZTQVZSb0I9QUU/P0d5a1JcXE9iRklXXW1WS11DXUNUW2tWPUdWVGtSVUFXOmlmaVtzRktETzt1dT13XmlIQ2FCXUFJQ1d0OldTWT1kU1VWUk9FPUFZdEtnWllIPW9jRFdHeWdlPFxcbD9BUEdsalNFWTxZVWpJTT1Ea0BpbFJsUjs9bWVcXEtNUXhQZEtUWHRLRVFVSFU8bUo/SW1kUVJGVHB1XFxQXFxYbkBFTXlhVHF0dmxkS2BuWjxBeUxmXFxLb2lGcXJWVmZySGtURmZAb250SF1NSGVlPmNzaXRSSGJPP1xcYFhfW15beXlpY1dnbE9ubj9vPGZgXFxYbkA/bU9uams+XFxAeXVLX3dsWV1XV2xeX19AaHVScGlgSHJqZmBASGVseWhmUWF3T29VVmZAd1tYdnV1P3deaWBDQV1NcWJGX25UTmxidl1dP15GP19LZ1o9SF9bRnRSQWtVQVxcWHhgcU5bTGZjPUhmRl5qU2ZjTj94RVFkVE5sYkheXWdcXD5IZ2tec1RWck5Jbl1WaGxWZDtPbmNRY0JWXFxzWXNrTm1WQF9QaXRpSHI+V1xcWFdsRklvRkhqPldcXFFJZD1uZlFGaFVOcm1xZlZXZkg+bUBWckZfY29XYFxcVlxcUnFpbU5zSWlkSkhiP05hZFdpQ3dmPFZnTFhwVV9oYGhmcHBzamlrYWhkckZkbU5lc2llUEh4V2ZoPmFmRWFqPmdda2ZidldmWEZgc2ddaEBwUHBkeFd4YV5qb0ZjcEZzclh4cnFydk5ncGhnc1l3PFh5W2FzSD5tVmdxRWltVl9vWG5bZGZnVVFocllvR3Bfd3BdTWFfTD9tPUlxc1hoQWh5U3F3RnBod3htcl9dT2ZhV0hxUl9yVkdiQHZrYXljWl5zYU5bPGFwb15qY1hfQlZ4YFlaQlZuTnlhPmFma2ZobWlzd0hyTmliUmB1QXZrQXdrSlZqdEl4a29dbWB0cmZpVnlxeWlaXmFcXGlHYFNQW0hPZm5vZmhwZ0xHeTtwWj9Qa0BWclJfc1pweTphYm1XeUBnbVxceWRVSGhtP1tNaHlKXm09eXFWeWFvUWx4aF93eWR5QHZCdndXaV1ueGJLVmBzcXh5PnVZR2VjQXd1eVp1SXdydnh5SGlLZnBucF1qdl1GZ3NLcGc7R2ZseGldYHlEWHRNX2FAYWpRSHd1SVpzcHU8aV9xeXlWWW11YWhESGFTUGhGZFxcQXZIZ3hhZ3lZd3V4bXdXT3NRV3dpX1N4bUJTPUVbXVpbX2pLOjo6WlJYbURheUNuaUN3ZDxhXnB3YHNdOkZjP29jPm9vPD9mPDM8</Image></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"> The sketch above illustrates the vectors of the lead network on the complex plane.  The point "P" represents the positive dominant pole that is to be located at <Equation input-equation="[-33/2, j*9/2*sqrt(31)];" style="2D Comment">NiM3JCwkKiYiI0wiIiIiIiMhIiJGKSoqJSJqR0YnIiIqRidGKEYpLSUlc3FydEc2IyIjSkYn</Equation>.  The point "A" represents the zero produced by the lead network at <Equation input-equation="[-1/T[1], j*0];" style="2D Comment">NiM3JCwkKiYiIiJGJiYlIlRHNiNGJiEiIkYqKiYlImpHRiYiIiFGJg==</Equation> and the point "B" represents the pole produced by it at <Equation input-equation="[-alpha/T[1], j*0];" style="2D Comment">NiM3JCwkKiYlJmFscGhhRyIiIiYlIlRHNiNGJyEiIkYrKiYlImpHRiciIiFGJw==</Equation>.  Since <Equation input-equation="AO = -1/T[1];" style="2D Comment">NiMvJSNBT0csJComIiIiRicmJSJURzYjRichIiJGKw==</Equation>, BO can be found by plane trigonometry, thus yielding <Equation input-equation="alpha = BO/AO;" style="2D Comment">NiMvJSZhbHBoYUcqJiUjQk9HIiIiJSNBT0chIiI=</Equation>.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="_cstyle336"><Font bold="true" foreground="[0,0,0]" size="12" underline="false">a</Font></Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Arbitrarily choosing <Equation input-equation="T[1] = T[m];" style="2D Comment">NiMvJiUiVEc2IyIiIiZGJTYjJSJtRw==</Equation>, </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[1] := T[m];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">AO := 1/T[1]:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BPA := lead_angle:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">AP := abs((s_dom) - (-1/T[1] + j*0) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">NP := Im(s_dom):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">PAN := arcsin(NP/AP):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">NPA := Pi/2 - PAN:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BPN := BPA - NPA:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BN := NP*tan(BPN):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BO := BN + NO:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">NO := -Re(s_dom):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">alpha := BO/AO:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Hence</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(alpha);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Kc</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">  </Text-field><Text-field layout="Normal" style="Normal">At the dominant pole, the magnitude of the transfer function for the combined lead network and uncompensated servo should be unity.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := abs( 'Kc*((s+1/T[1])/(s + alpha/T[1]) )'* KG ) = 1;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := eval(eq1,s=(s_dom) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">sol := solve(eq1,{Kc}) assuming Kc&gt;0:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">evalf(sol);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">assign(sol);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="_cstyle337"><Font bold="true" foreground="[0,0,0]" size="12" underline="false">b</Font></Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">  The value of <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle274" underline="false">b</Font> for the lag portion of the compensation circuit, <Equation input-equation="(s+1/T[2])/(s+1/(beta*T[2]));" style="2D Comment">NiMqJiwmJSJzRyIiIiomRiZGJiYlIlRHNiMiIiMhIiJGJkYmLCZGJUYmKiZGJkYmKiYlJWJldGFHRiZGKEYmRixGJkYs</Equation>, is easily obtained from the compensated servo's required value of velocity error coefficient, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle275" underline="false">Kv = </Font>80/sec. </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gc := 'Kc*( (s + 1/T[1])/(s + alpha/T[1]) ) * ( (s + 1/T[2])/(s + 1/(beta*T[2]) ) )';</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Since the velocity error coefficient, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle344" underline="false">Kv</Font>, is given by the limit of the open-loop transfer function as <Equation input-equation="proc (t) options operator, arrow; infinity end proc;" style="2D Comment">NiNmKjYjJSJ0RzciNiQlKW9wZXJhdG9yRyUmYXJyb3dHNiIlKWluZmluaXR5R0YqRipGKg==</Equation>, using the final value theorem of the Laplace transform,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := Kv = limit(s*Gc*KG,s=0);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := Kv = 80;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">sol := solve({eq1,eq2});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">assign(sol);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="2D Comment"><Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation></Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Next, the value of <Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation> has to be chosen sufficiently large for the lag part of the compensation network to have approximately unit magnitude and approximately zero phase at the dominant pole.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">lag := 'eval( (s + 1/T[2])/(s + 1/(beta*T[2])),s=s_dom )';</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := 0.99 &lt; abs(lag):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := abs(lag) &lt; 1.01:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq3 := -5*Pi/180 &lt; argument(lag):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq4 := argument(lag) &lt; 0:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">sol := solve({eq1,eq2,eq3,eq4}) assuming real;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Choosing <Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation> as the next higher integer,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[2] := ceil(op([1,1],sol));</Font></Text-field></Input></Group></Section><Text-field layout="Normal" style="Normal"/></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Compensated Servo</Text-field></Title><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Poles and Zeros</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"> </Text-field><Text-field layout="Normal" style="Normal">  Inserting the term for the motor's shunt field time constant, the compensated servo's loop transfer function is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG_comp := evalf(Gc*KG/(T[f]*s + 1));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The zeros and poles of the compensated servo's closed loop transfer function, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle276" underline="false">C/R</Font>, are given by</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`C/R` := evalf( simplify( KG_comp/(1+KG_comp) ) ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">zeros := [solve(numer(normal(`C/R`)))];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">poles := [solve(denom(normal(`C/R`)))];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Due to very slight rounding errors, the zero of the compensation network at <Equation input-equation="-1/T[1] = -1.771;" style="2D Comment">NiMvLCQqJiIiIkYmJiUiVEc2I0YmISIiRiosJC0lJkZsb2F0RzYkIiVyPCEiJEYq</Equation>/sec has not cancelled the pole caused by the motor time constant at <Equation input-equation="-1/T[m] = -1.771;" style="2D Comment">NiMvLCQqJiIiIkYmJiUiVEc2IyUibUchIiJGKywkLSUmRmxvYXRHNiQiJXI8ISIkRis=</Equation>/sec as intended - though such a small error is unimportant.  Much greater discrepancies occur in practice due to the assumptions made about the motor and load transfer function.  The effect of the zero not canceling a pole is to increase the order of the servo, and to cause greater overshoots and longer transients than would otherwise be the case.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The positive dominant pole is <Equation input-equation="-16.2784+j*24.9819;" style="2D Comment">NiMsJi0lJkZsb2F0RzYkIicleWkiISIlISIiKiYlImpHIiIiLUYlNiQiJz4pXCNGKEYsRiw=</Equation>, which is slightly different from the desired value, namely <Equation input-equation="-16.50+j*25.0549;" style="2D Comment">NiMsJi0lJkZsb2F0RzYkIiVdOyEiIyEiIiomJSJqRyIiIi1GJTYkIidcMEQhIiVGLEYs</Equation>, and similarly for the conjugates.  This results in slight differences between the achieved and desired damping ratio and undamped natural frequency.  If these differences are too great, a second lead network could be needed.  As it was, the damping ratio and undamped natural frequency of the compensated servo were</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := sqrt(1-zeta^2)/zeta = abs( Im(poles[2])/Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := zeta*omega[n] = abs( Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">solve({eq1,eq2}) ;</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  These are close enough to the required values.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The root locus of the compensated servo's open-loop transfer function is now plotted, with the poles and zeros of the compensated servo's closed loop transfer function superimposed.  However, the pole caused by the motor's shunt field time constant at <Equation input-equation="1/T[f] = 8400;" style="2D Comment">NiMvKiYiIiJGJSYlIlRHNiMlImZHISIiIiUrJSk=</Equation>/sec is of no interest, so the horizontal and vertical ranges for the plot are chosen to confine the plot to the area close to the origin.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">r := rootlocus(KG_comp,s,0..1,colour=cyan,symbolsize=18):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">z := plot(map([Re,Im],zeros),0..-18,-26..26,style=point,symbol=circle,symbolsize=18,colour=blue):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">p := plot(map([Re,Im],poles),0..-18,-26..26,style=point,symbol=cross,symbolsize=18,colour=red):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font encoding="ISO8859-1" italic="false" size="12" underline="false">display([r,z,p],labels=[\302,\301],axes=normal,txt,labelfont=[SYMBOL],title="Root Locus of Compensated Open-Loop Transfer Function\134n with Poles and Zeros of Closed Loop Transfer Function Superimposed");</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">unassign('p','z','r');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"> It should be noted that the scales in the plot above are not equal, but they can be made so by including the "scaling = constrained" option in the "display" command.  However, the region close to the origin then becomes very congested.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"> The dominant poles are at <Equation input-equation="-16.2784+j*24.9819;" style="2D Comment">NiMsJi0lJkZsb2F0RzYkIicleWkiISIlISIiKiYlImpHIiIiLUYlNiQiJz4pXCNGKEYsRiw=</Equation> and its conjugate.  In addition to the zero at -1.7708 and the almost cancelled pole at -1.7708 due to <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation> (the motor and load's mechanical time constant) there is a zero at -0.5 due to <Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation> that almost cancels a pole at -0.5647, as well as the pole at the origin.  The effect of the zero canceling, or almost canceling <Equation input-equation="T[m]" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, is to pull the uncompensated servo's root locus to the left, thus making the servo more stable at higher gains.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Bode Diagrams</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The loop transfer function and phase margins are now plotted for both the uncompensated and compensated servos.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 3" style="_cstyle345"><Font bold="true" family="Times New Roman" foreground="[0,0,0]" italic="true" underline="false">Uncompensated Servo</Font></Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">  Recalling that the open loop transfer function of the uncompensated servo including its motor field time constant is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG/(1 + T[f]*s);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The Bode attenuation diagram for the uncompensated servo is plotted thus</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">display(linelog(numer(KG),1,[ ],[evalf(T[m]),T[f]],0.1,10^4),attenlog(KG/(1+T[f]*s),0.1,10^4));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The break point at <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle357" underline="false">w</Font> = 1.77 is due to <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, the motor and load's mechanical time constant.  The motor's electrical time constant, <Equation input-equation="T[f];" style="2D Comment">NiMmJSJURzYjJSJmRw==</Equation>, is responsible for the break point at <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle358" underline="false">w</Font> = 0.0001.  (The normalizing time constant used in the diagram is T = 1 sec.)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The uncompensated servo's phase margin diagram is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">phaselog(KG/(1+T[f]*s),0.1,10^4);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The small phase margin and consequent instability when the uncompensated servo's loop was closed is readily apparent.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Compensated Servo</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The compensated servo's loop transfer function is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">normal(KG_comp);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The Bode attenuation diagram for the compensated servo is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">display(  linelog2((508.24221/0.56471/.11905e-3),1,[1.77081,0.50000],
[33.00000,0.17045,1/0.56471,1/.1190e-3],0.01,10^4),
attenlog(KG_comp,0.01,10^4),plot([[2.71,-60],[2.71,0]],0..4,colour=black,linestyle=DOT)  );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The effect of the lag network is clearly apparent between <Equation input-equation="omega = 1/(beta*T[2]);" style="2D Comment">NiMvJSZvbWVnYUcqJiIiIkYmKiYlJWJldGFHRiYmJSJURzYjIiIjRiYhIiI=</Equation> = 0.1766/sec and <Equation input-equation="omega = 1/T[2];" style="2D Comment">NiMvJSZvbWVnYUcqJiIiIkYmJiUiVEc2IyIiIyEiIg==</Equation> = 0.5/sec.  (The normalizing time constant used in the diagram is T = 1 sec.)  The downward break at <Equation input-equation="omega = alpha/T[1];" style="2D Comment">NiMvJSZvbWVnYUcqJiUmYWxwaGFHIiIiJiUiVEc2I0YnISIi</Equation> = 33/sec marks the end of the phase-lead network's influence.  The velocity error coefficient, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle346" underline="false">Kv</Font>, is given by the intercept of the lowest frequency part of the attenuation with the loop gain axis, and is seen to be 38 dB = 80/sec as specified.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The vertical dotted line is drawn through the frequency <Equation input-equation="log10(omega*T) = 2.71" style="2D Comment">NiMvLSUmbG9nMTBHNiMqJiUmb21lZ2FHIiIiJSJUR0YpLSUmRmxvYXRHNiQiJHIjISIj</Equation> when the phase margin = 0, as measured with the cursor on the phase margin diagram.  It shows that the gain margin is positive and approximately 49.4 dB.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The compensated servo's phase margin diagram is</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">display(phaselog(KG_comp,0.01,10^4),plot([[1.34,0],[1.34,70]],0..4,colour=black,linestyle=DOT));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The vertical dotted line is at gain crossover frequency, <Equation input-equation="log10(omega*T) = 1.34;" style="2D Comment">NiMvLSUmbG9nMTBHNiMqJiUmb21lZ2FHIiIiJSJUR0YpLSUmRmxvYXRHNiQiJE0iISIj</Equation>, as measured with the cursor on the attenuation diagram.  It shows that the phase margin is about 55 degrees.  The phase margin would remain positive across the entire frequency range out to about<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle347" underline="false"> w</Font> = 500/sec, that is <Equation input-equation="log10(omega*T) = 2.71" style="2D Comment">NiMvLSUmbG9nMTBHNiMqJiUmb21lZ2FHIiIiJSJUR0YpLSUmRmxvYXRHNiQiJHIjISIj</Equation>.</Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Position Step Input</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The compensated servo's normalized response to a unit step input of angular displacement, together with that of the uncompensated servo, is obtained and plotted below.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The Laplace of transforms of the responses, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle372" underline="false">C</Font>, to a unit step input of displacement, for both the compensated and uncompensated servo are:  </Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">with(inttrans):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">step := `C/R`/s:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">uncomp_step := `C/R uncomp`/s:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">  </Text-field><Text-field layout="Normal" style="Normal">  The inverse Laplace transforms of these (angular) position responses, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle373" underline="false">C</Font>, are then normalized by dividing them by the input's (angular) position, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle374" underline="false">R</Font> = 1 radian. </Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">step_resp := invlaplace(step,s,t):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">uncomp_step_resp := invlaplace(simplify(KG/((1+KG)*s)),s,t):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">plot([step_resp,uncomp_step_resp,1],t=0..3,title="Normalized Response of\n Compensated Servo (blue) &amp;  Uncompensated Servo (red)\nto a Unit Step of Input  Position",plotset,labels=["t sec","C/R"]
);</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Over a shorter time scale the plot appears as,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">plot([step_resp,uncomp_step_resp,1],t=0..0.5,title="Normalized Response of\n Compensated Servo (blue) &amp; Uncompensated Servo (red)\nto a Unit Step of Input  Position",plotset,labels=["t sec","C/R"]
);</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The improvement made by the compensation is obvious: the servo is now fast and adequately damped.  The maximum overshoot is about 13% and the transient is virtually complete within 0.23 second.  There is, however, a long transient tail amounting to an "overshoot" of about 1% until about t = 2.6 seconds.  This is the effect of the uncancelled zeros and poles mentioned earlier.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The maximum overshoot and the time at which it occurs can be obtained analytically as shown below.  Because of rounding errors, the imaginary terms in the step response are not exactly zero, so it is necessary to disregard them as shown.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">slope := diff(step_resp,t):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`Max overshoot at t` := Re(fsolve(slope=0,t,0.05..0.2));</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`Max overshoot` := eval(Re(step_resp),t=`Max overshoot at t`);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">unassign('slope');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Velocity Step Input</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The compensated servo's normalized response to a unit step input of velocity, or ramp input, together with that of the uncompensated servo, is obtained and plotted below.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">   The Laplace of transforms of the responses, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle285" underline="false">C</Font>, to a unit step of (angular) velocity input, or ramp input, for both the compensated and uncompensated servo are</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">vel_step := `C/R`/s^2:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">uncomp_vel_step := `C/R uncomp`/s^2:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The inverse Laplace transforms of these (angular) position responses, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle277" underline="false">C</Font>, are then normalized by dividing them by the input's (angular) position, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle278" underline="false">R</Font>.  That is, each <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle283" underline="false">C</Font> is divided by <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle284" underline="false">R</Font> = <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle279" underline="false">velocity</Font><Font encoding="ISO8859-1"> \327 </Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle280" underline="false">t</Font><Font encoding="ISO8859-1"> = 1 radian/sec \327 </Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle281" underline="false">t</Font> sec = <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle282" underline="false">t</Font> radian, thus, </Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">vel_step_resp := invlaplace(vel_step,s,t) / (1*t):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">uncomp_vel_step_resp := invlaplace(uncomp_vel_step,s,t) / (1*t):</Font></Text-field><Text-field bookmark="Velocity Step Input" layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">plot([vel_step_resp,uncomp_vel_step_resp,1],t=0..3.5,title="Normalized Response of Compensated Servo (blue)\n&amp; Uncompensated Servo (red)\nto Unit Step of Input Velocity",labels=["t sec","C/R"], colour=[blue,red],plotset);

 </Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The uncompensated servo's response oscillates violently before following the input.  The compensated servo's response is greatly improved with a smooth response and virtually no error after t = 3 sec.  Since the input is a constant 1 radian/sec velocity, that means the output follows the input accurately after <Equation input-equation="3/(2*Pi);" style="2D Comment">NiMqJiIiJCIiIiomIiIjRiUlI1BpR0YlISIi</Equation> radians, or after a little less than 1/2 a revolution.  If this is not fast enough, then the undamped natural frequency must be increased, at the expense of greater susceptibility to noise in the input.</Text-field><Text-field layout="Normal" style="Normal"> <Hyperlink bold="false" executable="false" family="Times New Roman" hyperlink="true" linktarget="Wks:#Observations" size="12" style="Hyperlink">Return to Observations</Hyperlink> </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The response, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle294" underline="false">C</Font>, to a unit step of velocity input is simply the normalized response shown above, multiplied by the normalizing factor <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle295" underline="false">R</Font><Font encoding="ISO8859-1"> = 1 radian/sec \327 t sec, and is shown below.</Font></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">plot([vel_step_resp*(1*t),uncomp_vel_step_resp*(1*t),t],  t=0..3.5, title="Response of Compensated Servo (blue)\n&amp; Uncompensated Servo (red)\nto Unit Step of Input Velocity",labels=["t sec","C and R"],
labeldirections=[horizontal,vertical],plotset);</Font>

</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The uncompensated servo's response oscillates about the input, while the compensated servo exhibits the long-tail transient already mentioned.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The error between the input, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle381" underline="false">C</Font>, and the servo's response, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle382" underline="false">R</Font>, is plotted below</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font encoding="ISO8859-1" italic="false" size="12" underline="false">plot( 1000*(1*t - vel_step_resp*t), t=0..1,title="Error of Compensated Servo's Response to Unit Step of Velocity", labels=["t sec","1000 \327 Error"],labeldirections=[horizontal,vertical],plotset);</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The maximum error is seen to be about 44.4/1000 radians = 2.55 degrees.  After about t = 0.3 sec, the error decreases smoothly toward the steady state value of 1/Kv radians.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The steady-state error of the output when following the maximum constant speed input of 30 rpm (180 degrees/sec) is given by,</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`ss error` := evalf(180*degrees/Kv);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">unassign('`ss error`');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  This was considered acceptable.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Closed Loop Frequency Response</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The closed loop frequency responses for the compensated and uncompensated servos are plotted below.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">a := attensemilog(`C/R`,0.1,100):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">uncomp_gain_dB := 20*log10(abs(subs(s=j*omega,`C/R uncomp`))):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">b := semilogplot(uncomp_gain_dB,omega=0.1..100,colour=red):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">c := plot([[-1,-3],[2,-3]],linestyle=DOT,colour=black):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">display([a,b,c],title="Closed Loop Frequency Responses of\nCompensated Servo (blue) &amp;  Uncompensated Servo (red)",txt,
labels=["","Gain dB"],PLOT(TEXT([2,5],"wT",ALIGNLEFT,FONT(SYMBOL,10))),
PLOT(TEXT([1.87,5],"log10",ALIGNLEFT,FONT(TIMES,ROMAN,11))));
unassign('a','b','c'):</Font>

</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Using the cursor, it will be seen that the compensation network has reduced the servo's peak magnification (resonance) by a factor of 13.8 (22.8 dB) from 23.8 dB to 0.88 dB; reduced the frequency at which it occurs from 27 to 19/sec; and reduced the bandwidth from 42 to 36/sec.  (The normalizing time constant, T, is 1 sec)  </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The bandwidth of the servo, i.e. the frequency range in which the magnitude of the closed loop frequency response,<Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle301" underline="false"> C/R (j</Font><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle364" underline="false">w</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle365" underline="false">)</Font>, is greater than -3 dB, can be obtained more accurately by substituting <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle296" underline="false">j</Font><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle297" underline="false">l</Font> = <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle305" underline="false">s</Font> (where <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle298" underline="false">l</Font> = <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle299" underline="false">w</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle300" underline="false">T</Font>) in <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle302" underline="false">C/R</Font> to obtain a function, <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle304" underline="false">C/R f</Font>, from which the maximum value of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle303" underline="false">C/R (j</Font><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle359" underline="false">w</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle360" underline="false">)</Font> can be found, thus</Text-field><Text-field layout="Normal" style="Normal"> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`C/R f` := map(abs, subs(s=j*lambda,`C/R`) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">`C/R max` = maximize(`C/R f`,location,lambda=15..30);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The maximize function yields not only the maximum value of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle361" underline="false">C/R (j</Font><Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle362" underline="false">w</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle363" underline="false">)</Font> = 1.106 (0.88 dB), but also its location, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle308" underline="false">l = w</Font><Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle309" underline="false">T</Font> = 18.95, whence <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle310" underline="false">w</Font> = 18.95/sec.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field bookmark="Bandwidth" layout="Normal" style="Normal">  Setting <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle307" underline="false">C/R f</Font> = -3 dB and solving for <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle306" underline="false">l</Font> yields the cutoff frequency, <Equation input-equation="omega[c];" style="2D Comment">NiMmJSZvbWVnYUc2IyUiY0c=</Equation>.  In this case, the bandwidth extends from <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle311" underline="false">w</Font> = 0/sec (constant amplitude input) to the cutoff frequency, so it has the same value as the cutoff frequency.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">omega[c]*T = fsolve( `C/R f`=10^(-3/20), lambda,0..40);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">omega[c] := evalf(rhs(%)/(2*Pi)*cps);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">unassign('lambda','omega[c]');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  This bandwidth is small enough to reject most 16 cps noise in the input - any such noise will be attenuated by a factor of about 11 (20.75 dB).  As has been seen in the plots of transient response above, it is adequate for good performance.  However, if a faster response to a step input of velocity is necessary, the bandwidth would have to be increased, and that would result in poorer rejection of 16 cps noise - indeed, some of it could be reproduced in the servo's output.  If the input were to contain noise at frequencies much lower than 16 cps, say 5 - 8 cps, the bandwidth would be excessive, and the noise would appear in the output.  It might also cause the motor to overheat, or the amplifiers to saturate, with resulting instability of the servo.</Text-field><Text-field layout="Normal" style="Hyperlink"><Hyperlink bold="false" executable="false" family="Times New Roman" hyperlink="true" linktarget="Wks:#Observations" size="12" style="Hyperlink">Return to Observations</Hyperlink></Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Compensation Network Design</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The compensation network for the servo used operational amplifiers as shown in the sketch below.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field alignment="centred"><Image height="414" width="560">TUZOV3RLVWI8b2I8Uj1NRExDZE5OWmpqOnRTPkQ6O1I7VUVlcVtGTl5DX2I7X2RyT3VnaXVlUWxVQHFQPmpLV2FPeHh5Z2ZJd2NzT2JSRmNCWG06aFtUV3dBSW9Idm5BeVxcakh5Xj5uZ3l4YVl4c0daOml0eEdlP0I8X0o+RFs8YDo/Rjs7RkI9Qlo7Uzo7Q0w8TF4+W0xCPE5KO1o6TDpHWlpKSkI8PjtEYjpKOkNaQEpKQkI+O1xcOj9OOkJaPko9QkI+Pko+QjxOSjtaOkw6R1pKXnVpV29aPnFxWXl3bnlheVZNYllhV2xVVD1pRUd3ZFlbWGlZdVhDdl95SG9rVVVzU1dlREdzd2VdWWVVdlVnaWRlSFxcO1NXQ3NZQVlbdVdwQ3NGTVhBdUZ2Q2dndWNqdXZ0W1d1V0d5U1hXX0VuO2lzU1hda2NlXVRmU0RxUXZKZ0VhY3dacUhmcUZUd3dTTWZHW2VtYXl2YXltQXR3SXdLc0h4U2lQdWlJVWhPaVVJcXVXR3dLP0Y7YXl4XXJKaWhYVUZlS2NISUledXg+Z3lUbUlqW0doW0locVZ5V3NRX0NXVUdBX2ZMV0V5cXltc0lQeUh4aWh2SXheeWNeXUl2c1V1YVVMd3lkc1k+V3ZZa2RZaXJUQVdPc1RpRXhzd0Z5X1VTZWZzcWhSeWlkcXh5U2l2ZWJJZUl3YXlRS2NJWVc9UVU8PWRiPUhEcWdWR3dXVXlIVVVsVWg/eVVSPUlJTXNZc1N4VWJzcWVfWXltQVlzYXRpYUZJQ2dsc0Rjd1NKbXJ5c3ZxR0lYVXI/WWlYeWlPa2Rpd3l2SWVQeVRjTWhrb1ZRZXVmWXJSZ1lnY0RNRWRWaVVYO3lcXGl5YEloY2tJaWdUZUVzZl90W1NJVFtFQVNTWGFlRXNYdVdTcHFiWWV4dVFFeXdocXljUVdkdV11VkN0Xj1DVnV3WXFob21ldlN3XWtTZl12cV1kZkd5a1F3RHlFQGV5b0dIb2VGP2F3ZFdXb2V3OmV2O3NHc015T0d4PmV2P2VUU0FVYHdSYD1TblNJXnVIdU12W2V3P0VoTXVSQm1VdXdTbF1TR01kZHljZD15aU94eWl1dl1IbFVyPXFjbXd2VE14aktlZnVnd3lIdUV2XllWW0lWXkVSTFtGVFtFZldlVFloYXliP3lEeHd1ZHl2ck1Vd0dXaWdJaXVpc1FmbWlUeUlWa1VHZkNDbVVyeXNXdEtWYVNpZHFWRXdyU1FmZ1F5aU95XVtCbG1DU2l1cm9STVViSkl2PkdyWFdUQWVkW2lXbEN1RHlzYF93VktpYHlmcUtjST9Ic11oP1l4d2NTYE9CZW9lUVFnZz9kQUdpbGdWYW9lTmF3PVNnaUVyR1lnaGFlW2NSZWdXdGN4YmVldEtjb3dWbTtHQnd1WE95am9HeUt4al92SlVZd3FWWVVEUXdGR2VFX0FldD9YZWlUd0FUQE92T21VaWdCUV9zR3F2bU9YV11VX3llP1l1Q3lTdHVTV1dCWU9pVEtWTz1iRVd4Q2dGUUV1Z1t1WEV5RV9WZGVXSWVVR0FpaklJSHFld11lV3VXXVlCbXdnb3l2aG9EaEVYUT91Q0tEYXVTWF9XX1llaGViSHloV3dkaHVXVktoPUhNTHRqR1hPQXl5bkhraU1xT0xReUxtXkFWVEBOOzxyb1xcTWxYSjo9bDo8QjtbWko+QjxOSjtaOkw6R1paSkpCPD47RGI6SjpDWkBKSkJCPjtcXDo/TjpCWj5KPUJCPj5cXDpLWldXeWdnXFw6R3R1aXlIb2x2b2FZYHZ5UV1QYGBzWG5ZWGV1SXlzWWlVaGdpUVo+RltoX2dWeGpbYF1DUXJeeVxccGh0YnZ3Vld1dUBqdUBoQnFbUHdqZEh2Xl5ndldnPXlzRF5qWkZaSUlvV151SFhicD9gbUZrU1BvP0lbQVZ0VnZvPWFbQz55VUZuaU9cXD5IWj5GWzxfZmNGcWJxd1pIcUVBeVhfY0lAXFxePmZ4Vl1DaXJTaWN0dmR2QHFod3ZXP3JXcHVTb2paP2RZYG9eeWxfd15LR2F0cWt2SGNLXj5rc11BZFdcXEpDPjtEYk5ea3lWc0hRdTo/bDo+YkpAXkBhWl93dkw+YkpEPkNDaHlJd0tHeG1XPFF1X2hzdk11cWRNX3RyREduWWFueEZvO3BvYEFiRXluREdzQVFzZ15lbFh4O29fc2F5dHZ3U19zSkBqX2hiU3lhQVhtdGhdbWFhWF5zc15eQldrTHhpbUB5QGheOkBeO0pyTXNeRG9DUUw6PTw8SlJhck9tWEpkcmo9dGlwWW55V3NpanBta1xcTE5CPXJTZHVkWFg7QFFxWHZKaF0+RltcXEZ4Y3d1amdfQWB3OlZaS3h5Q29bRHBpeUdyQ0ZhbV5ecnZnaWB2TXFxdWF4Z2ZzYV9eWWFyZF9mQGBaQXhrP0hmcD9tXFxnYUJOXFxWZmBQbm95UWJsSWNYWWdRQGVDeWtWYGBFUWxaRnI9Vm1BX3lTWWhsaW9cXG5uRHdua29bQ05zTWBuV1hjcmh1cHddYFlxQHhcXDxgWkpOZnJOZndKPGR3T1BtZkRKUEVYSERLYlF1cU1TTmBVXFxQbEZxbEZwUD5ES1pRc0NEcEhkbUZJTnVadkl2SmhdTmhzeF9yU1lzWXhuOkBeO0lbbHlhZ05zeUlnZ0ZiPW9bU0lyQEl5TUhxSz5bTHI9Q0ledUJtU0hbR3ZhYXlda3M6U0heO0lDbXlLc1ZkXUI8bG9GUVRsaW5ndVVpdGxwPFJ1bEtTaVhecFlXVFg9SWp5QXk9dFRAeVB1YWtzaHI7VU9HPFA9TXdlPW15UW1yUW9gcWo9YXlbWU9ZWHhTZXJXVHlXYHJPYVliSWxdVHBnVVNKXFxOSHRNb3l3aUhUa3FWaXVQTUBNbFBtZkRRXFxlcTtMaj5pV0x1Skd0ckZFc1ZpWT1RTEhAdlZMVEl4V0JlcFpYbFE9UTxgckdsbmZsc0BZdG1hcXY9cVZxTnNRTV5odkVdTUFATF5MVXhQaklJV0xQeEt5Vm1hc0J0UGptS0NweFdYVF1sd3JsTlVxcD5EUlxcVXlCTW9yZU1tVXJ5SHhWbFdwQHlTQXVIeHc9VGx1QU9jeG5ZcE1xZXhkdXdwPU5pVVJVSE47PGpaREpaPGM6QzpbSjo8S0xeWkNuZHJOdmVpXzp4bmxJdDs/YkVJckFBXnlZcGJ5bElZeD9hW0NxYVxcd3ZMPm1PR3l0eXJbeVxcTkFbO09aXFxnW0ZAYkpQcVVZW3JRXmxOakZvbXZAb1JPcnNeXl1YY3Jedl9RbXlndXV4c0NxYkpwbWo+clZZeFlxWnNRXmxQc0dHdUNnYWZpcGReYUJOXFxbUWhyYHZlUXRpR2A/XmhLQHVwSGZKaGQ7QF5rVnBxP3g/X2Z1b3J4UXNuSGFkcWRUTmo+ZndhWWtEYWRWYGJgdmJ3V2VHZ3BLXm5YY0p1Q2llZHZJQ2hVVTxPSGdJWUdHYlpjc1k7Umo9SDtjVjxDUkRzcD5Mcz5MWj5xdT5HX0lAZWVoeE9ZaVRZaHZ2dkhgbENeWmNneFhXcnhRcmI/dkpRbGNWdFc/dTpPal53YUJ3aGlgYHVucVpZdUJxWkxeXkheXXFpXmlZb2dXY0pvXlU+WztPWnVuYT1pXVU+Y0pAaT5heGJ2cXRoaWdRXFxmQXlmP15VPmNKVENZSTtvWXBdWTt5eHRlRUhzWE5HU0o/dXVRZklXeGN1dWZPdVxcaVNQYWlHeWZGTWI+T0Zsd2hcXHNYc0N0TFNYcld2SWtzPkNjYllZR2dlRT1JW1dSd2d3TlFidkN1V0dCTW1GO01CV0tIVklDVHlUX01EXmtURldSd011cW9DW19TPF9CdFt4Ymd1TUd2SGl1RWFEYUloQ0tEd3FUO3Vick9nRkVYWEVDW29pQndSSj93dHV3aj1XPWFYQkdnUXFVVUlUS1lWaHd3UVtGanNFXFxhT0lAVG1cXE47TUpXTHJFWU4+YWtHSVFeTFJGZGpWVUteWFJyRVk+SVlmTWpOSWx2eWt5bG54ZFdGUXFMSU52YFE+RGtoeHJBbVhuPFlzPUtMPG1YZE9UeXRSdVFiQWxaRHR4aXNNYHF5XVlsXFxwQ11OdFxcTkJdVWp4V0d5Tj1VVEVJdnhYUmhkTUxcXE5oSWxfZHc7YWtwRVk9YVhCPWw6TFJGeXBuPVNKQFd5cXREbXFhZFdhQXRMXFxYQkRSXFxlUFk9UDtMUV48Uzp0UEJFbEhES0w8ck9gWGI8a1ltVDteWkM+Wj5GOz1kOjtSSjxOQj9CO0I+Q0tCQjteOkBeOkpaQlJBZ1l5Z1k/eF9FZzprVkJFRkZzVV1peV9pZjo7RkJFYnRhSjtNcUxtWXJxSzpYbG9xeU9sdkxdSlptak5Mak08Yz5GX1BvbGZgWjpYZ3dxcERuWml5eHU/X01BeWE/amFmd2JRckhAc3V3eXVebmtxcFN2Z09mYDxuXWN5ZmFxbEZucUdBbDxfZ092X0c/YllQdnY+XWFBbERZbGF2ZFlJWnded2VRYnduXTtPYHNPWkZWcT9GWzpYa0BodTt2YlhRaj4+dGlvbD5GWzpAX1xcYV11WHhxP2NNdGt5ZkI9cj13eGlFQmFJUzxfWD1HV2ZYTHB5Vz1lbmhQdUFMS0w8SltsUWRwcnNcXF4+QF5CP1pCTjxzUUhEW3lpaWJRd2pZcFpGWmpnZk1wb3c/WkhGdTs+XFw8QF47Pj48XFw6PjtcXDo/Rjs7Ylo8Yjs+alpGWlpKSkI8PjtEYjpKOkNaQEpKQkI+O1xcOj9OOkJaPko9QkI+PlxcOktaPEQ6Pko8Yjs+ckl4dXd2YXN5eHVpeXdJdm1JeXJHP2dJWz9GV21oR2tib3dJeEltd0RuWmRqUlROWlVYXVV5XFw8U1FNUD1Nd209U0JsdUhMak5Mbjptc1tESkBRdkhJTlNoTDs8dU1seUlYc3hISkpcXF5aSj5CPE5KO1o6P2d4YWZXcGFYP3dNeWlIcHdnYlpDQjp5VUhDdTs7RDx3Q1FlZl1DcztXSUF3QlprdHVbdHVNRDo/Q1ZLaD07Rj5zYmZBd0V3d1ZDYnJ3V0l1V0U9QlxcO1hCcWN4dUZDPWJTS0Q6O2VbQ0JaO0s6R1paSkpCPD47REI/TjpDWkBKSkJCPjtcXDo/TjpCWj5KPUJCPj5cXDpLWjxEOj5KPGI7Pj48PEI8PjtEYjpKOkNaQEpKQkI+O1xcOj9OOkJaPko9QkI+PlxcOktaPEQ6Pko8Yjs+Pjw8S1pCSjs/OjxCO246PDw7Oz47XFw6P046Qlo+Sj1CQj4+XFw6S1o8RDo+SjxiOz4+PDxLWkJKOz86PEI7bjo8PDtbQko+Ylo8OjteOlQ6QkI+PlxcOktaPEQ6Pko8Yjs+Pjw8S1pCSjs/OjxCO246PDw7W0JKPmJaPDo7XjpUOjtbWko+QjxOSjtaOkw6R1o6eXF4SVpyb2FWUFs8YWpdYHE6SjpgblxcdE5cXHRUWzxQOzI7</Image></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle327" underline="false">C1</Font> and <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle328" underline="false">C2</Font> were chosen as 1 <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle325" underline="false">m</Font>F and <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle348" underline="false">R5</Font> was arbitrarily chosen as 100 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle329" underline="false">W</Font>.  The other components of the compensation network can be determined using the following relationships to produce the desired values for <Equation input-equation="T[1],T[2];" style="2D Comment">NiQmJSJURzYjIiIiJkYkNiMiIiM=</Equation>, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle370" underline="false">a</Font> and <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle326" underline="false">b</Font>.
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R5 := 10^5;</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">C1 := 10^(-6);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Normal"><Font italic="false" size="12" style="Maple Input" underline="false">C2 := C1;</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := R1*C1 = evalf(T[1]/alpha);                       </Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := (R1 + R3)*C1 = T[1];</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq3 := R2*C2 = T[2];</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq4 := (R2 + R4)*C2 = beta*T[2];</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq5:= (R2*R4*R6)/(R1*R3*R5) * (R1 + R3)/(R2 + R4) = Kc;</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">sols := solve({eq1,eq2,eq3,eq4,eq5},{R1,R2,R3,R4,R6}) assuming R1&gt;0,R2&gt;0,R3&gt;0,R4&gt;0;</Font>
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  These are reasonable values, but using standard values they would be chosen as:</Text-field><Text-field layout="Normal" style="Normal"> <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle349" underline="false">R1</Font> = 30.1 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle330" underline="false">W</Font> + 205 <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle375" underline="false">W</Font> = 30.305 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle316" underline="false">W</Font>,<Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle380" underline="false">
 R2</Font> = 2 M<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle379" underline="false">W</Font>,</Text-field><Text-field layout="Normal" style="Normal"> <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle350" underline="false">R3</Font> = 511 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle312" underline="false">W</Font>  + 24.3 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle353" underline="false">W</Font> = 635.3 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle376" underline="false">W,</Font></Text-field><Text-field layout="Normal" style="Normal"> <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle351" underline="false">R4</Font> = 2 M<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle313" underline="false">W + </Font>1.78 M<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle378" underline="false">W</Font> + 86.7 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle317" underline="false">W</Font> = 3.8667 M<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle377" underline="false">W</Font>, </Text-field><Text-field layout="Normal" style="Normal"> <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle352" underline="false">R6</Font> = 2.55 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle314" underline="false">W</Font> + 90.9 <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle315" underline="false">W</Font> = 2.6409 k<Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle318" underline="false">W</Font>.</Text-field><Text-field layout="Normal" style="Normal"> Inserting these values,
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">R1 := 30.1*10^3 + 205;  R2 := 2*10^6;  R3 := (511 + 24.3)*10^3 ;
R4 := (2 + 1.78)*10^6 + 86.7*10^3;  R6 := 2.55*10^3 +90.9;</Font>

</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  From eq1 - eq5,
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Kc := (R2*R4*R6)/(R1*R3*R5) * (R1 + R3)/(R2 + R4);</Font>
</Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[1] := (R1 + R3)*C1;</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">alpha := T[1]/(R1*C1);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">T[2] := R2*C2;</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">beta := evalf( (R2 + R4)*C2/T[2]);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">unassign('R1','R2','R3','R4','R5','R6','C1','C2');</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  The values found are sufficiently close to those derived earlier for the compensation network, namely <Equation input-equation="Kc = 1.21334,T[1] = .56561,alpha = 18.63555,T[2] = 2;" style="2D Comment">NiYvJSNLY0ctJSZGbG9hdEc2JCInTTg3ISImLyYlIlRHNiMiIiItRiY2JCImaGwmRikvJSZhbHBoYUctRiY2JCIoYk4nPUYpLyZGLDYjIiIjRjo=</Equation> and <Equation input-equation="beta = 2.93333;" style="2D Comment">NiMvJSViZXRhRy0lJkZsb2F0RzYkIidMTEghIiY=</Equation>. 
</Text-field><Text-field layout="Normal" style="Normal">  Inserting these new values in the compensation circuit's transfer function, the new poles and zeros of the servo's closed loop transfer function can be obtained together with the new damping ratio and undamped natural frequency thus     
    </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Gc := Kc*( (s + 1/T[1])/(s + alpha/T[1]) ) * ( (s + 1/T[2])/(s + 1/(beta*T[2]) ) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">KG_comp := evalf(Gc*KG/(T[f]*s + 1)):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">zeros := [solve(numer(normal(`C/R`)))]:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">poles := [solve(denom(normal(`C/R`)))]:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq1 := sqrt(1-zeta^2)/zeta = abs( Im(poles[2])/Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eq2 := zeta*omega[n] = abs( Re(poles[2]) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">solve({eq1,eq2});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  These are identical to those found previously, namely <Equation input-equation="omega[n] = 29.81747, zeta = .54593" style="2D Comment">NiQvJiUmb21lZ2FHNiMlIm5HLSUmRmxvYXRHNiQiKFo8KUghIiYvJSV6ZXRhRy1GKTYkIiYkZmFGLA==</Equation>. </Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Observations</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">1.  The method illustrated in this worksheet for choosing the poles and zeros of a series-compensation network for a simple servo is quite straightforward.  It allows the compensation to be designed directly from the damping ratio and undamped natural frequency specified for the servo.  This is an advantage over frequency response methods since these rely on indirect relationships with the damping ratio and undamped natural frequency.  In practice, though, the choice of method depends mostly on the designer's preference and experience.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">2.  One of the lead network's time constants, <Equation input-equation="T[1];" style="2D Comment">NiMmJSJURzYjIiIi</Equation>, was chosen equal to the motor and load's mechanical time constant, <Equation input-equation="T[m];" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>, so that the zero it produced cancelled with the pole produced by <Equation input-equation="T[m]" style="2D Comment">NiMmJSJURzYjJSJtRw==</Equation>.  This is common practice, though any reasonable choice can be made.  Sometimes it is not be possible to generate a lead angle sufficiently large to cause the root loci to pass through the desired dominant poles.  In these cases, it is necessary to use two lead networks in series, use more elaborate compensation networks, or use parallel compensation.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">3.  Although algebraic and trigonometric methods were used to determine the parameters of the compensation network (<Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle356" underline="false">Kc</Font>, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle355" underline="false">a</Font>, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle354" underline="false">b</Font> and <Equation input-equation="T[2]" style="2D Comment">NiMmJSJURzYjIiIj</Equation>), semi-graphical methods can be used instead.  These methods were pioneered by W.R. Evans in 1948 and were in use long before the PC was invented.  They are quick, easy to use and sufficiently accurate.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">4.  The compensation network used in this example allows the constants <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle366" underline="false">a</Font> and <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle367" underline="false">b</Font> to differ, but for other lag-lead networks they may be identical.  For such networks, a slightly different approach is used to obtain the values of <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle369" underline="false">Kc</Font>, <Font bold="false" executable="false" foreground="[0,0,0]" italic="false" size="12" style="_cstyle368" underline="false">a</Font>, <Equation input-equation="T[1];" style="2D Comment">NiMmJSJURzYjIiIi</Equation> and <Equation input-equation="T[2];" style="2D Comment">NiMmJSJURzYjIiIj</Equation>, though the principles remain the same.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">5.  Using the cursor to measure values of plotted functions is sufficiently accurate for most practical purposes.  When such values were obtained analytically, they differed little from those obtained with the cursor.  In any case, the precision obtained in this worksheet is misleading.  As noted earlier, the servo's transfer function is an approximation that does not take account of any damping produced by friction, or of any non-linearities.  Even if friction were to be included, it would have to be represented by viscous friction, which is not entirely realistic.  Furthermore, motor constants vary slightly from one motor to another.  Despite these reservations, the method yields solutions that are a good starting point for experimental work to determine the best choice of components when the effects of friction, backlash, etc., can be taken into account.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field bookmark="Observations" layout="Normal" style="Normal">6.  The compensated servo's closed loop response to a step input of velocity highlighted the compromise between a wide bandwidth needed for fast performance and a narrow bandwidth needed for noise rejection.  This can be a difficult compromise because the noise in the input may not be known in the early design stages, particularly when the input forms part of separate equipment being designed by others.  <Hyperlink bold="false" executable="false" family="Times New Roman" hyperlink="true" linktarget="Wks:#Velocity Step Input" size="12" style="Hyperlink">Velocity Step Input</Hyperlink>  <Hyperlink bold="false" executable="false" family="Times New Roman" hyperlink="true" linktarget="Wks:#Bandwidth" size="12" style="Hyperlink">Bandwidth</Hyperlink>   </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">7.  The ease with which Maple produces transient responses contrasts with the long and painstaking work that was needed before its advent, and its rich graphics (particularly in the "classic" interface) are ideal for illustrating aspects of servo design.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">References</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">  Inter alia: <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle322" underline="false">Servomechanism Analysis</Font> by G.J. Thaler and R.G. Brown, published by McGraw-Hill Book Company Inc, 1953; <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle323" underline="false">Control System Dynamics</Font> by W.R. Evans, published by McGraw-Hill Book Company Inc, 1954; and <Font bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" size="12" style="_cstyle324" underline="false">Modern Control Engineering</Font> by Katsuhiko Ogata, published by Prentice-Hall Inc, 2002.</Text-field><Text-field layout="Normal" style="Normal"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Group><Input><Text-field layout="Normal257" style="Normal257"><Font executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="10" style="_cstyle287" underline="false">Disclaimer</Font>:  While every effort has been made to validate the solutions in this worksheet, Waterloo Maple Inc. and the contributors are not responsible for any errors contained and are not liable for any damages resulting from the use of this material.</Text-field></Input></Group><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/></Worksheet>