Control of a Fast Steering Mirror for Laser-Based Satellite Communication by Larry Edward Hawe II Submitted to the Department of Mechanical Engineering in partial fulfillment of the requirements for the degree of Master of Science in Mechanical Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY February 2006 © Massachusetts Institute of Technology 2006. All rights reserved. Au th or .............................. 1... ............................ Departme4 of Mechanical Engineering January 20, 2006 Certified by.................. ..... ...... ... .... .... .... .... ... David L. Trumper Professor of Mechanical Engineering Thesis Supervisor A Accepted by........ ................................. r...... .. ............ Lallit Anand Chair, Departmental Committee on Graduate Students MASSACHUSETT-S INSrTIE OF TECHNOLOGY JUL 142006 LIBRARIES ARCHIVES Control of a Fast Steering Mirror for Laser-Based Satellite Communication by Larry Edward Hawe II Submitted to the Department of Mechanical Engineering on January 20, 2006, in partial fulfillment of the requirements for the degree of Master of Science in Mechanical Engineering Abstract MIT Lincoln Laboratory has been contracted by NASA to test and build a platform capable of sending and receiving laser communication signals in space from Mars. The two main components of the pointing system on the spacecraft include an inertial reference frame to provide coarse laser control and a Fast Steering Mirror to remove any spacecraft jitter from the optical path. The optical path in the satellite must have no more that 400 nanoradians RMS motion from 1 Hz to 1 kHz. This thesis focuses on the feedback control of this Fast Steering Mirror (FSM). The feedback on the FSM comes from two different set of sensors. On power up, the FSM's angular position is controlled with feedback from local position sensors (KAMAN eddy current sensors). Optical feedback is accomplished with a laser beam and quad cell optical sensor. The optical sensor has an extremely small range of operation, and the mirror must first be pointed onto the active area of the quad cell before the optical feedback can be activated. This thesis investigates the controller being used for this FSM, the feedback loops for the different sensors and the pointing algorithms used to switch between feedback sensors. The analog control system in use has a crossover frequency of approximately 1 kHz. MIT Lincoln Laboratory and NASA would like to use an FSM with a closed loop bandwidth as high as possible to lower noise restrictions on other parts of the spacecraft. This thesis investigates the FSM dynamics in detail and applies a different control system to push out the bandwidth as far as possible. Thesis Supervisor: David L. Trumper Title: Professor of Mechanical Engineering Acknowledgments Please do not be fooled into thinking that this body of work is mine alone. It might take a village to raise a child, but it takes a small army to finish a Master's thesis. Without the help and support of the following people, this thesis simply would not exist. Working at Lincoln Laboratory over the last year has been a great experience. Not only did I get to work on an interesting project, but I also has access to incredible resources. However, all of the resources at my disposal would mean very little without the people who taught me how to use them. Thanks to Jason LaPenta for getting me up to speed with his quad cell and the supporting electronics. To Cathy DeVoe for walking me through the subtleties of optics (which still seems like magic to me). Thanks to Al Pillsbury for his help with the mechanical aspects of the FSM. Chad Ware helped with the hardware for the MIRU demonstration for NASA, which while having little to do with the FSM, was still incredibly important for me keeping my job. Thanks to David Baron for putting up with me turning out the lights in the lab everyday, forcing him to work in the dark. Thanks to Rick and Karen down in Electronic Stock for taking care of all my electronic hardware needs, which were very large. Special thanks to Paula Ward for maintaining the ESD Lab where I spent 99% of my time, and for taking the photos of the hardware. Very big thanks go to Professor James K. Roberge, who splits his time evenly between Lincoln and MIT. He sat down with me and went through his entire compensation circuitry, as well as taught (along with Dr. Kent Lundburg) the most useful electronics class I ever took. Special thanks also to my supervisor, Jamie Burnside. Jamie showed me the ropes at Lincoln, honestly appraised my work and even wrote most of the first spiral code. It has been a privilege working for him. Thanks also to the Group 76 Leader, Ed Corbett for giving me the opportunity to work in Group 76, and thanks to Annmarie Gorton for taking care of all my administrative needs, especially getting this thesis through the release process (without which no one would ever read this). When I wasn't working at Lincoln, I was probably working at the Precision Motion Control Laboratory at MIT. The guys at the PMC Lab made my work seem less stressful and added the necessary degree of fun and entertainment to my life, preventing (or at least delaying) the onset of insanity. They all have also helped me with almost every aspect of my graduate career, from class selection to OTEW typesetting. For all this and more, my thanks to the PMC students: Emre Armagan, Marty Byl, Augusto Barton, David Cuff, Dan Kluk, Xiaodong Lu, Dave Otten, Aaron Mazzeo, and Rick Montesanti. My entrance into the PMC lab was facilitated by Professor David L. Trumper, my academic advisor for the last 4 and a half years, as well as my thesis advisor. Professor Trumper gave me the support necessary to complete this degree, providing lab space and funding. He has taught me more in the meetings we have than I have learned in a month in some of my classes. He also made typesetting this document much easier by exposing me to [TX during my TA days, making the writing part of my thesis go exponentially faster. It has been a privilege to work for him, and I thank him for the opportunities he has given me during my academic career. Thanks also to Laura Zaganjori, Denise Moody and Maggie Sullivan, three wonderful women who have taken care of the administrative needs of the PMC and made my life that much easier. Graduate students have a certain number of hoops to jump through during their tenure at MIT. The ease of jumping through those hoops is often controlled by the personnel of the Graduate Office. Leslie Regan has been remarkable by making the entire hoop jumping process virtually painless. She has constantly reminded me of deadlines and generally made sure that I would graduate, no matter how hard I tried to not do so. Without her, my graduate experience would have been much rougher, and I thank her for all of her hard work taking care of the ME grad students. With all of this academic support, one would think I had no problem with this thesis. However, my family has kept me grounded throughout these years and they deserve special thanks. When I was stressed out, my Mom's laugh always picked up my spirits. My Dad has been my inspiration and my ultimate measuring stick. Thanks to Diana Schroeder, my third maternal figure, who helped me with my dreadful entrance essays (single handedly saving my entrance application). And to the rest of my family: Jamie Hawe, Alisha Ledbetter, Karla Dornhecker, Tony Shelton, Angelina Stowe, Christina Mullan, the Utter family, the Langfords, Viola Lucas and all the rest: I say thank you so much for supporting me during this journey. There is one member of the PMC I have failed to mention. The "me" and "I" in this document is actually not me. A doctoral student has worked with me extensively over the past year. He has helped my in this project in more ways than I can count, from bringing me up to speed on the project to tutoring me in the finer points of control system theory. He has shared his knowledge of control system theory with me and helped me apply it to this document. He has provided a gentle nudging in regards to doing the work, and he is big reason for this document's existence. This has truly been a team effort. There is a special bond between us that could only be forged after countless hours of debugging circuitry at 4 in the morning. His help has been invaluable, and it truly has been an honor working with him. My sincere thanks to my colleague and friend, Joe Cattell. Finally, I have to thank my girlfriend of the last four plus years, Darlene Utter. Darlene has supported me in so many ways while I have been in school that listing them would be an exercise in futility. She has taken care of our day to day needs for the last year and a half while I have been in school. She has also been severely neglected, especially during these last few months while I finished this project. I look forward finally spending some time with her, and to helping her get through her own Master's program at MIT. Above all, I look forward to sharing my life with her. For Dennis Dean Dillon 8 Contents 1 Introduction 1.1 MarsComm Summary . . . . . . . . . 1.1.1 The MIRU . . . . . . . . . . . . Thesis Overview . . . . . . . . . . . . . 23 23 24 24 26 2 Hardware Overview 2.1 Hardware Components 2.1.1 Laser Sources . . . . 2.1.2 The FSM . . . . . . 2.1.3 Focusing Lens . . . . 2.1.4 xPC Control . . . . . 2.1.5 The Quad Cell . . . 2.1.6 Conversion/Rotation Hardware 2.1.7 Analog Compensator 2.1.8 Current Amplifier . . 2.2 Testing Configurations . . . 2.2.1 Analog Compensator] Implementation 2.2.2 Digital Compensator Implementation 2.3 xPC Implementation . . . . . . . . . . . . . . 2.3.1 Simulink Models . . . . . . . . . . . . 2.3.2 Graphical User Interfa ce . . . . . . . . 29 29 29 33 33 36 37 37 46 49 49 54 54 58 58 60 3 63 63 63 64 65 65 65 68 68 68 78 1.1.2 1.2 The Fast Steering Mirror . . . . The Fast Steering Mirror 3.1 FSM Background Information . . . 3.1.1 FSM Applications . . . . . . 3.1.2 FSMs at Lincoln Laboratory 3.2 FSM Components . . . . . . . . . . 3.2.1 3.3 3.4 Voice Coil Actuators . . . . 3.2.2 KAMAN Sensors . . . . . . 3.2.3 The Mirror . . . . . . . . . 3.2.4 Flexure Assemblies . . . . . KAMAN Open Loop Frequency Responses Quad Cell Open Loop Frequency Responses 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Spiral Acquisition 4.1 M otivation ..................... 4.2 Basic Algorithm Requirements . . . . . . . . . . 4.2.1 4.3 4.4 Stateflow Implementation with xPC . . . Steering The Beam . . . . . . . . . . . . . . . . 4.3.1 Square Grid . . . . . . . . . . . . . . . . 4.3.2 Constant Angular Velocity Spiral . . . . 4.3.3 Constant Linear Velocity Spiral . . . . . Acquisition and Bumpless Transfer to Quad Cell Control 4.4.1 Searching Algorithm . . . . . . . . . . . 4.4.2 Bumpless Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 91 92 93 94 95 109 122 136 136 141 . . . . . . . . . . 149 149 150 152 157 163 163 167 167 172 198 Conclusions and Suggestions for Future Work 6.1 Summ ary . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 FSM Hardware Limits . . . . . . . . . . . . 6.2 Suggestions for Future Work . . . . . . . . . . . . . 6.2.1 Track Down Steady State Oscillations Source 6.2.2 Faster Digital Control . . . . . . . . . . . . 6.2.3 Controller Implementation in Analog . . . . 6.2.4 FSM Modifications . . . . . . . . . . . . . . 6.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . 217 217 218 218 218 219 219 220 221 5 FSM Compensator Design 5.1 Original Compensator Overview . . . . . . 5.1.1 xPC Integration . . . . . . . . . . . 5.1.2 Analog Compensator . . . . . . . . 5.1.3 Baseline Experimental Results . . . 5.2 New Compensator Overview . . . . . . . . 5.2.1 xPC Digital Control . . . . . . . . 5.2.2 MATLAB Graphical User Interface 5.2.3 Design Methodology . . . . . . . . 5.2.4 Digital Compensators . . . . . . . . 5.2.5 Experimental Results . . . . . . . . 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A State-Space Representation of a "Doublet" 223 B Azimuth KAMAN State-Space Model 225 C Elevation KAMAN State-Space Model 227 D Azimuth Quad Cell State-Space Model 229 E Elevation Quad Cell State-Space Model 237 F Code Used to Generate GUI for Control of the Digital Compensator245 10 G MATLAB GUI Code for Running the Square Spiral Algorithm 251 H MATLAB GUI Code for Running the CAV and CLV Spiral Algorithms 253 I Vendors 257 11 12 List of Figures 1-1 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 Simplified MarsComm spacecraft signal path schematic, courtesy of Jam ie Burnside. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagram of the experimental hardware configuration with signal paths. Picture of the Thorlabs fiber-coupled laser source, model S1FC675. . Picture of the collimator used with the fiber-coupled laser source in mount, courtesy of Paula Ward. . . . . . . . . . . . . . . . . . . . . . Picture of the Helium-Neon (HeNe) laser source with 2 axis adjustable m ount. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Picture of the focusing lens with 5 axis adjustable mount. . . . . . . . Generalized schematic of SPOT-4DMI quad cell showing photodiode elements and output signals. . . . . . . . . . . . . . . . . . . . . . . . Picture of the SPOT-4DMI quad cell, mounted in flight box. . . . . . Picture of the SPOT-4DMI quad cell, mounted on plastic housing for use with the UDT Model 431 X-Y Position Indicator. . . . . . . . . . Orientation of SPOT-4DMI quad cell in flight box of Figure 2-7. . . . Diagram of the SPOT-4DMI quad cell's active elements with labeled ax es. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Picture of the UDT Instruments Model 431 X-Y Position Indicator. . Picture of the Conversion/Rotation Board as configured for use with digital compensator, courtesy of Paula Ward. . . . . . . . . . . . . . Schematic of the conversion circuitry of the C/R Board showing opamp math functions and output voltage ranges, originally designed at Lincoln Laboratory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schematic of rotation circuitry of the C/R Board, including op-amp m ath functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Picture of the original controller hardware box mounted in rack, housing the analog compensator, current amplifiers and power supplies. Generalized feedback control block diagram for control of the FSM. Schematic of the KAMAN rotation circuitry and summing amplifier used in feedback control, designed at Lincoln Laboratory. . . . . . . . Schematic of the original analog compensator used for both KAMAN 25 30 31 32 34 35 38 39 40 40 41 43 44 45 47 48 49 50 . . . 51 2-19 Schematic of the high bandwidth current amplifier designed at Lincoln Laboratory (1/2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 and quad cell feedback control, designed at Lincoln Laboratory. 13 2-20 Schematic of the high bandwidth current amplifier designed at Lincoln Laboratory (2/2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Picture of the experimental hardware configuration. . . . . . . . . . . 2-22 Picture of the experimental hardware setup with Plexiglas shroud. . . 2-23 Schematic of the hardware configuration using the original analog compensator with xPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24 Schematic of the hardware configuration using the digital compensator w ith xP C . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 2-25 Diagram of the Simulink model illustrating the A/D, D/A and Digital I/O capabilities of the General Standards PMC-ADADIO card with common connection methodology. . . . . . . . . . . . . . . . . . . . . 2-26 Picture of the GUI used to control the digital compensator running on the xPC Target PC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Picture of the Fast Steering Mirror mounted on an optical table. . . . Exploded component diagram of the FSM (shown with a smaller mirror), courtesy of James Roberge. . . . . . . . . . . . . . . . . . . . . . 3-3 FSM Azimuth open loop frequency response, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kH z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Simple model of one axis of FSM. mi represents the part of the FSM that is directly monitored by the KAMAN sensors, and m 2 represents the decoupling mass. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Normalized Bode diagram of first "doublet" of the FSM Azimuth axis. Bode diagram is Position / Input Force. . . . . . . . . . . . . . . . . 3-6 FSM Azimuth open loop KAMAN frequency response with parametric m odel, 10 - 3,000 Hz. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 FSM Elevation open loop frequency response, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kH z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 FSM Elevation open loop KAMAN frequency response with parametric m odel, 10 - 3,000 Hz. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 FSM Azimuth and Elevation open loop frequency response overlay, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz. . . . . . . 3-10 FSM Azimuth open loop frequency response, quad cell Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kH z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Normalized comparison of the FSM Azimuth KAMAN open loop frequency response with the quad cell open loop frequency response, 10 20,000 H z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 55 56 57 57 59 61 66 3-2 14 67 70 71 72 75 76 77 78 80 81 3-12 Normalized comparison of the FSM Azimuth KAMAN open loop frequency response with the quad cell open loop frequency response, 1.5 -3kHz. ........ .................................. 3-13 FSM Azimuth open loop quad cell frequency response with parametric model, 10 - 20,000 Hz. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 FSM Elevation open loop frequency response, quad cell Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz........ ................................. 3-15 FSM Elevation open loop quad cell frequency response with parametric model, 10 - 20,000 Hz. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16 Normalized comparison of the FSM Elevation KAMAN open loop frequency response with quad cell open loop frequency response, 10 20,000 H z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17 Normalized comparison of the FSM Elevation KAMAN open loop frequency response with quad cell open loop frequency response, 1.2 - 3 kHz ......... .................................... 3-18 FSM Azimuth and Elevation Open Loop Frequency Response Overlay, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz . . . . . . . 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 4-11 4-12 4-13 4-14 4-15 82 84 85 86 87 88 89 Example of a Stateflow diagram . . . . . . . . . . . . . . . . . . . . . 93 Stateflow diagram of the square spiral algorithm (1/2). . . . . . . . . 96 Stateflow diagram of the square spiral algorithm (2/2). . . . . . . . . 97 X-Y plot of the steering path of the square spiral algorithm with pitch = 2 and count-max = 3. . . . . . . . . . . . . . . . . . . . . . . 102 Simulink model of the top level xPC implementation for all spiral algorithms. .. .............................. 103 X-Y plot of the steering path using the CLV spiral algorithm, ..... 104 MATLAB graphical user interface used to control square spiral algorithm. 106 X-Y plot of steering path showing the effect of changing the 'Spiral Size' value in the square spiral algorithm. . . . . . . . . . . . . . . . . 107 X-Y plot of steering path showing the effect of changing the 'Spiral Resolution' value in the square spiral algorithm. . . . . . . . . . . . . 108 Stateflow diagram of the constant angular velocity (CAV) spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 X-Y plot of the steering path of the CAV spiral algorithm with pitch = 5, maxxradius = 10 and freq = 250. . . . . . . . . . . . . . . . . . . . 115 Second level Simulink model of the CAV spiral algorithm . . . . . . . 116 MATLAB graphical user interface used to control the CAV spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 X-Y plot of the steering path showing the effect of changing the 'Spiral Size' value in the CAV spiral algorithm . . . . . . . . . . . . . . . . . 119 X-Y plot of the steering path showing the effect of changing the 'Spiral Frequency' value in the CAV spiral algorithm. . . . . . . . . . . . . . 120 15 4-16 X-Y plot of the steering path showing the effect of changing the 'Spiral Resolution' value in the CAV spiral algorithm. . . . . . . . . . . . . . 121 4-17 Stateflow diagram of the constant linear velocity (CLV) spiral algorithm. 123 4-18 Diagram showing step progression of CLV spiral algorithm from point .... . ... . . . 126 P to pointQ. . . .. . . . . . . . . . .. .. ... 4-19 X-Y plot of the steering path using the CLV spiral algorithm, showing the transition from CAV to CLV. . . . . . . . . . . . . . . . . . . . . 127 4-20 X-Y plot of the steering path using the CLV spiral algorithm compared with a MATLAB generated CAV spiral. . . . . . . . . . . . . . . . . 128 4-21 Second level Simulink model of the CLV spiral algorithm. . . . . . . . 130 4-22 MATLAB graphical user interface used to control the CLV spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4-23 X-Y plot of the steering path showing the effect of changing the 'Spiral Size' value in the CLV spiral algorithm. . . . . . . . . . . . . . . . . . 132 4-24 X-Y plot of the steering path showing the effect of changing the 'Spiral Arc Length' value in the CLV spiral algorithm . . . . . . . . . . . . . 133 4-25 X-Y plot of the steering path showing the effect of changing the 'Spiral Resolution' value in the CLV spiral algorithm. . . . . . . . . . . . . . 134 4-26 Diagram showing grid points visited during CLV spiral algorithm with effective coverage of each point. . . . . . . . . . . . . . . . . . . . . . 135 4-27 Stateflow diagram showing acquisition algorithm used with all spiral algorithm s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4-28 Experimental plots showing the FSM steering path and quad cell position over a 10 V range using the square spiral algorithm. . . . . . . 138 4-29 Experimental plots showing the distance from the origin of the quad cell and quad cell Optical Sum over a 10 V range using the square spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4-30 Experimental plots showing the FSM steering path and observed quad cell position in the linear range using the square spiral algorithm. . . 4-31 Experimental plots showing the distance from the origin of the quad cell and quad cell Optical Sum in the linear range using the square spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32 Experimental plots showing the FSM steering path and observed quad 142 143 cell position during acquisition using the square spiral algorithm. . . . 145 4-33 Experimental plots showing the distance from the origin of the quad cell and quad cell Optical Sum during acquisition using the square spiral algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5-1 5-2 5-3 Simulink model used with analog compensator. . . . . . . . . . . . . 151 Block diagram showing rate feedback applied to an underdamped 2 d order system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Comparison of the modeled open loop frequency responses of the FSM Azimuth axis using the quad cell, with and without rate feedback. . . 154 16 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 5-16 Block diagram of the feedback control system using the analog compensator with rate feedback, with the FSM represented as an underdamped 2 "d order system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modeled frequency response of the original analog compensator, VlK/Vl t, from 10 Hz to 100 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . Comparison between the experimental and modeled negative loop transmissions of the FSM in quad cell feedback mode using the original analog compensator with f, r 1 kHz. . . . . . . . . . . . . . . . . . . Negative of the loop transmission of FSM Elevation axis in quad cell feedback mode using the original analog compensator with f, a 1 kHz, 1.9 kHz To 5 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulated and experimental Nyquist plots of the negative loop transmission of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with f, P 1 kHz. The region near the -1 point shown in detail in Figure 5-9 . . . . . . . . . . . . . . . . . . Simulated and experimental Nyquist plots of the negative loop transmission of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with f, ~ 1 kHz, zoomed in to show the -1 point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Closed loop frequency response of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with f, O1 kHz, 10 Hz To 5 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Block diagram of the feedback control system implemented with the digital compensators, including rate feedback. . . . . . . . . . . . . . Simulink model of the digital compensator. . . . . . . . . . . . . . . . Simulink model of the digital compensator with the quad cell rotation stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulink model of the digital compensator with quad cell rotation stage and integrated rate feedback. . . . . . . . . . . . . . . . . . . . . . . Modeled FSM quad cell azimuth axis with incorporated digital phase delay shown with original open loop model . . . . . . . . . . . . . . . comparison of the FSM quad cell Azimuth axis modeled open loop frequency responses with and without rate feedback near 1 kHz. . . . 155 156 158 159 160 161 162 164 165 168 169 170 171 5-17 Modeled frequency response of Gc (s) with K = .0535, 1 Hz to 100 kHz. 173 5-18 Modeled FSM quad cell Azimuth axis negative loop transmission using Gc1(s), 5 Hz to 3 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . 174 5-19 Modeled FSM quad cell azimuth axis negative loop transmission using Gi(s) near crossover. . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5-20 Modeled FSM quad cell Azimuth axis Nyquist diagram using G,1(s). 177 5-21 Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc1 (s) near the -1 point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 5-22 Modeled FSM quad cell Azimuth axis closed loop frequency response using G c 1 (s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 5-23 Modeled FSM quad cell Azimuth axis step response using Gcj (s). . . 180 5-24 Modeled frequency response of the digital compensator G, 2 (s). .. .. 182 17 5-25 Modeled FSM quad cell Azimuth axis negative loop transmission using Gc2 (s) with K = .0435........................... 5-26 Modeled FSM quad cell Azimuth axis negative loop transmission near crossover using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . 5-27 Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Modeled FSM quad cell Azimuth Axis Nyquist diagram near the -1 point using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . 5-29 Modeled FSM quad cell Azimuth axis closed loop frequency response using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . . . . 5-30 Modeled FSM quad cell Azimuth axis step response using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-31 Modeled frequency response of the digital compensator Gc3(S). . . . . 5-32 Modeled FSM quad cell Azimuth axis negative loop transmission using Gc3 (s) with K = .043. . . . . . . . . . . . . . . . . . . . . . . . . . . 5-33 Modeled FSM quad cell Azimuth axis negative loop transmission near crossover using Ge3 (s) with K = .043. . . . . . . . . . . . . . . . . . . 5-34 Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc3 (s) with K = .043. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-35 Modeled FSM quad cell Azimuth axis Nyquist diagram near the -1 point using Ge3 (s) with K = .043. . . . . . . . . . . . . . . . . . . . . 5-36 Modeled FSM quad cell Azimuth axis closed loop response using Gc3 (s) . .. with K = .043 . . . . . . . . . . . . . . . . . . . . . . . . . . . " 5-37 Modeled FSM quad cell Azimuth axis step response using Gc3 (s) with K = .043. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-38 Experimental FSM quad cell Azimuth axis negative loop transmission using Gc2 (s) with K = .0435, 5 Hz - 3 kHz. . . . . . . . . . . . . . . . 5-39 Experimental FSM quad cell Azimuth axis negative loop transmission near crossover using Gc2 (s) with K = .0435, 2.25 - 3 kHz. . . . . . . . 5-40 Experimental FSM quad cell Azimuth axis Nyquist diagram using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . . . . . . . . 5-41 Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . 5-42 Experimental FSM quad cell Azimuth axis closed loop frequency response using G,2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . 5-43 Experimental FSM quad cell Azimuth axis normalized step response using Gc2 (s) with K = .0435. . . . . . . . . . . . . . . . . . . . . . . 5-44 Experimental FSM quad cell Azimuth axis negative loop transmission using Gc3 (s) with K = .0210, 5 Hz - 3 kHz. . . . . . . . . . . . . . . . 5-45 Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using G, 3 (s) with K = .0210. . . . . . . . . . . . . . . . . . . 5-46 Experimental FSM quad cell Azimuth axis closed loop frequency response using Gc3 (s) with K = .0210. . . . . . . . . . . . . . . . . . . 5-47 Experimental FSM quad cell Azimuth axis normalized step response using Ge3 (s) with K = .0210. . . . . . . . . . . . . . . . . . . . . . . 18 183 184 186 187 188 189 191 192 193 194 195 196 197 199 200 201 202 203 204 206 207 208 209 5-48 Experimental FSM quad cell Azimuth axis negative loop transmission using Ge3 (s) with K = .0336, 5 Hz - 3 kHz. . . . . . . . . . . . . . . . 211 5-49 Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using G, 3 (s) with K = .0336. . . . . . . . . . . . . . . . . . . 212 5-50 Experimental FSM quad cell Azimuth axis closed loop frequency response using G, 3 (s) with K = .0336. . . . . . . . . . . . . . . . . . . 213 5-51 Experimental FSM quad cell Azimuth axis normalized step response using Gc3 (s) with K = .0336. . . . . . . . . . . . . . . . . . . . . . . 214 A-1 Simple model of one axis of FSM. mi represents the part of the FSM that is directly monitored by the KAMAN sensors, and m 2 represents the decoupling mass. . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 19 20 List of Tables 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Table Table Table Table Table Table Table Table Table 5.1 Experimental performance specifications of the FSM quad cell Elevation axis using the original analog compensator. . . . . . . . . . . . . Modeled performance specifications of the FSM quad cell Azimuth axis using Ge (s), both with and without rate feedback. . . . . . . . . . . Modeled performance specifications of the FSM quad cell Azimuth axis using G, 2 (s), both with and without rate feedback. . . . . . . . . . . Modeled performance specifications of the FSM quad cell Azimuth axis using Gc3 (s), both with and without rate feedback. . . . . . . . . . . Experimental performance specifications of the FSM quad cell Azimuth axis using Gc2 (s) without rate feedback and K = 0.0435. . . . . . . . Experimental performance specifications of the FSM quad cell Azimuth axis using Gc3 (s) with rate feedback and K = .0210. . . . . . . . . . . Experimental performance specifications of the FSM quad cell Azimuth axis using G, 3 (s) with rate feedback and K = .0336. . . . . . . . . . . 5.2 5.3 5.4 5.5 5.6 5.7 of of of of of of of of of Stateflow Stateflow Stateflow Stateflow Stateflow Stateflow Stateflow Stateflow Stateflow input variables used in the square spiral algorithm. output variables used in the square spiral algorithm. local variables used in the square spiral algorithm. input variables used in the CAV spiral algorithm. . output variables used in the CAV spiral algorithm. local variables used in the CAV spiral algorithm. . input variables used in the CLV spiral algorithm. . output variables used in the CLV spiral algorithm. local variables used in the CLV spiral algorithm. . 21 98 99 100 111 112 113 124 125 125 157 181 190 198 205 210 215 22 Chapter 1 Introduction 1.1 MarsComm Summary In an effort to better understand the solar system, NASA and the United States government have decided to send several unmanned vehicles to Mars in the next decade. Current communication between the Earth and the orbiters takes place via high frequency radio transmission. This technology is several decades old, and has the advantage of being space proven and relatively easy to implement. However, even with directional antennas, much of the power used in radio communication is wasted as the waves radiate in many directions, with only a small percentage of the transmitted power reaching the receiver. NASA has decided to implement a laser-based communication system designed to achieve higher bandwidth data transfers with much less wasted power. The Mars Laser Communication Demonstration (MarsComm) program is the implementation of this laser-based communication onboard an orbiter. Unlike radio waves, lasers can be highly focused at the transmission point. This is due to the difference in relative wavelengths. Deep space radio transmissions operate near the GHz range, giving them a wavelengths between 10 m and 10 cm, where lasers operate in the infrared or visible spectrums with wavelengths between 100 Am and 400 nm. The shorter wavelength lasers can be better focused, giving them a tighter angular dispersion pattern and greater power densities (W/m 2 ) for the same transmission power and distance. This allows for much less power to be used in 23 communication, but introduces a problem of pointing. The less tightly confined radio waves do not have to be pointed at the receiver more accurately than a few degrees, but the tighter confined laser must be pointed with much greater accuracy. The lasers used in MarsComm disperse to a diameter of approximately 1 / 6 th the Earth's radius over the trip from Mars to Earth. To hit the communication ground station on Earth, the laser must be pointed with no more than 400 nanoradians RMS error between 1 Hz and 1 kHz. This pointing accuracy requirement one of the key challenges for making MarsComm a viable technology. Several pieces are required to make the system work. A system diagram is shown in Figure 1-1. This schematic shows the signal path of a laser beam emitted from the Earth. The main parts of the system include a Magnetohydrodynamic Inertial Reference Unit (MIRU), a Fast Steering Mirror (FSM), a quad cell optical detector and a focal plane array (FPA). 1.1.1 The MIRU The MIRU provides an inertial reference unit for the spacecraft. This is accomplished by using Magnetohydrodynamic (MHD) sensors. The MHD sensors used, Part # ARS-12B, are produced by Applied Technology Associates (ATA)[1]. These sensors provide angular rate information from 2 Hz to about 1 kHz. Because the MHDs are rate sensors, the system is AC coupled. Angular position information below 2 Hz is provided by the FPA, an IR sensitive imaging unit. This low frequency information is blended with the MHD sensors to provide feedback from DC to about 1 kHz. Using this feedback information, the MIRU is able to provide an inertially stable reference frame aboard the spacecraft with the crossover frequency of about 300 Hz. 1.1.2 The Fast Steering Mirror The MIRU provides an inertial reference on board the spacecraft, but it does not correct for the error between the spacecraft motion ("jitter") and its inertially stable motion. This correction is accomplished with the Fast Steering Mirror. The MIRU 24 Beacon* Earth 2 2-300 Hz active A > 300 Hz passive I I' MIRU 77747777 K' I A FSM -- BLENDING TRACK LOOP DC - 2 HZ I II - Quad Cell ...................................................................................................1400 0, ................................................................................... ................. 4 ......I 4---- ................. ............... FPA Figure 1-1: Simplified MarsComm spacecraft signal path schematic, courtesy of Jamie Burnside. 25 beams a laser along the same optical path as the Earth bound laser beams. This beam bounces off of the FSM and hits a quad cell detector. At the zero state with no relative motion between the Earth and the spacecraft, the MIRU will not be active, the FSM will not be active and the laser will hit the center of the quad cell. As the spacecraft jitter introduces angular error in the pointing of the beam, the MIRU stays inertially stable, and the FSM uses this inertially stable reference beam to zero out the quad cell and restore the optical path as if the spacecraft had not moved. The current control system for the FSM has a crossover frequency of 1 kHz and a closed loop bandwidth of 2 kHz. If the bandwidth of the FSM could be pushed up, it would decrease the RMS angular error of the system and make the other system component noise requirements lower, leading to lower costs. Before redesigning the FSM hardware, it is prudent to investigate if the performance can be improved via a better controller design that can be easily integrated into the system. 1.2 Thesis Overview The goal of this thesis is to find the best controller for the FSM, given its hardware characteristics. Chapter 2 describes the rest of the hardware used in the experiments. Several testing configurations are presented along with an overview of the integration of the hardware with the software control system. Chapter 3 focuses on the actual FSM hardware. Prior research and design of the FSM is presented, including individual component descriptions along with schematics. Detailed open loop frequency analysis of each axis is presented along with parametric models for computer simulations. Chapter 4 details the design of a spiral acquisition algorithm used to initially point the FSM onto the active region of the quad cell, used to switch between KAMAN and quad cell control. Chapter 5 details the control theory behind the current analog compensator in use. The design of an original compensator to push the FSM to its hardware limits 26 is presented along with experimental results. Chapter 6 details the conclusions of the controller design and recommendations for future work. 27 28 Chapter 2 Hardware Overview This chapter describes the hardware used during the experimentation process. Section 2.1 describes each piece of hardware used during experimentation in detail, including electronic schematics where appropriate. Section 2.2 describes the physical layout of the hardware during experimentation, including wiring diagrams and pictures of the test setups. Finally, Section 2.3 describes how xPC was used to control the experiments, including the design and implementation of graphical user interfaces (GUIs) and the basic components of the Simulink models used. 2.1 Hardware Components This section details all of the hardware used in the experiments controlling the FSM. Figure 2-1 shows the general layout of the experiment with all the relevant hardware. The ordering of this section follows the beam path of the laser in the experiment. 2.1.1 Laser Sources The laser sources used in the experiment simulate the laser beam produced by the MIRU. Two separate laser sources were used in these experiments, as described below. 29 44 Cells erxPC 3 AZ, EL, SUM jJ C/R -+r .Ta rg et Lens xPC Host AZ, EL KAMAN Compensator 2 24 AZEL DriveU ~ Control AZ, EL Comp Current Amplifier Figure 2-1: Diagram of the experimental hardware configuration with signal paths. Fiber-Coupled Source The Thorlabs S1FC675 fiber-coupled laser source was used in early experimentation. The MIRU is designed to use a fiber-coupled source, and thus using the source is a good approximation to the actual flight hardware. The laser outputs a red gaussian laser beam at 675 nm into a fiber. The output power of the laser source is controllable between 0 and 2.5 mW. Further attenuation of laser power is accomplished with a neutral density optical filter. The power level of the laser must be controlled so as not to saturate the quad cell and position indicator electronics (see Section 2.1.5). The output of the fiber is fed into a collimator, shown in Figure 2-3. The final output at the collimator is a circular gaussian beam with a diameter of approximately 5 mm. Unfortunately, during experimentation, the fiber-coupled laser source introduced a variety of problems. The laser output cross sectional power (the spot size on the quad cell and the distribution of power on that spot) varied greatly when the fiber was moved or jostled. This movement was not extreme in the short term; however, the drift was noticeable after several minutes. The spot often drifted off the active region of the quad cell within 30 minutes. The cause of this drifting has not been 30 Figure 2-2: Picture of the Thorlabs fiber-coupled laser source, model S1FC675. 31 Figure 2-3: Picture of the collimator used with the fiber-coupled laser source in mount, courtesy of Paula Ward. 32 identified; however, due to time constraints with the project, a different laser source was implemented with much better results. Helium-Neon (HeNe) Laser Source The Helium-Neon (HeNe) Laser used during the experiments is shown in Figure 24. The laser is approximately 40 cm long with a tube diameter of approximately 7 cm. The laser is held in a mount at its midpoint and attached to the table. The mount allows the laser to be moved in two angular axes. This speeds up alignments procedures, but is not necessary in the final configuration of the hardware. With the mount in place, the natural frequency of the laser system is approximately 66 Hz (which was discovered after trying to debug 60 Hz noise). This is due to the fact that the mounting of the laser creates a large cantilever system, much like a see-saw. Placing the laser on blocks would eliminate this natural frequency, but would not allow adjustment of the laser orientation. The laser outputs a green (535 nm) gaussian circular spot approximately 1 mm in diameter at 20 cm from the laser aperture. The maximum power output of the laser is 5 mW, but has been measured to be no more than 3 mW nominal power. The output of the laser is attenuated by a neutral density optical filter directly after the laser aperture. The output power level is set by the quad cell limits (see Section 2.1.5). 2.1.2 The FSM The laser source beam exits and reflects off of the Fast Steering Mirror. The mirror is used to control where the spot hits the quad cell. The FSM is discussed in detail in Chapter 3. 2.1.3 Focusing Lens A lens is necessary to focus the laser beam onto the quad cell. The lens used in the experiments is shown in Figure 2-5. The lens used is a standard convex lens with a focal length of approximately 15 33 Figure 2-4: Picture of the Helium-Neon (HeNe) laser source with 2 axis adjustable mount. 34 Figure 2-5: Picture of the focusing lens with 5 axis adjustable mount. 35 cm. This lens focuses the laser beam onto the active area of the quad cell (which is approximately 1 mm2 ). The mount for the lens allows manipulation of the lens in 5 different axes. This mount was necessary in the testing phase to keep the FSM near the center of its operating region without having to realign the optical hardware. However, skewing can occur if the lens must be placed at gross angles relative to the quad cell. This was not a problem during experimentation because the HeNe laser was adjusted first to eliminate gross angular errors and the lens mount was only used for fine adjustments. 2.1.4 xPC Control Control of the hardware in the experiments is handled by a part of MATLAB called xPC. xPC is actually run on two separate computers during an experiment. xPC Target One computer, known as the xPC Target, runs a very basic kernel of xPC, bypassing all the software complexities of Windows and other operating systems. This bare kernel allows the computer to run programs at very high sampling rate. The programs that run on the Target are created in Simulink. The Simulink models run on the Target PC, simulating the desired system, such as a basic controller or a data acquisition device. Input and outputs are passed through between 1 and 4 General Standards PMC-ADADIO cards. Each card has 8 Analog Inputs, 4 Analog Outputs and 8 Digital I/O channels. Standard operating frequency of the xPC Target Simulink model is 10 kHz, but simple models can be run as high as 50 kHz. xPC Host While the xPC Target is running, parameters in the Simulink model can be changed in real time to alter the functionality of the model. This control is accomplished via an ethernet link between the xPC Target PC and an additional PC, called the xPC Host. MATLAB is running on the xPC Host machine, and parameters can be 36 changed on the Target machine via the MATLAB command line. The model running on the Target PC can also be started, stopped or reloaded via the xPC Host PC. For ease of use, graphical user interfaces (GUIs) can be written in MATLAB and run on the Host PC to control the Target PC. 2.1.5 The Quad Cell The quad cell is the heart of the optical tracking loop. The quad cells used in these experiments are all SPOT-4DMI quad cells made by UDT Sensors, Inc. The quad cell itself is simply 4 very small, very sensitive photodiodes arranged in a small grid. Figure 2-6 shows the schematic of the quad cell. Each active element of the quad cell (A, B, C or D) has an active area of 0.25 mm 2 , giving a combined total active area of 1 mm2. Of this active area, only the middle 25% is linear. Non-linearities occur past the inner 25%, becoming extreme past about 75%. The gaps between the elements are 13 Mm wide. Each of these 4 elements outputs a voltage proportional to the amount of light hitting it. There are two packages used in the experiments. These two packages are shown in Figures 2-7 and 2-8. Each package contains the same SPOT-4DMI quad cell, but outputs to a different conversion board. In order to calculate the position of the laser beam, the 4 element voltages outputted from either package must be converted into Azimuth and Elevation signals. This task is accomplished via conversion hardware. The quad cell in Figure 2-7 is mounted at a 45' angle in the flight box (due to packaging constraints). Figure 2-9 shows the orientation of the quad cell. Because of this packaging, the converted Azimuth and Elevation signals must be rotated by 450. 2.1.6 Conversion/Rotation Hardware The quad cell packages shown in Figures 2-7 and 2-8 both output 4 element voltages corresponding to the intensity of light on each photodiode. This information must be converted into Azimuth and Elevation position information to be useful to the controller hardware. Each package requires a different method of conversion, and if 37 Cf Rf A Cf D A Rf Cf C B Rf Rf V 100OpF Cf Rf 4-B Figure 2-6: Generalized schematic of SPOT-4DMI quad cell showing photodiode elements and output signals. 38 Figure 2-7: Picture of the SPOT-4DMI quad cell, mounted in flight box. 39 Figure 2-8: Picture of the SPOT-4DMI quad cell, mounted on plastic housing for use with the UDT Model 431 X-Y Position Indicator. Figure 2-9: Orientation of SPOT-4DMI quad cell in flight box of Figure 2-7. 40 necessary, rotation. Conversion Algorithm The basic math required to obtain Azimuth and Elevation from the quad cell is straightforward. Using the orientation of the quad cell elements as shown in Figure 210, the basic Azimuth and Elevation voltages are as follows: (C+D)-(A+B) (A + B+C + D) (2.1) EL(A + D) -(B+C) (A+B+C+D) (2.2) AZ- EL A D AZ B C Figure 2-10: Diagram of the SPOT-4DMI quad cell's active elements with labeled axes. Equations 2.1 and 2.2 are easy to understand. If the laser spot was circular and focused directly at the center of the quad cell, the voltages on each element would be the same and the Azimuth and Elevation voltages would both be zero, as expected. This reasoning would hold no matter what the size of the spot was (as long as it was all contained in the active region of the quad cell). Furthermore, the reasoning still holds if the spot is not circular, but rather a skewed ellipse. This works because 41 the Azimuth voltage is essentially the left side of the quad cell minus the right, and the Elevation is the top minus the bottom. A centered ellipse would have equal components left and right, as well as top to bottom, and thus would still register zero volts for both Azimuth and Elevation. For this reason, quad cells are said to be "centroid" friendly, as they tend to output the centroid of a spot, no matter its specific shape. UDT X-Y Position Indicator Figure 2-11 shows the UDT Instruments Model 431 X-Y Position Indicator used with the quad cell package shown in Figure 2-8. This position indicator is a single box solution for quad cell signal conversion. The quad cell is plugged into the position indicator, and the hardware outputs the Azimuth, Elevation, and Optical Sum voltages. The Optical Sum voltage is the sum of the voltages on each of the 4 photodiodes, and is useful in determining if the beam is on the active region of the quad cell. Azimuth and Elevation are outputted analog voltages, +1 Vpk. The Optical Sum voltage is always positive, ranging up to 10 Vpk. The 431 Position Indicator has a front end amplifier designed to allow adjustment for different incident beam strengths. This amplifier allows the use of different lasers or different laser powers without adjusting the neutral density filtering. This amplifier should be set so that the Optical Sum voltage is between 300 and 1000 on the Sum display. Rotation is not possible with the Model 431. The quad cell package must be aligned to the FSM in experiment. This is more difficult than it would seem, and the mounting hardware for this quad cell Package was very cumbersome. The original mounting had 5 degrees of freedom, leading to the addition of several low frequency modes that interfered with data collection. This setup was used only very early on in testing, giving way to the quad cell flight package shown in Figure 2-7. However, the flight package is not compatible with the Model 431 and a Conversion/Rotation Board had to be built to interface with the quad cell. 42 Figure 2-11: Picture of the UDT Instruments Model 431 X-Y Position Indicator. C/R Board As was stated before, there is no commercial solution to convert the 4 element outputs of the quad cell flight package shown in Figure 2-7. However, Lincoln Laboratory has designed hardware for this exact purpose. The hardware is flight approved, but was not available for use during this project. Instead, the schematics were made available, and after small modifications, an analog Conversion/Rotation board was built. This board is shown in Figure 2-12. The bottom half of the C/R Board handles the conversion from 4 element voltages to non-rotated Azimuth and Elevation voltages. The schematic for the conversion is shown in Figure 2-13. The inputs to this part of the board are the 4 element voltages A, B, C, and D. The outputs are the two non-rotated Azimuth and Elevation voltages, AZNR and ELNR respectively. The Optical Sum voltage, QSUM, is outputted at the top of the board as well. The top half of the C/R Board handles the rotation of the Azimuth and Elevation signals from the conversion half of the board. As stated before, this rotation is necessary because the SPOT-4DMI quad cell is mounted at a 450 angle in the flight box. A simple rotation matrix is used to rotate the two signals. To rotate a set of 43 Figure 2-12: Picture of the Conversion/Rotation Board as configured for use with digital compensator, courtesy of Paula Ward. 44 O A 10k B 10k C 10k D 10k 10k 15k A 10k B 10k C 10k D 10k AD534LD Q SUM 10k AZ NR X2 D Q SUM + - v. _Q AZ - U2 -- + C+ 'o Yi Y2 10k Z2 ER, - Q AZ V-- 0k 10k - (A + B) [V] AZNR =10 * QAZ /QSUM -10 - 10 [V] 1- . Q_SUM = 0 / (A + B + C + D) 0 - 10 [V] Q_AZ 2 = (C -10 + D) - 10 -15V 15V C -4 47 47 B 10k C 10k A Q 10k 1 k QQE SUM - AD534LD xi -X2 -U0 --U1 -U2 -- Y1 -15_B +15_B 1uF luF Power Supply Bypass 1 for each Component D Y2 10k EL NR DD- - W. ZlZ2, ER - V-1-7 ~ - -- - - Q EL 10 kl -_ 10k QEL =(A + D) -- (B -10 - 10 [V] V+. - + C) EL NR = 10 *Q - -10 -10 EL / Q SUM [V] orthogonal axes clockwise by an angle 0, the signal vector is multiplied as follows: cos 0 - sin 0 Lsin 0 cos 0 AZ AZrt L ELrot EL (2.3) When rotating 450 clockwise, equation 2.3 simplifies to AZt = /- (AZ - EL) (2.4) ELrot = . (AZ + EL) (2.5) 2 2 Ignoring the x/2/2 factor for the moment, rotating the axes 45*is as simple as either adding or differencing the Azimuth and Elevation signals. In fact, to rotate any multiple of 450 involves just a combination of adding and differencing the Azimuth and Elevation signals. This is precisely what the upper half of the C/R accomplishes, using two inverting summers. The schematic for the rotation hardware is shown in Figure 2-14. The input and output voltage ranges for the rotation hardware is +10 V. The Vf/2 gain factor is applied by adding a resistive voltage divider network to the end of the output. In this way, the gain of the quad cell voltage can be lowered as necessary. The V"/2 gain factor cannot be implemented directly into the opamp math functions, as it would introduce a gain of less than 1, causing the op-amp circuitry to be unstable (the op-amps used are unity-gain stable). The switches in Figure 2-14 are actually jumper blocks that select either the positive or negative version of a signal. These jumpers allow the quick changing of the rotation behavior as necessary. 2.1.7 Analog Compensator Before this work began, the FSM was controlled by an analog compensator originally designed by MIT professor James K. Roberge at Lincoln Laboratory. Figure 2-15 shows a picture of the entire Controller hardware rack. The Controller hardware rack houses the Analog Compensator, the current amplifiers and the analog and digital 46 10k AZNR 10kAZ NRN AZNR V 1 10k 1+V A ZNR N-1k AZ ROT AZNR N -AZNR ELNR V_2 10k 10k EL NRN N- ELNR1kEL NR N AZ ROT =- ELNR N = (V_1 + V_2) -EL NR AZNR 15V -15V AZNRN -(V1+k ELROT 4 ELNR 47 47 +15 B luF v_2 -15 B 10k EL NR N EL ROT =-(V-1 + luF V-2) Power Supply Bypass 1 for each Component Figure 2-14: Schematic of rotation circuitry of the C/R Board, including op-amp math functions. 47 power supplies. Figure 2-15: Picture of the original controller hardware box mounted in rack, housing the analog compensator, current amplifiers and power supplies. The compensator was designed to control the FSM in either KAMAN or quad cell feedback mode with the flip of a digital switch. Both sensors use the same generic feedback control. The block diagram for the control of the FSM is shown in Figure 216. Included before the compensator are electronics used to rotate the KAMAN sensors 450 for use in the feedback path. The rotation is accomplished much in the same way as the rotation of the quad cell Azimuth and Elevation. The schematic for these electronics is shown in Figure 2-17. This schematic also contains the KAMAN feedback summing junctions. The overall circuit shown in Figure 2-17 takes in both the KAMAN sensor voltages and the commanded voltages, and outputs the difference between the two, just as shown in Figure 2-16. The quad cell Azimuth and Elevation channels are also added together with the appropriate command voltages in the same 48 Command [V] Error [V] Compensator Amplifier s FSM I]Sensor - Figure 2-16: Generalized feedback control block diagram for control of the FSM. manner. However, no rotation circuitry for the quad cell is present. The schematic for the compensator is shown in Figure 2-18. The compensator takes in output of the KAMAN or quad cell summing junctions (also known as the Error term), and outputs a voltage intended for a current amplifier. This compensator is used for both feedback sensors, but a digital switch allows only one sensor to be active at a time. Thus, the first op-amps in Figure 2-18 only see either the KAMAN voltage or the quad cell voltage, but never both. For a more detailed review of this original compensator with experimental results, see Section 5.1. 2.1.8 Current Amplifier The final elements of the control system are the current amplifiers. The current amplifiers take a voltage command from the compensator and drive the voice coil actuators of the FSM as appropriate. The bandwidth of these current amplifiers is sufficiently high as to not introduce any noticeable dynamic behavior in the frequency ranges of interest. The schematic for one of the current amplifiers is broken up between Figures 2-19 and 2-20. 2.2 Testing Configurations Two main testing configurations were used in benchmarking the performance of the FSM. The first configuration is the baseline configuration designed to work with the 49 CD aq R59 10k CD FSM Ki R48 10k R61 20k C6 100pF R39 10k --R36| R56 10k U1 6D 0P400 R2 20KP400 10k U1 6C 15 GND 0CD R32 10k 0 15 GND -15 U3 OP27EZ i KiERROR i K2_ERROR + GND R52 162k Ki COMMAND NeNeNo c~ R40 10k CD FSM K2 R58 10k U6 UP4A0 C4 100pF R41 10k R63 20k R49 10k R57 20k U16B 0P400 4- 15 _U1GDW , R31 10k -15 K2 COMMAND GND - 15 GND R50 162k R35 10k n Ul 3 OP27EZ ~ + C46 .00luF CD C8 47pF R77 10k C51 22pF C5 100pF R3 3 162k R6 9 52.3k . AZ KAMAN ERROR F ... U6 00C OP27EZ -OR- R70 5.23k U5 027EZ R67 13. 3k 1,0.2k one (cnrle 1k R44 10k U8 OP27EZ R42 AZ QUAD ERROR Only .01uF Il U7 0 P27EZ R74 82.5k UJ9 OP27EZ FSMAZ COMP -- .. ,4.- 4G Error signal ydigital switch) .- 15 GND 15 GND 15 GND _15 GND . 15 GND R - R71 5.23k C45 R76 10k 00uF rI + C7 C52 22pF 100pF e-r R68 52 .3k 0 IF tCD3 EL KAMAN ERROR 0 -ORC-I 0 EL QUAD ERROR Orly one Error .01uF 5.72k U4 OP27EZ R66 13.3k U12 OP27EZ 10k R47 10k Ull 0P27EZ R55 R75 82.5k U10 OP27EZ - 1,0.2k 4- signal (trolledn bydigital Cz R3 4 162k C48 Il R45-,10k.R U14 0P27EZ C3 47pF switch) ..- 15 GND -15 GND F.15GD R73 5.23k 15 GND 15 GND FSM EL COMP ~CD CR1 3 1 N4153 1 5V t~Ti R3 47.5 C4 C7 0.l uF ot- SERVO IN Ri 20k R2 20k I__. 15 GND OP27/AD C5_ uF 15 GN DR8 402 IR4 47.5 9, -15 ~ GND -I Cl 33uF -D -1 5V 20 5 GND 100 0.1 R7 - R61 _ 402 RS 0.l uF Qi 2N2222 Q5 CR1 2N! 1N4153 CR2 1N4153 Ri11 221 2 CR3 1N4153 CD CD 2N2907 R9 6.81k (D C6 0.1 uFO~lF R URi _2 0 , R125 0. 15 GND -1sv - - 5 R65 1k MOTOR - MOTOR + CR14 CR17 CR1 6 CR15 CRA CRB CRC CRD 1N4153 1N4153 1N4153 1N4153 1N4153 1N41 53 1N4153 IN4153 Ad IA LA 14 m m 1sv 5V I', T9 RS 20 ~CD 0. uF 0 ~1 GND 15 GND QI___Q2100 Q5 2N5004 30 R12 R59 10 04 u 1N4153 R11303 221 *221 C37 0.1 uF CR5 3IN4153 + C3 2N2907 2T2907 RVRi0 L6.81 0. luF 0~ 0.2 20 R6 -15 47.5 r' 33uF CR6 1N41 53 01 RUR20 GND -1 5V 2N5005 2N5005 U2 OP27/AD C12 Q6CR4 2N5004 RR 30 CD R62 2N222 2N2222 47.5 C.l 0.1 uF R15 ---.... -RIO0k 5GN 5GD R16 0.2 5V -15V R19 R20 2k 2k analog compensator already in use at Lincoln Laboratory. The second configuration implements an original compensator design using xPC as a digital compensator. These configurations differ in their compensation methods only and the optical setup is the same. Figure 2-21 shows a picture of the hardware configuration. The quad cell is sensitive enough to register atmospheric disturbances interfering the laser beam path. For this reason, all data was collected with the optical beam path and relevant hardware contained in a Plexiglass shroud. The testing configuration with the shroud in place is shown in Figure 2-22. 2.2.1 Analog Compensator Implementation The baseline testing configuration is shown in Figure 2-23. This configuration uses the original analog compensator designed by Professor Roberge for feedback control. xPC is used only to control the analog compensator functions. Different models used with xPC provide digital switching between KAMAN and quad cell mode, allow spiral acquisition of the laser spot on the quad cell (see Chapter 4) or take data while an experiment is running. In this configuration, xPC runs the models at a 10 kHz sampling rate. 2.2.2 Digital Compensator Implementation The testing configuration used to test the original digital compensator is shown in Figure 2-24. The only difference between this testing configuration and the configuration used with the original analog compensator is that the compensation now occurs on the xPC Target PC digitally instead of on separate hardware. In this configuration, the xPC Target must run the models as fast as possible to keep phase loss down to a minimum, typically running between 20 and 50 kHz. 54 Figure 2-21: Picture of the experimental hardware configuration. 55 Figure 2-22: Picture of the experimental hardware setup with Plexiglas shroud. 56 3, AZ, E, SUM 4, Cells Control j JI C/R Board Lensa xPC xPC Trg et Host 24 AZ,EL KAMAN Analog Compensator Control AZ, EL Comp I24 AZEL Drive fCurrentr Amplifier Figure 2-23: Schematic of the hardware configuration using the original analog compensator with xPC. 34 AZ, EL, SUM 44 Cells I I I"Control Quad e~llC/R Board Lens xPC xPC aTrg et Host 2, SAZ,EL KAMAN 2 AZ, EL Drive Current AZ, EL Comp Amplifier Figure 2-24: Schematic of the hardware configuration using the digital compensator with xPC. 57 2.3 xPC Implementation As stated before, xPC is used in the experiments both as a control device for the analog controller and as a compensator as well. This section describes how to implement this type of xPC control or compensation. 2.3.1 Simulink Models xPC is simply another set of blocks that Simulink can use in its models. The only major difference is that the xPC Target machine runs these Simulink models instead of the computer running MATLAB. As was stated in Section 2.1.4, the xPC Target uses the General Standards PMC-ADADIO cards for communication between the Target computer and the experiment. Several blocks are provided in Simulink to control the PMC-ADADIO cards. Figure 2-25 shows a very basic model illustrating the A/D, D/A and Digital I/O blocks available. The model will run at a specified frequency (not shown in the figure). Simulation of the model in Figure 2-25 begins with the small block on the upper left of Figure 2-25. This block starts the A/D conversion on the PMC-ADADIO card. Once that is finished, it drives its 'Enable' bit high, telling the next block to start. The next block reads the A/D channels into the Target machine. When this finishes, the next block in the chain (in this case, the D/A write block) evaluates. The D/A block writes its current values into memory, and after this is done, the final block in the chain tells the xPC Target to update its D/A channels with these new values. In the meantime, while or slightly after all of this reading and writing is occurring, the rest of the model evaluates. The first D/A channel is simply the discrete time integral of the sum of the two A/D channels. These two A/D channels also go toward the xPC Scope block. This block produces a display showing the signals routed to it on the monitor of the xPC Target PC. This is useful as a second oscilloscope to monitor signals. The second D/A channel is simply a MATLAB generated pulse generator. The amplitude, pulse width and frequency of this pulse generator can be changed in real time in MATLAB on the xPC Host PC while the model is running. The Digital 58 E E E E CD C oC PMC-ADADIO General Stds AD Start E E PMC-ADADIO General Stds AD Read K Ts 1 z-1 Discrete-Time 1 PMC-ADADIO General Stds DA Write 2 ADADIO Read C." CD P 0 M Pulse U Generator A/D Channels " Switch Control 1 -t r+ 2 Switch General Stds 3 4 C+ ADADIO Digital Input PMC-ADADIO Digital Output AND Target Scope Id: 1 Scope (xPC) 5 PMC-ADADIO General Stds Digital Input ADADIO Wirte D/A Channels L SW_1 10 6 Logical Operator ADADIO Digital Output General Stds DA Update D/A Channels A/D Conversion 2 E ADADIO Update Integrator ADADIO Start PMC-ADADIO E -- 1 Input and Output blocks each evaluate once a sampling period. The can be placed in the chain to control exactly when they evaluate if wanted, but this is not necessary. Looking at the digital part of model now, SW_1 controls the output to Channel 5 of the Digital I/0, switching it between input Channel 1 or input Channel 2. SWA can be controlled on the xPC Host PC in real time as well. The output to Channel 6 of the Digital I/O is simply the logical AND of I/O input Channels 3 and 4. 2.3.2 Graphical User Interface The great part about xPC is that parameters can be changed while the Simulink model is running. The not so great thing is that the commands to do this are quite cumbersome. Fortunately, it is possible to write graphical user interfaces (GUIs) in MATLAB to make the control a little easier. Figure 2-26 shows the GUI used to control the digital compensator. The section labeled "FSM Model Control" provides for control over the Simulink model being used. A text box allows for changing the active model. Buttons provide control to build the model on the xPC Target, and to start or stop the model simulation. The section labeled "Scope Control" allows control of the xPC Target scopes in the model (as mentioned in Section 2.3.1). Finally, the section labeled "FSM Compensator Control" allows parameter changes in the model itself. The xPC section of the MATLAB help file is very useful in explaining how these parameters are changed. For reference, the code used to generate this GUI is available in Appendix F. 60 Figure 2-26: Picture of the GUI used to control the digital compensator running on the xPC Target PC. 61 62 Chapter 3 The Fast Steering Mirror This chapter describes the Fast Steering Mirror (FSM). Section 3.1 reviews the applications of FSMs and the origins of the FSM used in these experiments, including its predecessors. Section 3.2 describes the FSM in terms of its components, providing technical data and assembly drawings for reference. Section 3.3 reviews the open loop frequency response of the FSM as taken with the local angle sensors. The frequency responses are examined in detail and parametric models are provided for simulation purposes. Section 3.4 provides the same information, but with the transfer functions taken in respect to the optical angle detector. 3.1 FSM Background Information This section provides background information on the FSM, including military and commercial applications, as well as the history of FSMs at Lincoln Laboratory. 3.1.1 FSM Applications A Fast Steering Mirror is a mirror whose angular position can be controlled at a relatively high bandwidth. FSMs are used in many applications and their mirror diameters vary between less than 1 cm to over 30 cm. Fast Steering Mirrors have been used in military and aerospace applications since at least the mid 1980's. These 63 two industries were the only which could afford the early FSMs, as most were prohibitively costly for commercial applications. Most applications of the FSM in these fields involve target acquisition, alignment, line of sight stabilization and laser beam steering. As the price of FSMs has come down over the last two decades, their usage in industry has increased. Typical commercial applications include beam steering for photolithography during computer chip manufacturing, beam steering for laser eye surgery, astronomy applications, laser-based communication and other optical scanning applications. Most FSMs are similar in design, using flexure mounted mirrors driven with linear voice coil actuators. Piezoelectric actuators can be used when the total angular stroke requirements are low. 3.1.2 FSMs at Lincoln Laboratory FSMs have been used at MIT for the better part of 15 years. In the 1980's, Lincoln Laboratory began running projects requiring laser beam pointing accuracies in the microradian range, including laser communication. In 1992, G.C. Loney of Group 71 published Project Report IRP-15 titled "High Bandwidth Steering Mirror Research". The report details the design of the High Bandwidth Steering Mirror (HBSM) built at Lincoln Laboratory to meet the acquisition, tracking and pointing (ATP) requirements of several experiments. Several prototype mirrors were built using the HBSM design as a template, including the FSM described in this document. These prototype FSMs were used in many different capacities, including in experiments studying optical compensation of thermal blooming, as the mirror used in the Laser Intersatellite Transmission Experiment (LITE), and as a mirror used in the laser communications payload of The National Reconnaissance Office's Geosynchronous Lightweight Technology Experiment (GeoLITE), launched May 1 8 th, 2001. As MarsComm was commissioned, a decision was made to use this particular FSM as the mirror slated to be in the optical path of the MIRU hardware aboard the MarsComm satellite, both because its mirror diameter was large enough to accommodate the MIRU laser (25 mm in diameter), and the mirror was available "off the shelf". The FSM had been used in other projects before and had performed well 64 enough to be used in this project. The purpose of this thesis is to document the dynamic characteristics of the FSM, and to design high bandwidth controllers for the device. 3.2 FSM Components The FSM is a mirror controllable in two axes (Azimuth and Elevation). A picture of the mirror is shown in Figure 3-1, and a exploded component view is shown in Figure 3-2. 3.2.1 Voice Coil Actuators The FSM mirror is driven by four electromagnetic voice coil actuators. The voice coils are manufactured by BEI Kimco, part # LA05A-05, with a maximum peak force of 0.7 N. The actuators are used in pairs, two to an axis in a push-pull configuration, and thus the maximum peak force on any axis will be 1.4 N. The voice coils are electrically modeled as having a resistance of 4 Q in parallel with an inductance of 25 pH. 3.2.2 KAMAN Sensors Local positioning sensors are included in the FSM chassis. The position sensors are KAMAN KD-5100 differential eddy current sensors. These sensors use small coils to drive a magnetic field into the conductive target plate. The strength of the eddy currents produced in a target plate is sensed to give position with resolution on to a nanometer scale. Two sensors are placed a fixed distance apart, and the differential position between the sensors divided by the distances between them gives the angle of deflection (valid only for small angles). The distance between the KAMAN sensors is approximately 80 mm, and assuming a detectible differential length of 80 nanometers, the KAMAN sensors have 1 microradian resolution. The output scale factor of the KAMAN sensors is approximately 1.6 pradians 65 / millivolt. The KAMAN sensors are Figure 3-1: Picture of the Fast Steering Mirror mounted on an optical table. 66 Figure 3-2: Exploded component diagram of the FSM (shown with a smaller mirror), courtesy of James Roberge. 67 mounted at 450 angles relative to the Azimuth and Elevation axes, and therefore need to be rotated before use in the feedback path. The KAMAN (pronounced KAY-MEN or KUH-MON depending on your preference) sensors are used mainly to control the mirror before going into optical feedback. 3.2.3 The Mirror The mirror on this FSM is larger than previous mirrors have been on other FSM projects at Lincoln Laboratory. The large size is necessary to accommodate the MIRU laser diameter of 25 mm. The mirror is approximately 45 mm in diameter. The mirror is made of beryllium, giving it a high stiffness to weight ratio. The mirror is coated with aluminum protected by SiO 2 . 3.2.4 Flexure Assemblies The flexure assembly provides the flexible mounting for the mirror. Their are two separate flexures in the body of the FSM. The first flexure is an axial flexure fixing the mirror to the housing assembly. This flexure provides high axial stiffness perpendicular to the surface of the mirror while providing low bending stiffness, allowing the mirror to rotate in the Azimuth and Elevation directions. This flexures is made out of T6 aluminum. The second flexure is the flexure ring. This ring, made from stainless steel (and possibly layered with other materials to provide additional damping), provides lateral support for the mirror and allows it to rotate in the Azimuth and Elevation axes as well. 3.3 KAMAN Open Loop Frequency Responses The FSM can be analyzed without any feedback control in place by using two different sensors. The KAMAN sensors are built in and provide angle measurements referenced to the mirror body. Alternatively, a quad cell gives angle measurements with respect to the mirror surface, and is used for optical tracking (see Section 2.1.5). This section 68 deals with the open loop frequency responses of the FSM using the KAMAN sensors. In a simple model, the FSM can be thought of as a mass-spring-damper system. The main mass is the mirror at the end of the flexure assembly. The flexure acts both as a spring and a very weak damper. The resulting system is a standard underdamped 2 nd order system. The frequency response of Figure 3-3 shows that between 10 Hz and 1.5 kHz, the FSM Azimuth axis behaves almost exactly like an underdamped 2 n order system, with a resonant peak at about 112 Hz. This data was gathered with the Agilent 35670A Dynamic Signal Analyzer, applying a voltage of up to 10 Vpk to the current driver and differentially amplifying the KAMAN output voltage as necessary. Data was taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz. Interesting (and slightly annoying) things start occurring after about 1.5 kHz. Several pole-zero "doublets" occur between 1.5 and 4 kHz. The doublets are pairs of complex zeros and poles. They occur when part of the FSM "decouples" from what the KAMAN sensors register. A simple mass-spring-damper system can illustrate what is occurring at these doublets. Figure 3-4 shows a simple model of the FSM near where one of these doublets occurs. Both masses are part of the FSM; however, m, represents the part of the FSM that is directly monitored by the KAMAN sensors, and m 2 represents the part of the FSM that is decoupling from the system. For example, the movements of the mirror might differ from the movements of the KAMAN target plate at higher frequencies and the two are "decoupled" from each other (and the KAMAN sensors are no longer measuring true mirror angle). The force balance equations for the model in Figure 3-4 are mizi + (b1 + b2 )±i + (ki + k 2 )X1 = b2si 2 + k2 x 2 + F m 2: 2 + b2 k2 + k 2 x 2 = b2 k1 69 + k2 x 1 (3.1) (3.2) AZ Open Loop Bode Plot, KAMAN Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] -2 (a -4 :R 0 - ... .- - - - - - - - - - -. .. .-. 0 - - ---.. - - -.- - - --.- - - -..- . .- -. - - - - - --..- -- - - -- - -- - -- -- - - - -- - - - - - - - a) 2 -6 0 -- -- -. .- -. . ..- -. .-. .- - -. . .-. -. . .- - -.-- - - - - -..-...-- - - - - - - C - -100 --- 10 3 10 2 10 - .. - - - .- . - -- --. 104 102T -100 -200 (D M -300 a) -400 -500 -- -- --- ---. --------.... -.... -- --.. -----.... .... ...... -. --- - -. --- -~I~ - - -- --.- - --.... - - - -- -.... --... --- ---. -.--.... --. --. -..-. ----. -----. -------- ----- ---- -.-- -.- --------.... -.... --..... --..... _____............. -600 10 103 102 104 Frequency [Hz] Figure 3-3: FSM Azimuth open loop frequency response, KAMAN Voltage Out Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz. 70 X1 F X2 -^v/\-f b Figure 3-4: Simple model of one axis of FSM. m, represents the part of the FSM that is directly monitored by the KAMAN sensors, and m 2 represents the decoupling mass. Taking the Laplace Transform of each equation yields X1(s) (mis 2 + bs + k) = X 2 (s) (bs + k) + F(s) (3.3) X 2 (s) (m 2 8 2 + bs + k) = X1(s) (bs + k) (3.4) Finally, rearrange to obtain the two transfer functions X1(s)/F(s) and X 2 (s)/F(s). X1(s) m 2 s2 + bs + k 2 F(s) (mim 2s + b (mi + M 2 ) s + k (mi + M 2 )) s2 X 2 (s)_ bs + k F(s) (mim 2 S2 + b (mi + m 2 ) s + k (mi + m 2 ))s 2 (3.5) (3.6) The poles and zeros of Equations 3.5 and 3.6 are found using the quadratic formula. The zeros for X1(s)/F(s) are Z1 ,2 = -b ± b2 - 4m 2 k 2M2 (3.7) (3.7 The zero of X 2 (s)/F(s) is z= 71 k (3.8) Both transfer functions have the same poles. These poles are P1,2 = -b(m + M2 ) ± (b(mi + M 2 )) 2 - 4mim 2 k(mi + M2 ) 2mim 2 (3.10) P3,4 = 0 The transfer function in Equation 3.5 provides a basic model for each "doublet" of the FSM. The state-space representation of this model is described in Appendix A. The Bode diagram of the first doublet of the Azimuth axis is shown in Figure 3-5. First FSM Azimuth Pole-Zero Doublet Pair Bode Diagram, Normalized 6 2 3. . . . .3.. ..4 ..... .. . . . .. . .. .. . .. . ...... . . 10 10 .. . .. .. . 10................ .. . . . . ... .... . .. 10.... . 3.. . .. .. . .. .. . .. 10...*..... ..... 3310 3.4 3210 10 3. . .. . . -130 -1 44 . - - - -- - --.- - - - - -- - - - -- --.- -.-.--. - --..- . - - - - -.-. -.-.-- - --.-- - -.-. -150 - -- - - - -- - - - - CO cc -1 6 0 - - 170- - - . . . . . . . .- -. . ..- - - - - - - -- - - -- -- - --................................................ -. . . . - -. -. - - - -. . . . . . -.-..-.--.-..-.--.--.-- - -.-- - - - -.--.-- .--- - . - . -.. . . . . . . . ..- - -.-- - -.--.-.-.-.-- - - -.-- - - - - - - - -.-- - - - - - - - - - - -.-.-- - -.-- -.-.-- -.-- .- - .- .- - - - - .- 1032.. . . 10 - -- - -. - - - -- - - -- - - - - -- - - --.-. 3. . .. . . . . .. . . . 3210 3.3 10 10 3.4 Frequency [Hz] Figure 3-5: Normalized Bode diagram of first "doublet" of the FSM Azimuth axis. Bode diagram is Position / Input Force. Figure 3-5 is a normalized Bode diagram of the first doublet that occurs on the 72 FSM Azimuth axis near 1.6 kHz. Equation 3.5 provides a basic description of this doublet; however, the interactions are not confined to two masses. For this reason, this doublet is modeled as X1(s) F(s) _mis2+bis+kz X, 2 +bzs () MZ k,(3.11) (mPs2 + bps + kp) s 2 Modeling each doublet in this manner allows control of each individual peak of the doublet. The parameter values used in Figure 3-5 are mz = .0001 bZ = .015 kZ = 23710 MP= .0001 bp = .0148 kp = 23880 Although the model does not exactly follow the form of Equation 3.5, Figure 3-5 still illustrates the dynamics of m, in Figure 3-4. Before the doublet occurs, both m, and m 2 are moving together with little dynamic interaction, and the transfer function rolls off with a -2 decade per decade slope. As the frequency of the input force moves toward the doublet, the magnitude hits a complex zero pair. In physical terms, m 2 is moving almost completely out of phase with mi, mi. and thus opposing the force on Moving past the complex zeros, the magnitude rises sharply to a set of complex poles. This peak represents the natural frequency of the system. m 2 is no longer directly opposing the motion of mi, but is in fact helping. Moving past this point, the frequency response continues down with a -2 decade per decade slope as if nothing happened. However, the magnitude of the continuing line has actually been pushed up slightly. This is because M2 has decoupled from the system, and the effective mass of the system has been slightly reduced. Control issues related to these doublets are discussed in Chapter 5. 73 Looking past the first few doublets, the transfer function of Figure 3-3 starts to go crazy. After about 5 kHz, the -2 decade per decade roll off disappears and the mirror stops behaving like a 2 nd order system. However, the data is unreliable past 5 kHz. As was mentioned before, a DSA was used and the KAMAN sensors were differentially amplified. The DSA used has a noise floor of about -80 dB, requiring substantial amplification of the KAMAN output voltage. This amplification introduces a lot of high frequency noise. The current driver cannot supply enough current at higher frequencies to produce enough angular motion for the KAMAN sensors to register. In order to get better high frequency information with the KAMAN sensors, the current driver would have to be upgraded to provide more current or the voice coil actuators would have to be upgraded to provide more force. Using the data in Figure 3-3 as a baseline, a parametric model was created in MATLAB. Development of the model was as follows. The first step was to provide the equation for the basic second order system describing each axis. This equation is of the form K/ (ms2 + bs + k), with Vk/m representing the natural frequency and b/2vkm representing the damping ratio of the system. K is the term used to adjust the DC gain of the system. This equation represents the main 2 nd order system describing the axis. Each doublet of the system is added by multiplying the main equation by an equation of the same form as Equation 3.11, except the two poles at the origin are removed. These two poles provided the -2 decade per decade roll off of each doublet, but this roll off is accomplished with the main 2 d order equation. In practice, both m, and m, are kept constant, and the frequency of the doublet peaks is controlled with k_ and k,. The difference between k, and k, controls if the doublet goes up or down first, and the total width of the doublet. The heights of the doublet peaks are controlled by b, and bp. The difference between b, and b, controls the relative "strength" of each half of the doublet pair, giving one peak more amplitude than the other. While each doublet was added, additional poles and zeros were added to maintain the overall slope and phase of the transfer function. The state-space representation of the parametric model for the FSM Azimuth axis is provided in Appendix B. This model relates the KAMAN output voltage to the 74 current driver input voltage. This model is a reduced order model of the FSM Azimuth axis and is valid to about 5 kHz, which is adequate for preliminary simulations. The model consists of the main 2 nd order system, 3 doublets, and 3 higher frequency poles with 1 higher frequency zero for minor slope corrections. The comparison between the model and the experimental data is shown in Figure 3-6. The model fits fairly well, with minor digression of phase after 300 Hz (about 100). AZ Open Loop Bode Plot, KAMAN Output Voltage / Driver Input Voltage, 10 - 3,000 [Hz] with Model Experimental ------Model 0 ' -20 0 -60 -__- _ ___ _--- _ ___ _ _- --- --- --- --- -- --- '' - - - - - -40 -.... . . -..--...--..--. -...... .. . -. - - -. ...... ..... I............. - - I .. . .-.-.-. T I............... -.-.-.-- ____ _ -_-_-_-_-_-_--_- _ --- QA 101 102 103 0 -50 - -- -. -. - -. - -. -.-. . .. . -. -.- .... - - - - - -.. ...- - i.. i .. ....... -100 cn -C 0- -150 -200 -250 - --.-.- --. - ---- -J-i.-. .. .... - - --- -- - - - -- - -- - - -. 101 10 2 .. - . ....-.-- - -- --- 103 Frequency [Hz] Figure 3-6: FSM Azimuth open loop KAMAN frequency response with parametric model, 10 - 3,000 Hz. The Elevation axis of the FSM is almost identical to the Azimuth axis. Data was gathered the exact same way, and the frequency response is shown in Figure 3-7. A parametric model was also created to represent the Elevation axis. The state-space 75 representation of this model is shown in Appendix C. This model is slightly simpler than the Azimuth model, and consists of the main 2nd order equation, 3 doublets and 1 higher frequency pole for minor slope correction. The comparison between this model and the experimental data is shown in Figure 3-8. EL Open Loop Bode Plot, KAMAN Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] 0 ...... .. ..... -20 -40 I. :2 -60 -80 I.... ............. ................. ............ . ... ........... .... - ............ .-- -.- - - --.-.-... i.f~..... - ------.--. - - -. -100 10210 10 - -- -100 _-- L- W-- - - L -- I-- 3104 --- -- - - -- -- - - - . ...... ..... ........ -200 -300 -400 -1- - -- -- .. 1..... . .... .. . II .]I ............... . . i. ........ -500 -600 101 I........ ...................... 10 2 103 . . . . 10 Frequency [Hz] Figure 3-7: FSM Elevation open loop frequency response, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz. Finally, a comparison between the two axes is shown in Figure 3-9. The two axes seem to meet pretty well, except for the first doublet of each axis. On the Azimuth axis, the doublet occurs near 1.6 kHz. However, the first doublet on the Elevation axis occurs at about 1.3 kHz. The reasons for this difference are unknown at the present time and warrant further study. The rest of the model seems to match fairly 76 EL Open Loop Bode Plot, KAMAN Output Voltage / Driver Input Voltage, 10 - 3,000 [Hz] with Model - 0 -- - -- -- Experimental Model - ------- -20 -0 ., - -40 I jil - -60 - - 80 101 102 103 0 -50 - - . -. -.-.- -100 - 8 -150 -C - .- -.-.--- - -200 -250 101 10 3 102 Frequency [Hz] Figure 3-8: FSM Elevation open loop KAMAN frequency response with parametric model, 10 - 3,000 Hz. 77 well out to 5 kHz. Beyond that, the data is questionable at best and a comparison would yield no interesting or reliable information. Open Loop Bode Plots, KAMAN Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] ................ . 0 - - . . - - -- - - - I..--..- -A - - -- -20 ......I. . . 3) -40 -60 - -80 . -100 ...- - ..... ... .1. ....... ......... -- .. . . . . . .. ... ...I. .... -400 -500 ~~~~~................. TirrT~ ... 1......... . . . . . ... H....................1 ......... .......... ....... ______ 1V ............ .. -600 101 104 i1 .I ..... ....... - . .-.-.-.- . 103 102 -200 C -- . .. t...... 10 -300 -- - - - - -- - .. 12 13n -100 Azimuth Elevation ---- 1... iii...L... ..... .LLW.LLIJ..... 10 3 102 . 104 Frequency [Hz] Figure 3-9: FSM Azimuth and Elevation open loop frequency response overlay, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz. 3.4 Quad Cell Open Loop Frequency Responses Characterizing the open loop frequency responses of the FSM with only its KAMAN sensors is not enough to fully describe the system nor attempt any sort of optical feedback control. In order to fully understand the FSM, open loop frequency responses using the quad cell were obtained. One might assume that the open loop frequency 78 responses should look almost identical independent of what position sensor was being used. However, analyzing the differences between the KAMAN sensor frequency responses and the quad cell frequency responses yields a great deal of information about the FSM hardware and its limitations. Open loop frequency responses were taken in much the same was as with the KAMAN frequency responses. However, unlike the KAMAN sensors, the FSM must be pointed so that the beam falls on the active region of the quad cell before taking data. The initial pointing of the FSM onto the quad cell was accomplished in one of three ways: 1. Turn on all the hardware, and position the laser beam onto the active region of the quad cell by adjusting the Laser Source or Focusing Lens. Often, after taking a small amount of data, the laser spot would move off of the active region of the quad cell, requiring realignment of the optical hardware. This is undesirable because aiming the laser spot on the active region of the quad cell in this manner could take over 5 minutes. 2. Use a summing voltage amplifier to add in a bias voltage from the Spiral Acquisition Algorithm (see Chapter 4). The bias voltage would center the laser beam on the quad cell, and allow data to be taken. Unfortunately, this often added in noise sources (the bias voltage came from a computer, and the DSA supplied the driving voltage, creating unavoidable ground loops). 3. Use a controller with an extremely low crossover frequency (< 0.5 Hz) and use the DSA as a disturbance input. This controller keeps the laser beam pointed on the quad cell for low frequencies, but has no command authority for frequencies of interest. This method was not available at the time of data collection and remains untested. In the end, method 1 worked the best, even though it was the most laborious. Also, the quad cell is much more sensitive than the KAMAN sensors at detecting angular position. For this reason, the quad cell output voltage did not need to be amplified to produce acceptable results. Moreover, the data is more reliable in the higher 79 frequencies than the KAMAN data. The experimental frequency response for the Azimuth axis with quad cell sensing is shown in Figure 3-10. As expected, the frequency response looks very similar to the frequency response with KAMAN sensors at lower frequencies. There are however a few important differences. Figure 3-11 shows both the KAMAN and quad cell frequency responses, normalized to the same DC magnitude for easy comparison. AZ Open Loop Bode Plot, QUAD Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] 60 40 I - - - .- - - - -I - - ...... *..I.........I. --- - 20 0 - - - - .............. 0 C M) -20 -40 - - -- -- -60 - ----4 . .. . .. 10 . -. ...... 102 1 10 0 ....... 1. . -100 -200 .............. . ......... . . . ..... ..... --............. . . ....... -- _-_---_-L- a-300 - -__ -1-__ _ - - - - - -- - - - 1 -- - - ................................ -400 101 lii I... - - -- - - - K.... 10 3 102 - - - - - -1- -- - 104 Frequency [Hz] Figure 3-10: FSM Azimuth open loop frequency response, quad cell Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz. Upon initial inspection, several key differences stand out between the KAMAN sensor frequency response and the quad cell frequency response. First, the first doublet of the quad cell transfer function seems to be missing! Figure 3-12 is a zoomed 80 AZ Open Loop Bode Plot, Sensor Output Voltage / Driver Input Voltage Normalized, 10 - 20,000 [Hz] 2U 0 ca F- -20 - - -40 --.- J- .- -. ...... -- 1.. I I -- . . ......... I 111 -80 - .- -- - -- - - -- - - KAMAN -------- Quad Cell - -$--- --s-- ----1--- ......... ... --- -60 ------ -- -.- - ...- - - - ... - - .. . .. . . -- -. - -- -- - -100 -- .............. - -120L 102 0 14 CD 104 103 C -'-- 4--- ---- --- --TIT ---F-}--I- 0 -100 .. .. . [. .. . .. . . -. i -1-. - - -.--. .- -. . .-. .-. .-. -. - - . -.. .- . .- - - ..-.-- -400 10 1 ...... .......... ...... L. .. -500 -600 - ----| - - ....... ... *I.....i.... .. .. ~ ..... .. ...i~ .. .... -200 -300 ...... ...... .i i. _ _ _ _ 1 .1 102 .. .. . 103 . . .. - .. - .... .. . . . H . .. . . . . . .I 104 Frequency [Hz] Figure 3-11: Normalized comparison of the FSM Azimuth KAMAN open loop frequency response with the quad cell open loop frequency response, 10 - 20,000 Hz. 81 .. . . . . .I. AZ Open Loop Bode Plot, Sensor Output Voltage / Driver Input Voltage Normalized, 1.5 - 3 [kHz] -45 KAMAN ------ Quad Cell -55--....--.-.--- _0 .-. -.-. --.--.-.-.--- .-. - ----.--. -65 -70 10 103.4 10 ................................................... -260 1032 0 10.4 Frequency [Hz] Figure 3-12: Normalized comparison of the FSM Azimuth KAMAN open loop frequency response with the quad cell open loop frequency response, 1.5 - 3 kHz. 82 version of Figure 3-11 showing the detail around the first few doublets. This "missing" doublet is helpful from a control point of view (a nice -2 decade per decade roll off would be preferable the entire way down), and this also gives valuable information about the FSM. Because the first doublet is missing (or at the very least barely noticeable), it is reasonable to assume that the first doublet of the KAMAN transfer function has to do with some part of the KAMAN target plate assembly. This is feasible because the quad cell measures actual mirror angle, where the KAMAN sensors measure the angle of the KAMAN target plate / mirror / flexure assembly. The next two doublets are at least similar in frequency position, but the relative amplitudes between the two sensors differ significantly. This too gives a little more information on the possible location of these modes, but further investigation is beyond the scope of this thesis. Continuing to examine Figure 3-11, it is also apparent that the general -2 slope of the quad cell transfer function continues throughout the frequency range, whereas the KAMAN transfer function seems to "level off" after about 5 kHz. This suggests that the earlier hypothesis of unreliable KAMAN data past 5 kHz is correct. The quad cell is much more sensitive than the KAMAN sensors (difference in DC magnitude is about 60 dB). This means that for the given test setup, with the FSM rolling off at -40 dB a decade, the quad cell can gather reliable data about one and a half decades past the KAMAN sensors. Therefore, this transfer function is assumed accurate all the way out to 20 kHz. Focusing on the quad cell transfer function of Figure 3-10 past 5 kHz, even more dramatic things start to happen. Several modes appear to excite and decouple from the system, leading to a series of dramatic peaks past 10 kHz. Most of these resonances can be ignored, but some cannot (see Section 5.2.3 for further analysis). Finally, in order to effectively simulate the FSM Azimuth axis in MATLAB, a parametric model must be built. The building of this model follows the same procedure outlined in Section 3.3, except the number of doublets is much higher. In all, the parametric model for the Azimuth axis includes the main 2 nd order equation, 19 doublets, and 4 higher frequency poles with 2 higher frequency zeros to control overall slope and 83 phase. This model overlays the experimental data in Figure 3-13. AZ Open Loop Bode Plot, QUAD Output Voltage / Driver Input Voltage 10 - 20,000 [Hz] with Model 60 - -- ---- -----------. -...-- -...-- .--...-... -. - --- --- --- 40 Exp e rim enta l Model -% %--.... --------- -.---.. --.-.------------ -.-.... -- --------..... -- -------- 20 C ....... ... 0 I cc -20 MU -40 -60 I ........ ......... ............ ~~~~ .1 .___ ..... 10 -- - - ~ Ii.. . ....... i II i~ 10 210 ~ ~ -~ ~~- 1 .. .. j1~ %% i 3104 ~~~ - - - - - --- - - - - -. - - - ---- 0 -100 ............ .. ................ ... ............ -200 CD Cu ~....... ........ ................ .. .......... a -300 ........ .. ...... . . .... . . ..... -400 10 1 -- -.-.- - ...--- -.-. ----. -- --- - ---. -. ... - -- - - --104 103 10 2 -- Frequency [Hz] Figure 3-13: FSM Azimuth open loop quad cell frequency response with parametric model, 10 - 20,000 Hz. The state-space representation of this model is documented in Appendix D. This model can be used to simulate the FSM Azimuth axis in MATLAB; however, a reduced order model would work in the frequencies of interest. As before with the KAMAN responses, the quad cell frequency responses of the Azimuth and Elevation axes are virtually identical to each other. All of the Elevation counterpart figures are shown in Figures 3-14 through 3-17. Also as before, a statespace model was created to represent the Elevation axis in MATLAB and is presented in Appendix E. In all, this parametric model includes the main 84 2 d order equation, 21 doublets, and 4 higher frequency poles with 2 higher frequency zeros to control overall slope and phase. EL Open Loop Bode Plot, QUAD Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] - 60 40 20 R C - --- -- ......'.. ... ........ - --- -- - -- . .......... -- - - -40 - - ........... . -60 I .-- - - . *. - -I . - - -. -----................-..... -11- ---.--- 0 -20 - - -- - -1 --- -.-......... - -- ------ -- ---..........----........... -I . -- ..... --s 44 - - 1- -- -oI 1 0110 210 3 0 I . .... . ......I... -100 .. .. . .. .. -0 -200 -- Cn -- -300 -- - I -400 10 1 _-I I LL - - - - I I llili .. ......... - - - L i i 111 L L I. .. .. - il i 1111 102 103 - i 11 . -t . - -11 11 - -JII 104 Frequency [Hz] Figure 3-14: FSM Elevation open loop frequency response, quad cell Voltage Out / Driver Voltage In, 10 - 20,000 Hz. Data taken with a resolution of 1600 points / kHz between 10 Hz and 12 kHz, and 1600 points between 12 and 20 kHz. Figure 3-18 shows the comparison between the Azimuth and Elevation axes. The plots are virtually identical before 5 kHz except for a small gain shift (probably a difference in the current drivers or voice coil actuators) and small shifts in frequency of the doublets (probably small differences in manufacturing and assembly of the axes). After 5 kHz the only differences are very small and will not be considered in the application of the controller. For all intents and purposes, the axes can be thought of as identical. Most of the original controller design in Chapter 5 focuses on 85 EL Open Loop Bode Plot, QUAD Output Voltage / Driver Input Voltage 10 - 20,000 [Hz] with Model Experimental I 60 2>1~~~~ 40 -..-..--.. - 20 C I - --------- 0 - -.--..- -- Experimental--- -- Model 1 --- .. . . . . . . . . . . . . . . . . . . . . . . . . ... I. .. . .I. .. . -- - -- -- ~ 20 I I -40 . I...............- -- -60 - - - -. - -8 1021 10~ 1 0 -10 0 ........ --. -20 CD, Co -30 0 ..... -40 0 I... -- -'- - -..-.... -.l..--1 -. -------------... -..---.J...---0--------.... --.. . [. ... .. .. .... .. ... .1. .. ...... 101 I.... ....... ........... .......... 103 10 2 104 Frequency [Hz] Figure 3-15: FSM Elevation open loop quad cell frequency response with parametric model, 10 - 20,000 Hz. 86 EL Open Loop Bode Plot, Sensor Output Voltage / Driver Input Voltage Normalized, 10 - 20,000 [Hz] 2n A -i - 0- -- -200) - -40-60- CD cc - -. -80-100- I- - - - -I - - -I -- - - K.-.-.- -- ----.----- -I. ii ----... - KAMAN -------- Quad Cell - -- I. - - - -- I - -- - - -.. ---.. -.-.--. - -- I -- - .. ---. ---.- .....Ii - - - -120- 0 104 103 102 10 [. [. ... . . . . . .. ... ......... .. .' i.[1 ...... ........ . -100 .. . . .. . . . . .. ..... -200 ....... .... . CD -300 WL co> -400 -500 ___I .. I. ijjjj. ... .1.. .. ........ ..... I .. .i jj___ .1 ...1 ... -600 -700 1 10 10 3 102 104 Frequency [Hz] Figure 3-16: Normalized comparison of the FSM Elevation KAMAN open loop frequency response with quad cell open loop frequency response, 10 - 20,000 Hz. 87 EL Open Loop Bode Plot, Sensor Output Voltage / Driver Input Voltage Normalized, 1.2 - 3 [kHz] -40 - - - -- - - -- --45 - -- - -- - - -- -- - -- -..--..--. - -..--. - -~-- KAMAN -- Quad Ce ll .. -50 R) (D -55 -60 -65 -70 10 .1 103.4 0 .3 0 .2 -180 -200 .. -.. .-.-.. .. . -.. .. . . - -. -.- .-. -. -. ..- --. . . - -.- - - .-.- -.- -.--.-. - - - -- - .. A -. .. .---..-- CD Q) -220 - - .. .- .. - - - -. - - - - - - - - Wo - .- -.. - --. - -- - .-.-.- .-.- - .- - . - - - - -.- - .-- - - .-. - - -.- - -- -240 - - -- -- - - - - -- - - - -- - - -- - - - -- - - - - - - - - - - - -- - - -- - - - - - - -- - --. - - --. -.-.- -- - - - - -- - - . - - - - - - - - -- .... -260 110 103 32 103.4 Frequency [Hz] Figure 3-17: Normalized comparison of the FSM Elevation KAMAN open loop frequency response with quad cell open loop frequency response, 1.2 - 3 kHz 88 controlling the Azimuth axis only, although the controller can be applied directly to the Elevation as well. Open Loop Bode Plot, QUAD Output Voltage / Driver Input Voltage, 10 - 20,000 [Hz] ii 60 40 Azimuth Elevation -- i I I - CO 20 R CD -v I I 0 o> I I -20 -40 I I - -60 ! I 111 10 103 102 10 0 -100 -8 -200 - -300 - -I 1 : : 1 -400 1 101 1 i iI i i i ' I L I I 10 3 102 i | .. . 10 4 Frequency [Hz] Figure 3-18: FSM Azimuth and Elevation Open Loop Frequency Response Overlay, KAMAN Voltage Out / Driver Voltage In, 10 - 20,000 Hz There are several reasons for taking such extremely fine resolution data of the FSM. The first is to examine the differences between the KAMAN and quad cell sensor outputs for the same hardware. Examining these differences provides clues on mode locations that are not apparent looking at a low resolution frequency response (even at 1600 points / kHz, some doublets only have 20 data points describing them). Moreover, examining the differences provide clues on mode locations (modes that occur in KAMAN sensing and not with the quad cell point to modes in the KAMAN 89 target plate). Developing a high order quad cell model, while time consuming, allows very accurate simulation of the hardware with an infinite number of controllers. Designing in MATLAB with code is much faster than implementing each controller and taking experimental frequency responses. By using the high order model, the design of the compensator in Chapter 5 can be done where it should be, on paper, and then experimentally verified. 90 Chapter 4 Spiral Acquisition This chapter investigates how xPC and Simulink are used to find the active area of the quad cell by steering the FSM while the feedback loop is closed using the KAMAN sensors (known as closed loop KAMAN mode). Section 4.1 discusses the reasons for needing this capability. Section 4.2 presents the basic algorithm requirements to complete the acquisition process. Section 4.3 lists and describes the different ways of steering the FSM to point the laser beam onto the quad cell. Finally, Section 4.4 details the algorithm that allows the seamless transition from closed loop KAMAN mode to optical tracking mode once the FSM has steered the laser beam onto the quad cell. 4.1 Motivation The motivation for choosing an acquisition algorithm is to provide quick method for initiating optical feedback mode. The FSM cannot enter optical tracking mode until the laser spot is pointed onto the active region of the quad cell. In the most basic case, without a spiral acquisition algorithm, one would have to type in KAMAN position commands at random trying to point the laser beam onto the quad cell. It is also possible to use the mounting hardware to point the laser beam onto the quad cell, but this is extremely time consuming and not available during spaceflight. Furthermore, the KAMAN sensors are known to drift. Depending on the feedback configurations, a 91 1 mV change in the KAMAN sensor output can lead to a 1 V change in the quad cell output. With the quad cell having an active region of about ±10 V (when using C/R board and the boxed quad cell), the beam can move from dead center to completely off the quad cell with a KAMAN drift of only 5 mV, requiring constant correction. The main reason for using spiral acquisition is that by doing so, the resulting system is robust and self-correcting. By using an algorithm to find the quad cell, it is insured that if for any reason the quad cell is lost, it can be found again relatively quickly. This feature is incredibly important for space-based systems as there is no hardware adjustment possible in space. Implementing a robust, programmable algorithm to find the quad cell and enter optical tracking mode is essential to the success of any laser-based communications system. 4.2 Basic Algorithm Requirements On the most basic level, the spiral algorithm must be able to do each of the following things: 1. Command the FSM in a controlled two dimensional pattern. 2. Take in sensor voltages of the quad cell. 3. Apply basic math to the quad cell sensor inputs to determine if the laser beam is in the linear region of the quad cell, preferably close to the center. 4. If the beam is on the quad cell, smoothly switch over to quad cell feedback mode. The first two items are easily handled by the A/D and D/A PMC-ADADIO blocks. These blocks allow communication between Simulink and the analog world. All that it left is to manipulate those input and output voltages to achieve the second two desired functions. These functions can be accomplished by using Stateflow. 92 Stateflow Implementation with xPC 4.2.1 Stateflow allows the creation of a Finite State Machine in Simulink. A Finite State Machine is any device with a collection of states that are traversed in a specific order dependent on the values of certain parameters. A basic example Stateflow diagram is shown in Figure 4-1. (sample 7- {driving = 1} \ [gas = full] {driving = 1} drivingcar entry: distance = 0; during: distance = dist ance + 5; a gas = gas - 1; exit: [gas = empty] {driving = 0} [tired] {driving gettinggas entry: money = money - 2.49; gas = gas + 1; during: money = money - 2.49; gas = gas + 1; exit: Q;} walking entry: [money 0] distance = 0; [money >= 0 &&(gas) >=0 &&(!tired)] {driving = 1;} during: distance = distance + .1; exit: r/ Figure 4-1: Example of a Stateflow diagram. The three states in this Stateflow diagram are driving-car,getting gas and walking. The dot with the arrow signifies the starting point of the diagram, which is driving-car in this case. The variables in this diagram are distance, gas, full, empty, money, tired, and driving. Assume that all variables are initialized (they usually would be initialized 'For more information about Stateflow including documentation and examples, see http: //www. mathworks. com/access/helpdesk/help/toolbox/statef low/. 93 in a different state. At startup, driving is set to 1 and the driving-carstate is entered, setting distance to 0. One of three things happens at the next state transition. If tired is non zero, the walking state is entered, and both driving and distance are set to zero. If gas = empty, then the getting-gas state is entered, setting driving to 0, decreasing money by 2.49 and increasing gas by 1. Or, if neither of those conditions was met, then it remains in the driving.car state, and distance is increased by 5 and gas is decreased by 1. Then, the process repeats. If the getting-gas state is the current state, one of 3 things happens on the next transition. If money = 0, the state changes to walking and distance is set to 0. If gas = full, then driving is set to 1, the drivingcar state is entered and distance is set to 0. Otherwise, money decreases by 2.49, gas increments by 1 and the state remains getting-gas. If walking is the current state, one of 2 things can occur. If money 0, gas > 0 and tired = 0 (!tired is the logical NOT of tired), then driving is set to 1, the driving-car state is entered and distance is set to 0. Otherwise, distance is increased by .1 and the state remains walking. Any of these parameters could be outputted to the next level of Simulink and used as inputs to other sections or as outputs via D/A channels on the PMC-ADADIO cards. This is the basic concept behind using a Stateflow algorithm. It's easy to take the 3 quad cell inputs, perform some math on them and change states if they satisfy the conditions set in the acquisition loop (see Section 4.4) It's also easy to output variables to represent the commands to each of the 4 feedback loops (Azimuth and Elevation for both KAMAN and quad cell Feedback). The Stateflow implementation of each steering algorithm is described in Section 4.3. 4.3 Steering The Beam The first step in the acquisition algorithm is steering the beam path in a pattern. There are many different ways to steer the FSM in a patterned search. This section details the three different methods used and lists out the benefits and complications 94 with using each of them. 4.3.1 Square Grid The first method utilized is the simplest form of searching: a square grid of evenly spaced search points. The grid is searched in a spiral, working from the middle out to the edges. Square Spiral Algorithm The Stateflow diagram for this algorithm is shown in Figures 4-2 and 4-3. Figure 4-2 shows the blocks responsible for steering the beam and Figure 4-3 shows the block responsible for the acquisition mode of the algorithm (see Section 4.4). Stateflow input, output and local variables used in Figures 4-2 and 4-3 are listed and described in Tables 4.1, 4.2 and 4.3 respectively. 95 i-1/(2*pitch))... leg 1 1 -y=la [edgeay_i>=delay_max)[)dloieelymx)..entry { \1 [delay_i>=delay-max)... &&syreset=O) i =0;) delay-/ = 0; =reset)... dd ieg =delay [(y-out>=spiral &&(xout>=-count-max+ 1/(2*pitch))... &&(!pause)... &(sreset). &&(spiral_i<count max+1/pitch)] leg2 )delayi = 0;...it reseti = reset-max; first= 1;y -C [delayi> =delay max) = 0;) =delayi leg2a entry: delay-i = 0; dgegb delayi =detayii+ 1; exitx enu egb) urng = xout + 1/pitch; en(leg1reset)[first==1] {first=0;} pase [(reset i >=reset max)] leg1reset /leg1b entry: entry: yout =yout + 1 /pitch; .urng: spreset =0; yout = 0; 0 during: reset_ = reseti + 1; exit: t) [(pn pue=[seety spus0 d[re=et; [(delayi>=delaymax). &&(spreset). &&(!first)] {delay-i = reset i [rause]pue puentry spdxeuee A[[esse==] 0;.. =. i= 0;) rese lol paus [(y_out>=count_max-1/(2pitch))... &&(x_out<-countmax+1/(2*pitch))--&&(!pause)) 0 at end==Ol (count = 0;... sp reset = 1;... spirali =1/pitch;) {stop 1 /] spIral(i = 1/pitch; acquired=0; cage enable out=5.26; el not ievert out=5.26; [(xout >= spirali-1/(2*pitch))... &&(!pause)... &&(spiraljicount.max+1/pitch) [(x_out <= -spiral-i+1/(2*pitch))... &&(!pause). -max+1/pitch)] &&(spiral {spiral_i= spirao/i + 1/pitch;) i<count 'pause use4=O entry eg4 C12 delayi = 0; = delayji + 1; =1ayi [delay_i>=delay-maxj (delayj = 0;) leg4a entry: delayji = 0; during: delay_i = delay i+ 1; [delayi>=day-max] = {delay i 0;) tleg3b ._enleg3b) exit: rs leg4b e(leg4b) entry: x_out = x_out - 1 /pitch; during: - 1 /pitch; =x ex out out [ ese]&&(pase) atmax+1pitch)]s~ may/pitch). i>=couet =[(spiral oel m x+1/pitch).. entry: yout = yout - 1/pitch; during: y out = y-out exit: 1/pitch; [(sqrt(quad az in^2+quad el in^2)<=dist threshold).. &&(optsum _in>=opt sum_threshold)] {track az_out = -1*quadaz in; trackel_out = quad el in; track az -1*quad az in; track orig = quad elin; steps = 1;) el orig [steps>=21] {trackazout = 0; track el out = 0; acquired=1;) [(sqrt(quadaz_in^2+quadelin^2)<=dist threshold)... &&(opt sumin>=opt sum threshold)] (track_az_out = -1 *quad az in; track elout = quadelin; =-1quadaz in; track el oig =quadelin; steps = 1;) trackazorig 0 [reset] (a quire1 0 {cage enable out=0; out=5.26;) azin^2+quadel_in^2)<=distthreshold)... &&(optsum in>=optsumthreshold) (track az out = -1 *quad az in; trackel_out = quadel_in; track azorig = *quad az in; trackel_orig quad elin; steps = 1;} [(sqrt(quad Iacquirela entry: delayi during: delay_i = delay_ i+ 1; exit: i= 0; az_orig [delay_i>=delay max] {delay_i=0;) ~ acquirelb entry: en(acquirelb) track_az_out = track-az out-track_az orig/20; track -el-out = out-track_el_odg/20; track-el_ steps = steps + 1; exit: 0 in^2+quadel_in^2)<=dist threshold).. &&(opsum_in>=optsum threshold) {track_az_out = -1*quad az in; track el out = quad elin; track =-1 *quad az in: track-el-orig quad elin; steps = 1;) [(sqrt(quadaz el noi invert 2 Name Description step-in Trigger port. Stateflow advances to the next state on rising edge. pause When set to 1, pauses the spiral algorithm. Resumes when set to 0. count-max Spiral stops when either Ixoutl or ly-out reaches this value. delay-max Time (in cycles) before evaluating to next state. reseLmax Time (in cycles) after reset or finishing to start algorithm over. pitch Controls step size. The difference between subsequent commanded voltages x.out and y-out is pitch-. reset Resets algorithm when 1. Initializes and starts algorithm when set back to 0. stop-at-end When 1, will not repeat spiral if acquisition did not occur. When 0, repeats until acquisition occurs. quadcazin Azimuth input from the quad cell. Used to determine distance from center of quad cell. quad-el-in Elevation input from the quad cell. Used to determine distance from center of quad cell. opt-sum-in Optical Sum input from the quad cell. Used to determine if on active region quad cell. dist-threshold Sets how close the beam must be to the origin of the quad cell before entering acquisition mode. If dist-threshold > Vquad-azin2 + quad-el-in2 , algorithm switches to acquisition mode (provided that opt-sum-threshold < opt.sum-in). opt-sum-threshold Sets how high the Optical Sum input from the quad cell must be before entering acquisition mode. If opt-sum-threshold < opt-sum-in, algorithm switches to acquisition mode (provided that dist-threshold> Vquad..az-in2 + quad-el-in2). Table 4.1: Table of Stateflow input variables used in the square spiral algorithm. 98 Name Description zout Command to KAMAN Azimuth axis. y-out Command to KAMAN Elevation axis. track-az-out Command to quad cell Azimuth axis. track.eLout Command to quad cell Elevation axis. cage-enable-out Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM when using the original analog controller. eLnoLinvert Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM when using the original analog controller. acquired Is 1 if the algorithm found the quad cell and entered acquisition mode, 0 otherwise. sp-done Is 1 if algorithm is in finished state, 0 otherwise. Table 4.2: Table of Stateflow output variables used in the square spiral algorithm. 99 Name Description delay-i Counter for delay-max. first reset-i Is 1 if coming out of reset1 state, otherwise 0. Used to avoid waiting reset-delay before starting spiral. Counter for reset-max. sp-reset Set to 1 when algorithm is to wait reset-delay (if first = 0). Is set to 0 only in legireset. spiraLi Counter for allowable x.out and y.out values. Output changes directions when x-out or y-out is greater than IspiraLi- pitch-'/21. Is incremented by pitch-' after exiting leg4. Spiral algorithm finishes without entering acquisition mode when spiraLi> countmax+ pitch-1 . steps Counter used for bumpless transfer. track.azorig Stores original quad cell Azimuth command used when switching to quad cell tracking mode. Used for bumpless transfer. track.az-orig Stores original quad cell Elevation command used when switching to quad cell tracking mode. Used for bumpless transfer. Table 4.3: Table of Stateflow local variables used in the square spiral algorithm. Figure 4-2 shows the relevant Stateflow block diagram controlling the actual steering of the beam. This main steering code was originally written by Jamie Burnside and modified for use in xPC with the analog controller. The output commands controlling the position of the FSM always move in one of four directions: up, right, down, or left. The Stateflow states legi, leg2, leg3, and leg4 in Figure 4-2 each handle moving the commands in each direction: legi only moves the command output y-out position up, leg2 moves the x-out position up (thus moving right), leg3 moves down and leg4 moves left. The algorithm itself is very simple. For illustration purposes, define pitch = 2, count-max = 3. The Stateflow diagram initializes in the reseti state, then moves to legi. If delay-max has a positive value, the algorithm stays in legla for delay-max steps, then evaluates leg1b (this behavior occurs in all states and allows control over the speed of the spiral, but will be ignored for the rest of this section). The first decision is now made, as y.out has now been increased one step to 100 a value of .5 V. Moving to the next state occurs when x-out OR y-out > |spiraLi- pitch' /2| The transition does occur because IspiraLi - pitch- 1/2 (4.1) is .25 V in this example. The algorithm moves to leg2. In this state, x.out is increased until it passes .25 V. It does this in one step and reaches .5 V. After this, the state changes again to leg3. leg3 decreases the value of y.out in .5 V increments until its absolute value passes .25 V. This occurs after 2 steps, stopping with y.out = -. 5 V. Finally, leg4 is entered, and the same process occurs, with xout decreasing to -.5 V after 2 steps. The cycle is completed with a transition back to legi. However, the counter spiral.i is incremented by pitch-', so the commands will increment 2 additional times in each state on the next rotation. This means that legi and leg2 will increment 3 times, and leg3 and leg4 will increment 4 times before spiraLi is incremented again. This process continues, producing an ever increasing spiral, as shown in Figure 4-4 with pitch = 2 and countmax = 3. The spiral will leave these steering states when one of two conditions are met: either the quad cell is found and the algorithm enters acquisition mode (see Section 4.4) or spiraLi > count-max + pitch'. If this occurs, the algorithm has not found the quad cell and resets itself. If stop.a..-end = 1, the algorithm enters the finished state and is dormant until reset. If stop-aLend = 0, the algorithm enters legi to start another spiral. The first state visited is legireset, where the x-out and y-out values are reset and the algorithm stays for reset-max cycles. Then, the entire process starts again. xPC Implementation For this steering algorithm to be useful, it must be integrated into the Simulink model running on the xPC Target machine. Figure 4-5 shows the overall block diagram of this implementation with appropriate A/D, D/A and Digital I/O blocks. This implementation is the same for all three spiral algorithms. Figure 4-6 shows the 101 Steps in Square Spiral Algorithm, pitch = 2 4 3F x-- 2- 10 X 10 -M X 10 X X -IX X 1IF M ic X .0 10 4 0 14 10 10 01 10 'x---: X :: 0 X .0 -21- 14 10 N 0 10x - - .0 - -31 -41L -4 : -3 -2 0 -1 1 2 3 4 x_out [V] Figure 4-4: X-Y plot of the steering path of the square spiral algorithm with pitch = 2 and count-max = 3. 102 model contained in the main 'Spiral Locator' block. PMC-ADADIO General Stds DA Update E ADADIO D/A Update " E Spiral Off Spiral Off AZ Track 1 AZ QUAD Command EL Track 1 EL QUAD Command b 2 AZ Cage 1AZ KAMAN Command P 3 EL Cage i EL KAM~AN Comn AZ Bias In AZ Bias EL Bias In PMC-ADADIO General Stds DA Write E EL Bias AZ Track Bias In AZ Bias T EL Track Bias In E EL Bias T PMC-ADADIO General Stds AD Start -C-+ Cage Enable ADADIO A/D Start Cage Enable In 4 EL Not Invert In E ADADIO D/A Write EL Not Invert -0 E AZ Quad in 1 QUAD AZ 2 EL Quad in QUAD EL No PMC-ADADIO General Stds AD Read 3 QUAD OPT SUM 10 Cage Enable PMC-ADADIO General Stds Digital Output EL Not Invert -- Optical Sum In EgL Not Invert_* 2 ADADIO A/D Read Spiral Locater ADADIO Digital Output Figure 4-5: Simulink model of the top level xPC implementation for all spiral algorithms. Figures 4-5 and 4-6 show that for this algorithm to work, it must take in 3 analog signals (the quad cell Azimuth, Elevation and Optical Sum voltages), 8 different parameter values besides the values listed in Tables 4.1, 4.2 and 4.3, and it must output 4 analog signals (command voltages to each of the 4 FSM feedback loops) and 2 digital outputs (controlling which feedback loop to use for each axis). The 103 E- Command On Pulse GeneratorI p se Spiral Off x -C- ou count max - 2 AZ Bias In AZ Cage Commmand Switch EL Bias In Spiral Switch EL Spiral Size -C- - Spiral Delay reset max 10 Reset Delay -C- -- age y-out delaymax - AZ track-az-out 5 k pitch ~EL Track AZ Track Bias In AZ Track Commmand Switch In EL Track Commmand Switch Resolution -C-. trackelout reset Spiral Reset EL Track Bias stopat end cage enable Spiral Stop out gD- Cage Enable tn Swchble Cage Enable Switch EL Not Invert In EL Not Invert Switch quadc_az_in AZ Quad In elnotinvertout quad el_in EL Quad In optsumin Optical Sum Threshold Spiral Acquired Spiral Acquired Terminator Spiral Finished Spiral Finished Terminator dist-threshold Distance Threshold LZ-~ Invert Not EL acquirec Optical Sum In -C- I spdon o sum-threshold Spiral Stateflow Figure 4-6: X-Y plot of the steering path using the CLV spiral algorithm, 104 parameters in Figures 4-5 and 4-6 shown with a '-C-' in them are all parameters that can be controlled and changed in real time on the xPC Host Machine. Figure 4-7 shows the GUI used with the square spiral algorithm. The orange 'Spiral Locater' box controls the square spiral algorithm. The associations between parameter names in Figure 4-7 and the parameters in Figures 4-5 and 4-6 are fairly self evident and a detailed description will not be given. However, there are a few things of note. The FSM 'Zero Bias' commands are added to the 'Command Cage' commands to make up the 'Bias' blocks of Figure 4-5. The 'Command Track' boxes link directly to the 'Bias T' parameters of Figure 4-5. The 'Max Distance' box links to the 'Distance Threshold' box of Figure 4-6. Looking back at Figure 4-6, there is a pulse generator controlling the Stateflow block. This generator has a controllable frequency, so the intervals between state transitions can be controlled. The frequency of the generator was usually left at 100 [Hz], meaning that the states would transition 100 times a second and search 100 steering points for the quad cell. The 'Spiralize' button controls the initiation of the square spiral algorithm. The code for this button press is shown in Appendix G. There are only two parameters available in Figure 4-7 that directly control the steering pattern: 'Spiral Size' and 'Resolution'. Changing the 'Spiral Size' parameter only affects the maximum voltage commanded by the square spiral algorithm. The grid pattern is unchanged. Changing the 'Resolution' parameter doesn't affect the maximum voltage commanded, but does change the grid pattern. Increasing the 'Resolution' parameter leads to a much denser grid with more complete revolutions to reach the maximum command voltage. The effects of changing these parameters are shown in Figures 4-8 and 4-9 respectively. Why Not Use The Square Spiral? The square spiral algorithm is attractive because of its simplicity. The grid pattern is very predictable and the steering pattern is the perfect search pattern. Unfortunately, there is a reason not to use it. The steering path consists of nothing but straight lines and 900 turns. This means that there are very high accelerations at the corners of 105 Figure 4-7: MATLAB graphical user interface used to control square spiral algorithm. 106 Changing 'Spiral Size' Parameter in Square Spiral Algorithm Size = 3 --------- Spiral Size = 5 ~ -4-Spiral 6F --------0 -------0 -------0 --------a--------0 --------0 --------a --------a ------- 4F r----------- --- E E 2F 0 0 C 0F 0 C z -2 P - 4 4 - --- 4-X- - -4F --------0 ------- ------ ------ ------ ------ ----------------------- - ------- -6 -6 -4 -2 0 2 4 KAMAN Azimuth Position Command [V] 6 Figure 4-8: X-Y plot of steering path showing the effect of changing the 'Spiral Size' value in the square spiral algorithm. 107 Changing 'Spiral Resolution' Parameter in Square Spiral Algorithm 4 Spiral Resolution = 1 Spiral Resolution = 3 -w3- 21" C E E 0 0 Co a a a 1 4 -- ---- 0 CD 0 ---- 4 f ------------------ t 0[= 0 *a a) .1 I zJ 4 a- $ Z --------------- - 4 -2 -3 -4' -4 -3 1 2 -1 0 -2 Command KAMAN Azimuth Position [V] 3 4 Figure 4-9: X-Y plot of steering path showing the effect of changing the 'Spiral Resolution' value in the square spiral algorithm. 108 the pattern, with one axis stopping completely and the other starting instantly. This can lead to "rounding" at the corners when the FSM cannot accelerate fast enough with the commands. For this reason, a true spiral algorithm was chosen to eliminate these sudden accelerations. 4.3.2 Constant Angular Velocity Spiral Avoiding the sudden accelerations imparted on the FSM when using the square spiral algorithm is easily avoidable by using a steering pattern with no straight lines and no corners. The easiest way to implement a steering pattern with those specifications is to use a constant angular velocity (CAV) spiral. This type of spiral is best thought of in polar coordinates. Each step in the pattern of a constant angular velocity spiral will have the same change in angle and the same increase in radius. Thus, implementing the algorithm is as easy as calculating these two values and converting back into cartesian commands. CAV Spiral Algorithm The Stateflow representation of this algorithm is shown in Figure 4-10. Stateflow input, output and local variables used in Figure 4-10 are listed and described in Tables 4.4, 4.5 and 4.6 respectively. 109 legi en(leg1reset)[first==1] {first=0;} [(delay_i>=delay_max).- &&(sp_reset).-.&&(first)] {delay_i = 0;... reset-i = reset-max first= 1;) Ocr [(reset leg&mreset Cn legla entry: sptreseto= 0; 0; cp ra z0;og y-out = el0;o x out dUsring: reset i = reset i + 1; exit: -{delay_i i entry: delay_i = 0; during: delayi = delayi + 1; exit: [pause] [(dela y_i>=delay_max)... &&(sp _reset==O)] delay i =0;} pausel [pause==0] [reset] en(leg1b) resetmax)) my_out delduring: &&(sp_reset)... &&(!first)] = 0;... reset-i = 0;} N leg1b [reset==0] [reset reset1 entry: y out=0; x out=0; ramp = 0; first=1; sp done=O; sp reset=1; acquired=O; cage enableout=5.26; ei not - inv ert out=5.26; entry: ramp ramp +freq * maxradius / pitch / 10000; xout =AZ Sine * ramp; =EL_ Si ne ramp; [stopatend==0] exit: {spreset = 1;) [reset] track-el_orig steps = 1;} C) C+ Y-out entry: spjdone=1; b [(sqrt(quadaz-inA2+quad-elinA2)<=distthreshold)... &&(opt sum in>opt sum threshold)... &&(spiralmode==1) {acquired=1;} - delay_i = delay_i + 1; exit: [steps>=21] {track-az -out =0; track-el-out = 0; acquired=1;} [delayi>=delaymax] (delay_=0;) i = 0; acquirelb entry: track az ouut = trackazout-trackazorig/20; track-el-ou t= trackelout-track_el_orig/20; steps = stepps + 1; exit: en(acquirei b) Ojfinished =quad-el_in; acquire1 during: y-out =0;} {cage enable out=; el not invert ~out=5.26;} acquire l entry: delay Cl [(sqrt(xoutA2+y out^2)>=max radius)... &&(!pause) [(sqrt(quad-az-in^A2+quad_el_in^A2)<=d ist-thres hold)... &&(opt_sum_in>=opt_sum_threshold)... &&(spiral_mode==2)] {track-az_out = -1*quad_az-in; track-el_out = quad_el_in; track-az-orig =-1*quad-az-in; 90 j) [reset] Name Description pause When set to 1, pauses the spiral algorithm. Resumes when set to 0. max-radius Maximum radius of the commanded spiral. freq reset.max Frequency of spiral rotation. Time (in cycles) to wait before restarting algorithm. pitch Number of complete revolution per full spiral. reset Resets algorithm when 1. Restarts when switched back to 0. stop-at-end When 1, will not repeat spiral if acquisition did not occur. When 0, repeats until acquisition occurs. quad.az.in Azimuth input from the quad cell. Used to determine distance from center of quad cell. quadceLin Elevation input from the quad cell. Used to determine distance from center of quad cell. opt-sum.in Optical Sum input from the quad cell. Used to determine if on active region quad cell. dist.threshold Sets how close the beam must be to the origin of the quad cell before entering acquisition mode. If dist-threshold> V quad-azin2 + quad-eLi 2 , algorithm switches to acquisition mode (provided that opt-sum-threshold < opt.sumin). opt-sum-threshold Sets how high the Optical Sum input from the quad cell must be before entering acquisition mode. If opt-sum-threshold < opt-sum-in, algorithm switches to acquisition mode (provided that dist-threshold quad~azin2 + quadeLin2 AZ-Sine Sine wave input. A Z.Sine = sin (27wf req t), x-out = ramp - AZ-Sine. EL-Sine Sine wave input. ELSine = sin (2wrfreq - t y-out = ramp - ELSine. r/2), spiraLmode When 1, finds quad cell but does not acquire. When 2, finds quad cell and enters acquisition mode. Table 4.4: Table of Stateflow input variables used in the CAV spiral algorithm. 111 Name Description x.out Command to KAMAN Azimuth axis. y-out Command to KAMAN Elevation axis. track-az-out Command to quad cell Azimuth axis. track-eLout Command to quad cell Elevation axis. cage-enable.out Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM when using the original analog controller. eLnotinvert Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM when using the original analog controller. acquired Is 1 if the algorithm found the quad cell and entered acquisition mode, 0 otherwise. sp.done Is 1 if algorithm is in finished state, 0 otherwise. Table 4.5: Table of Stateflow output variables used in the CAV spiral algorithm. 112 Name Description delayi Counter for delay...max. delay-max Time (in cycles) before evaluating to next state. Usually set to zero. first Is 1 if coming out of reseti state, otherwise 0. Used to avoid waiting reset-delay before starting spiral. ramp Stores current value of command radius from center. x-out = ramp - AZ-Sine and y.out = ramp - EL-Sine. reset-i Counter for reset-max. sp.reset Set to 1 when algorithm is to wait reset-delay during first state. Is set to 0 only in legireset. steps Counter used for bumpless transfer. track-az-orig Stores original quad cell Azimuth command used when switching to quad cell tracking mode. Used for bumpless transfer. track-az-orig Stores original quad cell Elevation command used when switching to quad cell tracking mode. Used for bumpless transfer. Table 4.6: Table of Stateflow local variables used in the CAV spiral algorithm. The Stateflow diagram shown in Figure 4-10 has only 1 state dedicated to the steering of the beam, legi, compared to the 4 used in the square spiral algorithm. The implementation of the algorithm is equally less complex. As stated before, the next point in the CAV spiral pattern is always just a fixed increase in angle combined with a fixed increase in the radius. Fortunately, the change in angle is accomplished automatically by the A ZSine and ELSine parameters which are time based sine wave signals from Simulink, and do not need to be implemented in Stateflow. The only parameter the Stateflow has to change is the current radius of the spiral, represented by the ramp parameter. The change in radius is calculated as a function of freq, 113 pitch, max-radius and the sampling frequency of the model F (usually 10 kHz). Aramp F-pitch = max-radius freq Ar amp = max-radius - freq F(4.itc (4.2) F -pitch The first equation states that change in ramp times the number of points in the entire spiral algorithm equals the final radius of the spiral. Simply rearranging this equation yields Aramp as a function of input parameters. legib handles the incrementing of the ramp parameter per Equation 4.2 (with F = 104). This ramp is multiplied by the AZSine and ELSine parameters to convert the polar representation of the spiral into the cartesian commands x.out and y.out. The state changes out of legi only when the quad cell is acquired (see Section 4.4) or the radius of the spiral reaches max-radius. Finally, note that the behavior of the model relating to the rest of the parameters (such as stop-at-end and reset-max) is precisely as described in Section 4.3.1. Figure 4-11 shows the outputted spiral path with pitch = 5, max-radius = 10 and freq = 250. xPC Implementation The xPC integration for the algorithm is the same the other two algorithms, and is shown in Figure 4-5. Figure 4-12 shows the Simulink block diagram used with the CAV algorithm and Figure 4-13 shows the MATLAB GUI used to control the CAV algorithm. Figure 4-12 is almost identical the Block Diagram of the square spiral algorithm shown in Figure 4-6. The new parameter spiraLmode allows changing between two modes of the algorithm. When spiraLmode = 1, the algorithm will find the quad cell but not switch into the acquirel state and enter quad cell feedback mode. When spiraLmode = 2, the algorithm will find the quad cell and switch into the acquire1 to complete acquisition of the quad cell and enter quad cell feedback mode. Also, the AZSine and EL-Sine blocks provide two sinusoidal signals for use in the Stateflow block. The frequency of both sine waves is controlled by freq. The code ran when the 'Spiralize' button is pressed on the GUI of Figure 4-13 is 114 Steps in CAV Spiral Algorithm, pitch = 5, maxradius = 10 and freq = 250 108 -64 - -- E E 0 0 2- .6a 00 0 0- C 0 a) Z -4-6 --8 -10-10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-11: X-Y plot of the steering path of the CAV spiral algorithm with pitch = 5, max-radius= 10 and f req = 250. 115 -C-- Command On Spiral Off 3 M -C- g AZ Cage Switch maradus Command Spiral Size AZ Bias In -C- freq - Spiral Freq 0 EL Cage Command Switch reset max Reset Delay -C EL Bias In pitch -- Ire azaout Resolution M -C- reset AZ Track Tmancc Command Switch E AZ Track Bias In Spiral Reset slap at nd 1E Track AZAZTrack Command Switch trad Spiral Stop 2 k quadaz in EL Track Bias In AZ Quad in quad"elin cage_enabe_ out EL Quad In Cage Enable In 10 Optical Sum In optun in dist -C- 6 Cage Enable Switch _nol_invel_ out threshold Distance Threshold EL Not Invert In EL Not Invert Switch optsum_threshold -COptical Sum Threshold acqired AZ Sine Spiral Acquired Terminator AZ Sine ELSine EL Sine iraL -C- lCag Enable sp mode don Spiral Finished Terminator Spiral Mode Select spiral Figure 4-12: Second level Simulink model of the CAV spiral algorithm. 116 EL Not Invert Figure 4-13: MATLAB graphical user interface used to control the CAV spiral algorithm. 117 slightly different from the code from the square spiral algorithm in Appendix G. This new code is available in Appendix H. The methods are similar, except that the code accounts for the fact that the algorithm may not go into acquisition mode. If it does not (spiraLmode = 1), but the algorithm finds the quad cell, the current position commands are saved and used as the new starting point for another spiral. This time, the spiral is reduced in magnitude by a factor of 10 (making it 10 times more dense) and the disLthreshold is reduced by a factor of 10. A new spiral is run to get closer to the center of the quad cell. This second spiral is necessary because the grid spacing of the CAV spiral get much wider as the spiral diameter increases. Using this implementation, a coarse spiral is run first just to find the general area of the quad cell, and then a fine spiral is run automatically to get near the center of the quad cell. Finally, there are three parameters in Figure 4-13 that control the outputted spiral pattern. 'Spiral Size' controls the maximum allowable radius of the spiral, 'Spiral Freq' controls how many points per rotation are plotted, and 'Spiral Resolution' controls how many rotations are included. The effects of changing these parameters are shown in Figures 4-14, 4-15 and 4-16 respectively. Figure 4-15 is not exactly what one expects. Theoretically, the two spirals shown should be lying on top of each other, but one is always slightly smaller than the other. This is because the algorithm does not start in legib at startup, but takes 2 state transitions to get there. During this time, the AZSine and ELSine values are already initialized. This means that the departure angle will be slightly rotated clockwise when legib is finally reached. The effect is more pronounced when using a very high freq value, and that's why the two spirals do not match perfectly. This is not an issue during acquisition because the departure angle from the center doesn't have an effect on the grid itself. Why Not Use The CAV Spiral algorithm? The CAV Spiral algorithm solves the problem or accelerating around sharp corners, but introduces a few new problems as well. First, as the spiral diameter increases, the grid points get wider and wider apart (meaning the FSM is moving faster and 118 Changing 'Spiral Size' Parameter in CAV Spiral Algorithm Spiral Size = 5 --------- Spiral Size= 10- 101- S /1e / 5F C Ea E A- - ef It 4F/W 0 " 0 U i f C) 0 I if 0F 0 0 -I. wU 61 zD '5'0 10 -5 F 9-. N4. *-*.* --.. % p a, *' % b % 0 %-o -10 k -10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-14: X-Y plot of the steering path showing the effect of changing the 'Spiral Size' value in the CAV spiral algorithm. 119 Changing 'Spiral Frequency' Parameter in CAV Spiral Algorithm -Spiral Frequency = 1000 ------ Spiral Resolution = 250 10- cU E E - 5- 0 C -. 0 - 00 C 5-- -10 -5 0 5 10 KAMAN Azimuth Position Command [V Figure 4-15: X-Y plot of the steering path showing the effect of changing the 'Spiral Frequency' value in the CAV spiral algorithm. 120 Changing 'Spiral Resolution' Parameter in CAV Spiral Algorithm Spiral Resolution = 5 ------Spiral Resolution = 8- 10 57 5 E E je~\ O/ 0 '\ \x\ C 0 0 lii 0OF C 0 CU it 0) ij \ Is -5 p -10-10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-16: X-Y plot of the steering path showing the effect of changing the 'Spiral Resolution' value in the CAV spiral algorithm. 121 faster and undergoing harsher accelerations). In order to guarantee that the quad cell will be found, the freq value must be low enough so that the outer spiral points are close enough to not miss the quad cell. This means that a lot of redundant points are wasted in the inner part of the spiral, wasting time and being very inefficient. The optimum solution would be to combine the path of the CAV spiral with the fixed step length and uniform grid pattern of the square spiral. Fortunately, the constant linear velocity spiral does just that. 4.3.3 Constant Linear Velocity Spiral The constant linear velocity (CLV) spiral combines the best features from the square spiral and CAV spiral. The CLV algorithm has a smooth beam path like the CAV Spiral combined with the grid uniformity of the square spiral. Constant Linear Velocity Spiral Algorithm Figure 4-17 shows the Stateflow implementation of the CLV Spiral algorithm. Stateflow input, output and local variables used in Figure 4-17 are listed and described in Tables 4.7, 4.8 and 4.9 respectively. 122 CD c+ -'4 leg1 legla entry: theta = theta + .2; ramp = ramp + max radius / (2* 3.14159*pitch) * .2; x_out = sin(theta) ramp; y_out = cos(theta) ramp; during: theta = theta + .2; ramp = ramp + max-radius / (2* 3.14159*pitch) * .2; x_out = sin(theta) ramp; y_out = cos(theta) ramp; [(arc length / ramp <= .2)] C+ 0 0 - Oq leg1b entry: theta = theta + arclength / ramp; ramp = ramp + max radius / (2*3.14159*pitch) * arc-length / ramp; x_out = sin(theta) ramp; y_out = cos(theta) ramp; during: theta = theta + arclength / ramp; ramp = ramp + max radius / (2*3.14159*pitch) * arc-length / ramp; x_out = sin(theta) ramp; y_out = cos(theta) ramp; [pause] [reset] > pausel [pause==0] [reset] [reset==0] [(sqrt(xoutA2+yout2)>=max_radius)... &&(!pause)] 'finished entry: sp done=1; [(sqrtkquad az in 2+quad e Ijn 2)<=dist threshoId)... &&(opt_sum_in>=optsum _threshold)... &&(spiral_mode==1)] {acquired=1;} [(sqrt(quadazin^2+quadel_inA2)<=dist threshold)... &&(optsumin>=optsumthreshold)... &&(spiralmode==2)] (track az out = -1*quadazin; trackelout = quadel_in; track az-orig = -1*quadaz in; track el orig = quad elin; steps = 1;} [reset] reset1 entry: y-out =0x out =0; ramp: = 0; theta: 0; spdone=O; acquir ed=0; cage_ enableout=5.26; el not invert out=5.26; [reset] [rese t] [steps>=21] {track az_out = 0; trackelout = 0; acquired=1;} acquirel pause2 [pause] {cage enableout=0; elnot-invertout=5.26; acquirela entry: trackazout = trackazout-track-az-orig/20; trackelout = trackelout-trackel-orig/20; steps = steps + 1; during: track-az out =track az out-track az orig/20; track -el -out =track -el -out-track-el-orig/20; steps = steps + 1; [pause==0] Name Description pause When set to 1, pauses the spiral algorithm. Resumes when set to 0. max-radius Maximum radius of the commanded spiral. arc-length Maximum step size between grid point. pitch Number of complete revolutions per full spiral. reset Resets algorithm when 1. Restarts when switched back to 0. stop-at-end When 1, will not repeat spiral if acquisition did not occur. When 0, repeats until acquisition occurs. quad-az-in Azimuth input from the quad cell. Used to determine distance from center of quad cell. quadceLin Elevation input from the quad cell. Used to determine distance from center of quad cell. opt-sum-in Optical Sum input from the quad cell. Used to determine if on active region quad cell. dist-threshold Sets how close the beam must be to the origin of the quad cell before entering acquisition mode. If dist-threshold > v/ quad-azin2 + quad-eLin2 , algorithm switches to acquisition mode (provided that opt-sum-threshold < opt-sumin). opt-sum-threshold Sets how high the Optical Sum input from the quad cell must be before entering acquisition mode. If opt-sum-threshold < opt-sum.in, algorithm switches to acquisition mode (provided that dist-threshold > Vfquad.az-in2 + quad..eLin2). spiraLmode When 1, finds quad cell but does not acquire. When 2, finds quad cell and enters Acquisition mode. Table 4.7: Table of Stateflow input variables used in the CLV spiral algorithm. 124 Name Name x-out y-out Description Description Command to KAMAN Azimuth axis. Command to KAMAN Elevation axis. track-az-out Command to quad cell Azimuth axis. track-el-out Command to quad cell Elevation axis. cageenable-out Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM using original analog controller. el-notLinvert Digital signal controlling feedback mode (switching between KAMAN and quad cell) of FSM using original analog controller. acquired Is 1 if the algorithm found the quad cell and entered acquisition mode, 0 otherwise. sp-done Is 1 if algorithm is in finished state, 0 otherwise. Table 4.8: Table of Stateflow output variables used in the CLV spiral algorithm. Name Description ramp Stores current value of command radius from center V. steps Counter used for bumpless transfer. theta Stores current spiral angle [rad]. track-az-orig Stores original quad cell Azimuth command used when switching to quad cell tracking mode. Used for bumpless transfer. track-az-orig Stores original quad cell Elevation command used when switching to quad cell tracking mode. Used for bumpless transfer. Table 4.9: Table of Stateflow local variables used in the CLV spiral algorithm. The Stateflow code generating the steering commands is contained entirely in legi. The main parameter of interest is arcilength. This parameter sets the step size of the individual spiral points. With the step size being constant, instead of the step angle as with the CAV Spiral, each subsequent spiral has more points than the previous one, creating a spiral that is formed with constant linear velocity. In the beginning of the algorithm, the arc-length is too large to approximate a 125 spiral shape. To avoid this problem, legla starts the algorithm with a CAV spiral until ramp 20 > arc-length (4.3) meaning until there would be 40 points per revolution of the spiral using arc-length as the step size. Once this is true, the steering pattern continues with constant linear velocity. For each new step, the algorithm must calculate the change in angle and the change is radius. The diagram in Figure 4-18 shows how these two values are approximated using arc-length as a guide (a in Figure 4-18). P Cr A9 d a rA Figure 4-18: Diagram showing step progression of CLV spiral algorithm from point P to point Q. The change in angle AO is calculated using the small angle approximation. AO = tan \r ~ r (4.4) Note that this is just an approximation to the correct change in angle. However, when small angles are used, the error is negligible. Next, the change in radius is calculated as a function of the change in angle: = max-radius- AO 2 - pitch (4.5) Next, the polar coordinate representation calculated is transformed into x-out and y-out commands. The algorithm continues this way until the max.radius is reached or the algorithm enters acquisition mode. Figure 4-19 shows an outputted spiral, 126 illustrating the switch between CAV and CLV mode. Normally, the CAV mode would not last more than a few revolutions. CLV Spiral Algorithm Pattern Showing Switch between CAV and CLV 10 8 6 4 E 0 -7 -7 2 0 0 0- 0 0: 0 0 CU --2 -4 -6 -8 -10 -10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-19: X-Y plot of the steering path using the CLV spiral algorithm, showing the transition from CAV to CLV. Figure 4-20 shows a comparison between the CLV algorithm and a CAV spiral calculated in MATLAB to highlight any errors. 127 Comparison of MATLAB and CLV Spiral Algorithm SI 10 MATLAB spiral CLV Spira I - 8 61 C: EU 4 E 0 0 2 0 C 0 Z~ 0 0 a) z: -2 -4 -6 -8 -10 -10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-20: X-Y plot of the steering path using the CLV spiral algorithm compared with a MATLAB generated CAV spiral. 128 xPC Implementation The xPC integration for the algorithm is the same the other two algorithms, and is shown in Figure 4-5. Figure 4-21 shows the Simulink block diagram used with the CLV algorithm and Figure 4-22 shows the MATLAB GUI used to control the CLV algorithm. Figure 4-21 is basically the same as the CAV Simulink block diagram shown in Figure 4-12. The notable differences include the inclusion of the arc-length parameter and the removal of unnecessary parameters. The code used in the GUI to call 'Spiralize' is the exact same and included in Appendix H. The user changeable parameters that affect the CLV Spiral shape are the 'Spiral Size', the 'Spiral Arc Length', and the 'Spiral Resolution' parameters. Figures 4-23, 4-24 and 4-25 show the effects of changing each of these parameters, respectively. Finally, it is important to note that the 'Spiral Size', 'Spiral Arc Length', and 'Spiral Resolution' should be set to a specific ratio for optimal coverage. To approximate a square grid with a spiral, the change between successive spirals should be the same as the space between points on the spiral curve. This means that using max..radius arc-length will produce optimal results. This optimal pattern is shown in Figure 4-26. Imagine that the active area of the quad cell was centered between the 4 points in Figure 4-26. The rightmost grid points do not sit on the intersections of the dotted lines representing a CAV grid the points are formed with the CLV spiral. The spacing shown is a 'worst case scenario'; when the points visited line up in this fashion, the effective coverage of each point is at a minimum. In order to acquire the quad cell, the dist-threshold would have to be approximately arc-length/V. Thus obeying dis~threshold> 2 arc-length guarantees that the grid pattern will not miss the quad cell. 129 (4.7) -C-Command On p use Spiral Off AZ Cage Commmand Sw tch AZ Bias In maxradius -CSpiral Size AZ Bias Temp U -0 y oul -C- arclength L EL Cage Command Switch EL Bias In Arc Length II EL Bias Temp -- -C trackaz_out pitch - Resolution AZTrack A AZ Trac-k Commmand Switch AZ Track Bias In reset -C- AZ Track Bias Temp Spiral Reset track el oul AELTrack EL Track Commmand Switch EL Track Bias In quad az_in AZ Quad In EL Track Bias Temp cageenablecut In Cag Cage Enable quadel i C D EL Quad In Switch el-not invert-out opt sum in r) Optical Sum In CD-nMtat-ELEL Not Invert EL Not Invert In Switch distthreshold Distance Threshold acquired - 9 Spiral Acquired Terminator opt sum threshold Optical Sum Threshold sp doni Spl eralMs Spiral Finished Terminator mode Spiral Mode Select spiral Figure 4-21: Second level Simulink model of the CLV spiral algorithm. 130 Not Invert Figure 4-22: MATLAB graphical user interface used to control the CLV spiral algorithm. 131 Changing 'Spiral Size' Parameter in CLV Spiral Algorithm Spiral Size = 5 - Spiral Size = 10 --, --- 10 - -A 51 C E E 0 0 0: OX 0 0 0 - C .0 /00 RO -G - 00, 0 CU z -5 -10 -10 5 0 -5 KAMAN Azimuth Position Command [V] 10 Figure 4-23: X-Y plot of the steering path showing the effect of changing the 'Spiral Size' value in the CLV spiral algorithm. 132 Changing 'Spiral Arc Length' Parameter in CLV Spiral Algorithm 10 x ..-- J ., Spiral Arc Length Spiral Arc Length 1- 0.3 x' 8- . 6F It d X % $ 60 10.** * * . Wx. W. .. 31 A * OX *0* i *.o . X K CU E E 4 0 2 K * 1~ 0 0 is a CU -2 (D Is* 3' -4 U 3' 35 %153 Is 0 0 3t * * 03C J5 0 1' F 0 0 It. * 3$ $ 03t. 0 * 3' 'x. .9 6. 0X '35. -86L U Is * 3$ S Ist is U U x 3$ .60 3' $ U 3$ 0 0 #X. xW a' 0 z 3' * 0 * X 0 OK 0* *~~O3ie0*4M..W*03SX -10 -10 -5 0 5 KAMAN Azimuth Position Command [V] 10 Figure 4-24: X-Y plot of the steering path showing the effect of changing the 'Spiral Arc Length' value in the CLV spiral algorithm. 133 Changing 'Spiral Resolution' Parameter in CLV Spiral Algorithm - ----- - 10 Spiral Resolution = 5 Spiral Resolution = 8 - EIl E 0 0 C 0 < -1 -5-\ -* -k . -10-10 5 0 -5 KAMAN Azimuth Position Command [V] 10 Figure 4-25: X-Y plot of the steering path showing the effect of changing the 'Spiral Resolution' value in the CLV spiral algorithm. 134 - -,~ - %. I \ / I I I I I I I m .9. ----- -- m - m * / \ / x , - 3 I / I I m - - - m / I *%\ - -- **.*~ * ,% w I I * I I min~IUE .~ - / -I ~ I I \ I I \ a / I / Figure 4-26: Diagram showing grid points visited during CLV spiral algorithm with effective coverage of each point. 135 4.4 Acquisition and Bumpless Transfer to Quad Cell Control Section 4.3 reviewed the three methods for steering the beam in a spiral pattern. Each of these three steering methods use essentially the same Stateflow code to perform the actual search for the quad cell and switch into quad cell tracking mode. The Stateflow diagram representing acquisition mode is shown in Figure 4-27. finished entry: sp-done=1; [steps>=21] {trackazout = 0; [(sqrt(quad az in2+quad el inA2)<=dist threshold).. . trackelout = 0; &&(opt.sumin>=opLsum_threshold)... acquired=1;} &&(spiral ode==2)] {track -az out= -1 *quadazin; trackel_out = quad el-n; {cage enable out=O; acquirel trackazorig= -1 *quadazin; el not invert out=5.26;} trackel orig = quad elin; steps = 1;} / acquirela entry: track_azout = trackaz out-trackaz orig/20; trackelout = trackelout-trackelorig/20; steps = steps + 1; during: track -az -out =track-az-out-track -az -orig/20; track -el -out =track-el-out-track_el_orig/20; steps = steps + 1; Figure 4-27: Stateflow diagram showing acquisition algorithm used with all spiral algorithms. The Stateflow code, small as it is, controls both the parameters governing the searching algorithm as well as the bumpless transfer. 4.4.1 Searching Algorithm The following code snippet is present (with only very minor differences) in all three algorithms. 136 [(sqrt (quadazin^2+quad-elin^2)<=dist-threshold) ... &&(opt sumin>=opt-sum-threshold) ... &&(spiralmode==2)] {track_az_out = -1*quadaz_in; trackelout = quad-el-in; track-az-orig = -1*quadazin; trackel1orig = quad-el-in; steps = 1;} This code snippet defines the transition between every state controlling the spiral pattern and the acquirel state. The top two conditionals define the searching algorithm. In order for the state to switch to the acquirel leg, both of the following conditions must be true: /quadazin 2 + quad.el-in2 < distthreshold opLsum-in > opLsum-threshold (4.8) (4.9) where dist-threshold and opLsum-threshold are set by the user. These equations say that in order for the switch to acquire mode to occur, the beam spot must be within a certain distance of the center of the quad cell and the value of the Optical Sum input must be above a certain value. That's all there is to it. Finding the correct values of disLthreshold and opt-sum.threshold is the tricky part. Figures 4-28 through 4-31 address this problem. These figures show experimental data gathered using the square spiral algorithm with the SPOT-4DMI quad cell connected to the UDT Model 431 X-Y Position Indicator. Figure 4-28 shows the commanded voltages to the FSM while it was under KAMAN feedback control and the resulting quad cell position. The spiral starts at the center of the quad cell (after a successful acquisition) and set not to enter acquisition mode. Figure 4-29 shows the distance from the center of the quad cell and the Optical Sum as a function of the commanded KAMAN position during the same spiral. Looking at Figure 4-28, it appears that the quad cell position outputs are extremely noisy. This is not true. The "noise" in this figure is corrupted data from the 137 FSM KAMAN Position Command During Spiraling I -T i i i I L -L -L -L 10864-- ca E 0 00 a. z -4- - -6-8-10-10 -8 -6 -4 -2 0 2 4 AZ KAMAN Position Command [V] -L 6 8 10 FSM Quad Cell Output During Spiraling 1 0.80.60.40.20 0:3 CY -0.2 --0.4-0.6- -1 -0.8 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 AZ Quad Cell Position [V] 0.4 0.6 0.8 Figure 4-28: Experimental plots showing the FSM steering path and quad cell position over a 10 V range using the square spiral algorithm. 138 3D Plot of Distance from Quad Cell Origin During Spiraling [V 10 8 1.2 6 4 E E 0 2 0.8 0 in 0 0 CL, z -J 0.6 -2 -4 0.4 -6 -8 -101 -10 0.2 -5 0 5 10 AZ KAMAN Position Command [V] 3D Plot of Quad Cell Optical Sum During Spiraling [V 10 8 6 6 4 5 E E 0 2 U C 0 4 0 0 C1. z -J -2 -4 2 -6 -8 -10= -10 -5 5 0 AZ KAMAN Position Command [V] 10 Figure 4-29: Experimental plots showing the distance from the origin of the quad cell and quad cell Optical Sum over a 10 V range using the square spiral algorithm. 139 Model 431 X-Y Position Indicator. When the laser moves off of the active region of the quad cell, the Model 431 has a hard time displaying the correct position. Instead of pegging off scale, the outputs tend to go back to zero. Several LEDs on the Model 431 light up when this error condition occurs, alerting the operator that the quad cell position data is corrupted. This is only a problem with the Model 431. The C/R Board tends to peg scale in the general direction of the spot when the laser is not on the active region of the quad cell, unless the spot is completely off of the quad cell. This is advantageous because optical feedback can be initiated when the beam is not on the quad cell, and the compensator will command the FSM to steer the beam toward the center of the quad cell (the quad cell looks like it is saturated rather than corrupted, and still provides useful feedback data). The top portion of Figure 4-29 was created by taking the quad cell position voltages and taking the hypotenuse to find the "distance" from the quad cell origin. The "distance" voltage is /quad-azin2 + quadelin2 , which is one side of the inequal- ity of Equation 4.8. This shows that if dist-threshold was set to .4 [V], the spiral algorithm would enter acquisition mode when the commanded position was in one of the darker blue regions (provided that Equation 4.9 was also satisfied). This also shows why both Equations 4.8 and 4.9 need to be satisfied to enter the acquirel state. Keeping dist-threshold = .4 V, Equation 4.8 is satisfied near the center the origin of Figure 4-29 (which is the origin of the quad cell), and toward the outer fringes as well. The outer regions of the Figure 4-29 are completely off the quad cell, but Equation 4.9 is satisfied! This is because of the corrupted data gathered with the Model 431 when the beam is not pointed on the quad cell. If there was no opt-sum-threshold parameter, the spiral algorithm would switch into acquisition mode if it commanded the FSM completely off of the quad cell. Unfortunately, the quad cell feedback loops would go unstable after the FSM rammed into its mechanical stops (something to avoid). The top portion of Figure 4-29 is the Optical Sum output voltage during the same commanded spiral. The Optical Sum voltage is high near the center of the quad cell and falls off quickly as the spot moves off of the active region of the quad cell. By requiring both Equations 4.8 and 4.9 to be satisfied, the spiral algorithm 140 will not enter acquisition the beam is not pointed on the active region of the quad cell and when the Model 431 is outputting corrupted data. The user must correctly set both dist-threshold and opt-sumthreshold so that acquisition occurs only on the linear region of the quad cell. The central linear regions of Figures 4-28 and 4-29 are shown in Figure 4-30 and Figure 4-31. Looking at Figure 4-31, the center of the quad cell is at the darkest blue point. A reasonable value for disLthreshold might be .3 V which would put the beam very close to the center of the quad cell. A reasonable value for opLsum-threshold might be 6 V, insuring that acquisition only takes place in this linear region. These values only apply when using the Model 431 X-Y Position Indicator. 4.4.2 Bumpless Transfer The rest of the Stateflow code in Figure 4-27 governs the bumpless transfer behavior of the algorithms. The idea behind the bumpless transfer is simple. In theory, once the algorithm is certain that it has found the active linear region of the quad cell, switching to quad cell feedback mode would simply cause the FSM to rapidly center the beam on the quad cell. However, this sudden centering of the beam creates a "bump" in the transfer. Avoiding this large sudden change in the FSM angular command ensures that the FSM will not go unstable during the transfer to quad cell feedback mode. The implementation of the bumpless transfer is quite simple. After the searching algorithm has verified that the beam is pointed on the quad cell, the Azimuth and Elevation quad cell voltages are stored and the commands for the quad cell feedback path are set to these voltages (with the appropriate sign conventions if needed). For example, assume the FSM has found the quad cell and the current position output from the quad cell is [.12 -.17] (in terms of [AZ-voltage EL-voltage]). These sensor voltages are used to control the amplitude of the command voltages in the feedback path, in this case setting the Azimuth quad cell command to -.12 V (the quad cell Azimuth axis is inverted compared to the FSM Azimuth axis) and the Elevation quad cell command is set to -. 17 V. When the feedback sensors are switched from KAMAN 141 FSM KAMAN Position Command During Spiraling, Linear Region 3- 2- 0 0 A 0 0 0 a- z -2- -3 -2 -1 0 1 AZ KAMAN Position Command [V 2 3 FSM Quad Cell Output During Spiraling, Linear Region 0.8 0.60.40.2 .0 0 - O -0.2 -i wU -0.4 - -0.6 - -0.8 - 1 -0.8 -0.6 -0.4 -0.2 0 0.2 AZ Quad Cell Position [ 0.4 0.6 0.8 1 Figure 4-30: Experimental plots showing the FSM steering path and observed quad cell position in the linear range using the square spiral algorithm. 142 3D Plot of Distance from Quad Cell Origin During Spiraling, Linear Region [] 2.51.2 2 1.1 1.5" -0.9 E E 0.5 00.8 0 0.7 -0.5 -0.6 0.5 0.4 -1.5 0.3 -2 0.2 -I2.5 -2 -1.5 -1 -0.5 0 0.5 1 AZ KAMAN Position Command [V] 1.5 2 2.5 3D Plot of Quad Cell Optical Sum During Spiraling, Linear Region [V 2.5 7.5 7 2 1.5 , cc E E 0 , 6.5 1 -6 0.5- z05~ 5. < -0.45 -J1 AZ KAMAN Position Command [V] Figure 4-31 Experimental plots showing the distance from the origin of the quad Cell and quad cell Optical Sum in the linear range using the square spiral algorithm. 143 to quad cell, the beam will not move because the commanded voltages are the same as the actual output voltages, driving the error to zero. Now in quad cell feedback mode, the last step is to slowly reduce these commands to [0 0] (the center of the quad cell). This is accomplished in 20 incremented steps during the evaluation of the acquire1 state. After the 20 steps, each algorithm moves to its finished state, and the FSM is pointing the laser at the center of the quad cell under quad cell feedback control. Experimental data was taken with the Model 431 X-Y Position Indicator during an acquisition of the quad cell using the square spiral algorithm. To obtain this data, the algorithm was run to acquire the quad cell, and then an offset was commanded to steer the beam near a corner of the quad cell. The algorithm was then run again starting at this offset position. Figure 4-32 shows the commanded beam path and the actual quad cell output voltages and Figure 4-33 shows the distance from the quad cell origin and Optical Sum, generated in the same manner as Figure 4-29. The first thing to notice in Figure 4-32 is that the quad cell voltage does not produce the uniform grid that was commanded, but rather a grid that is compressed on the left and bottom sides. This is because the linear region of the quad cell is only the inner 25% of the elements. Near the origin of the quad cell, the grid pattern matches the commanded pattern more closely, with a minor angular discrepancy (probably due to the mounting of the quad cell). During the acquisition, the quad cell voltages basically follow the commanded grid pattern. The disLthreshold was set near .15 V. Near the upper right corner of the quad cell position plot, the grid stops and a slanted line starts. This is the point where the bumpless transition occurs. At this point, Figure 4-33 shows that the distance from the quad cell origin is at a low point and that the Optical Sum is very near its maximum, implying that the beam is pointed very near to the origin of the quad cell. Equations 4.8 and 4.9 have been satisfied, and acquisition begins. The quad cell position plot in Figure 4-32 shows a straight line from this point to the origin of the quad cell. This line was made in 20 discrete steps as outlined earlier in this section (20 was chosen arbitrarily, the number could be much higher for a smoother transition). At this point, the beam is in optical feedback mode and pointed at the center of the quad cell, and the spiral acquisition 144 FSM KAMAN Command During Acquisition M 1 0.8- 0.6 0.4 I- E E 0.2 F 0 U C 0 ~0 0 0-0.2 F W -0.4 -0.6- -0.8 -1 -1 -0.8 -0.6 0 0.2 0.4 -0.4 -0.2 AZ KAMAN Position Command [V] 0.6 0.8 1 FSM Quad Cell Output During Acquisition [V] 0 0.1 0-0.1 - .2 -0.2C 0 -0.30 7a L)VJ M -0.4-0.5-0.6-0.7 -0.81 -0.8 -0.6 -0.4 -0.2 AZ Quad Cell Position [V] 0 0.2 Figure 4-32: Experimental plots showing the FSM steering path and observed quad cell position during acquisition using the square spiral algorithm. 145 Distance from Quad Cell Origin During Acquisition [VM 1 1.1 0.8 0.6 - 0.4 - E E 0.2 - 0 0 0.9 .8 7 0 0.6 z -0.2- 0.5 -j -0.4- 0.4 -0.6- 0.3 -0.8- 0.2 w -1' -1 -0.5 0 0.5 1 AZ KAMAN Position Command [V] Quad Cell Optical Sum During Acquisition [V] 1 0.8 7.2 0.6 0.4 C: E 0 0.2 F 8 6.6 0j E-0.2 F-0.4 F 6.4 -0.6 6.2 -0.8-1'. -1 -0.5 0 0.5 1 AZ KAMAN Position Command [V Figure 4-33: Experimental plots showing the distance from the origin of the quad cell and quad cell Optical Sum during acquisition using the square spiral algorithm. 146 has accomplished its task. 147 148 Chapter 5 FSM Compensator Design The previous sections of this document have built up the tools necessary to control the FSM in a laboratory environment. This chapter focuses on the control of the FSM. Section 5.1 describes the original control hardware designed by Professor James K. Roberge. Section 5.1.1 describes the software control of this hardware in xPC, including the graphical user interface built to control the hardware. Section 5.1.2 looks at the analog implementation of the compensator, including the implementation of rate feedback. Section 5.1.3 includes the experimental closed loop responses of this compensator. With the baseline performance established, Section 5.2 lays the groundwork for the new (and possibly improved) digital compensator. Sections 5.2.1 and 5.2.2 describe the implementation of the digital controller in xPC including the usage of the relevant graphical user interface. Section 5.2.3 describes the design process and the relevant requirements for the closed loop response. Section 5.2.4 describes the implementation of different compensators with their simulated responses. Finally, Section 5.2.5 reviews the experimental results obtained when these compensators were implemented. 5.1 Original Compensator Overview The FSM used in these experiments has existed at Lincoln Labs for a number of years. James K. Roberge, a Professor in the Electrical Engineering and Computer Science 149 department at MIT designed the analog compensator used previous to this work. This section describes the xPC interface used to control the analog compensator during experimentation. The compensator is analyzed as well, and experimental results taken with the FSM under quad cell feedback using this analog compensator are included as a baseline performance reference. 5.1.1 xPC Integration The analog controller shown in Figure 2-15 is a stand-alone controller, containing all of the components needed to control the FSM including the analog compensator, differential input channels for the feedback sensors (KAMAN and QUAD), a current amplifier to drive the FSM voice coils and the necessary power supplies for the system. However, a method is needed to properly command this stand-alone controller. The command of the analog controller is accomplished with Simulink and xPC. Figure 5-1 shows the Simulink model ran on the xPC Target computer during experimentation. The graphical user interface used is the same as shown in Figure 4-22. Note that the MIRU controls are not implemented in Figure 5-1. In normal operation of the laboratory, xPC must be controlling both the FSM and the MIRU, and a more complicated model is used. This model is run at a constant sampling rate of 10 kHz, and contains the compensation for the MIRU hardware. However, the MIRU implementation will not be discussed in this document. Each block in Figure 4-22 controls a different part of the model in Figure 5-1. The 'Spiral Locater' panel is covered extensively in Chapter 4. The 'FSM Control Panel' panel provides a user interface to control which feedback sensors are used with the FSM. 'Cage' refers to using the local KAMAN sensors as the feedback sensors. 'Track' refers to optical tracking mode using the quad cell as the feedback sensor. The 'Mode Select' button group selects between four available modes: 1. Both axes in Cage (KAMAN) mode. 2. Azimuth axis in Cage mode, Elevation axis in Track (quad cell) mode. 150 CD Spiral Off OR AZ Sine Select E Spiral Off -C- AZ Track AZ Sine Switch1 AZ Bias In inverti I Outl Signal Generator 1 AZ Bias1 PMC-ADADIO EL Bias In General Standards ADADIO Cards Initializationi Az Wavetsrm Switch 2 EL Track Step Switchi 1,3 AZ Track Bias in EL Sine Select EL Sine Switch1 AZ Sine Wavel AZ Cage CD E PMC-ADADIO General SIds AD Read FSM Quad AZI 2 1 3 EL Cage EL Not DOUG T AZ Sine Select -C- Signal Generator 2 1 T AZ Sine Switch EL Not FSM Commands Cage Enable In -CCage Enable FSM Quad EL1 PMC-ADADIO General Stds DA Update -1 ADADID Update 1 invert4 Invert in Invert AZ Bias T1 AZ 0 4 invert3 EL Bias1 CD 1 EL Track Bias In OR I' Quad In Cage Enable FSM Optical Sumi A/D Kaman Sensor Outputs from FSM1 -C- CD EL Waveform Switch CD EL Sine Wavel 0 Step Switch PMC-ADADIO General Stds Digital Output EL Quad In EL Not Invert T EL Sine Select -. T EL Sine Switch A2 Optical Sum in -C\DADIO EL Bias T1i 0 I-I E invert2 E 0 Genera Ids DA Write I Spiral Locater I Digital Output E 3. Elevation axis in Cage mode, Azimuth axis in Track mode. 4. Both axes in Track mode. The digital signals 'Cage Enable' and 'EL Not Invert' are set according to which mode is selected. These digital signals control digital switches in the Analog Controller, choosing which feedback sensors to use. The 'Cage and Tracking Mode Inputs' group allows manual input of commands to each of the four feedback loops. The 'Bias' Commands and the 'Cage Commands' are added together and applied to the appropriate axis. This allows zeroing out the KAMAN sensors if there is any offset present. The 'Track' commands are outputted to the quad cell loops of the Analog Compensator. The 'FSM Waveform Input Control' panel allows the selection of different signals to be used as commands to the feedback loops of the Analog Compensator. These signals can be sine waves or step commands, set to either or both axes of the FSM. The commands are sent to each feedback loop (KAMAN or quad cell). This panel also allows control of the frequency, amplitude and phase of these signals. The 'I Love Lincoln' button sets these parameters to values that produce the Lincoln Laboratory logo, a Lissajous figure. 5.1.2 Analog Compensator The theory behind Professor Roberge's Analog Compensator is simple. He begins by representing the FSM as an underdamped second order system. The equation for such a system is usually written as is2 +1 +1 (5.1) This system has a significant peak near its natural frequency. To reduce this peak, the Analog Compensator implements a minor loop using rate feedback. Rate feedback is accomplished by adding a derivative term into the feedback path of the mirror. The block diagram implementation is shown in Figure 5-2. Applying Black's formula to the feedback loop, the new mirror transfer function 152 Command [angle] + I 2 S Output [angle] -- bs Figure 5-2: Block diagram showing rate feedback applied to an underdamped order system. 2 "d becomes 1 2+ b + -)s + (5.2) This means that the rate feedback loop provides electronic damping to the mirror. With the proper amount of damping, the mirror's transfer function is made to be critically damped. Figure 5-3 shows a reduced order model for the Azimuth axis under quad cell control, with and without rate feedback. The mirror with rate feedback can now be represented as a system with two real poles at the natural frequency of the mirror, Wn. The idea now is to implement the compensator as shown in Figure 5-4. By adding the inverse of the mirror under feedback control (the inverse of Equation 5.2) into the forward path, the dynamics of the mirror are effectively canceled out. With this in place, Ge(s) can be made to be whatever is desired, and the negative loop transmission will be Ge(s)H(s), where H(s) represents the dynamics of the feedback sensor used (either KAMAN or quad cell). The compensator Ge(s) chosen is a simple integrator Ge(s) = K/s. The design of this compensator is independent of the feedback sensor used. The only "cancelation" of the system is that of the major resonant peak near 120 Hz. Thus, the bandwidth is limited by the first resonant peak, which differs between the KAMAN and quad cell. For the same compensator, the crossover frequency will be limited by the KAMAN loop, as its resonant peaks 153 Modeled FSM QUAD Azimuth Frequency Response, 10 - 5,000 [HzJ 60 Without Rate Feedback With Rate Feedback --- ----- 6 40 a) 20 . . . . . . . . . . .. . . ..... ..... ... . . iii 0 I I*I I I I II!! 10 103 102 0 ...... I . . I -50 -. .................. ...... I . lii -I-- o -150 . - - --I- - - -200 104 . - I -- -250 ...... .... I ull I a) . . . -. I. -100 I ....... I II - -ii - - 102 -iiiI 103 Frequency [Hz] Figure 5-3: Comparison of the modeled open loop frequency responses of the FSM Azimuth axis using the quad cell, with and without rate feedback. 154 be C + go ±z ±0 I-y 0 Figure 5-4: Block diagram of the feedback control system using the analog compensator with rate feedback, with the FSM represented as an underdamped 2 1d order system. 155 occur much earlier in the frequency response. Resistors can be set to give different loop gains between the KAMAN and quad cell feedback loops, allowing the quad cell loops to achieve higher bandwidth than the KAMAN loops. Compensator Model The schematic for the analog implementation of the compensator is shown in Figure 2The transfer function of the total compensator function (excluding the rate 18. feedback term) realized by this circuitry is shown in Figure 5-5. Analog Compensator Bode Diagram, .01 - 100 [kHz] 10 0 - -~ - -10 ...... .... .... ... I .. .....I.. ...... . ...1....... ..... .. . ... . .. ...... --------L -20 ------ ---L-I-- ....... - - -i L-I----- ---- ... .. ....... -30 4A 101 10 103 102 - - - - -. !..1. 50 0 - . 4- .i * - ....... .. ...... I -. ... -50 0- -100 I - ... ----.. - -- ..- .. . --I--- - -..i-. ... .. - CO CU -150 -i - - - - - - -- 11-11 - --- - - -l ... ..-.. . -. - - II ii -9~nn --- W 105 Ii I. I 101 I 102 103 104 105 Frequency [Hz] Figure 5-5: Modeled frequency response of the original analog compensator, Vin/Vut, from 10 Hz to 100 kHz. 156 5.1.3 Baseline Experimental Results The data collected and presented for baseline results was for the Elevation Axis; the Azimuth responses are virtually identical. To determine the baseline results with which to compare the digital compensator, the gain of the compensator was set as high as possible while maintaining a gain margin Gm > 6 dB and phase margin 4, ;> 30 degrees. Using these conditions and playing with the gain of the compensator, the crossover frequency of the negative loop transmission was pushed to f, ~ 1 kHz. The loop transmission, along with the simulated model loop transmission is shown in Figure 5-6. Figure 5-7 shows the experimental data, but zoomed in after crossover near the first "doublet" of the mirror. This plot shows that the gain margin is Gm = 6 dB. The phase margin for this system is qbm = 38 degrees. To prove the closed loop stability of this system', Figures 5-8 and 5-9 show Nyquist plots of the negative loop transmission of the system. Figure 5-10 shows the complete closed loop frequency response. The overall performance specifications for the Elevation Axis in quad cell feedback mode using the analog compensator are summarized in Table 5.1. Parameter f, [kHz] Value .997 Gm [dB] 6 [deg] 37 <Dm D,(s) @ 10 Hz [dB] 44.8 -3 dB Frequency [kHz] 1.9 Table 5.1: Experimental performance specifications of the FSM quad cell Elevation axis using the original analog compensator. 'The famous Catch-22 of drawing a Nyquist diagram to prove a system stable with data that could only be obtained if the system was stable. 157 FSM QUAD Elevation Negative Loop Transmission with Model, 40 -..----.-. 30 20 cc CU 10 0 -10 ------------------- ---------- M--d ----- l - -. --.------. --..---- - --...--. ----.--.---. ------.---. - ----..--. I ...--..... - -- . -.. . .----. - ---.----. ---- -20 1i - --- Experimental -- ------- Model -----.. - -..-.---.-. - -. . -.- . . -----. oc ~ 1 [kHz], 10 - 5,000 [Hz] , ......... ..... .. . .................... ......... . . .. . -.. ..-- . -. 103 102 -100 -- .....- - -..- -. - - - i- -. _ .- - - - __ .. ...... . I-. - - -. -.-- - - -.- - - -- - - - - - - - -. .. .. . -150 Cn -200 . . . . . . .. . . . .... . . . . . . . . . . . .. -250 10 1 - - -- - - -- -- - -- -.I 1 1 ..t~.1 .I - - 102 - - -- - -- - - I - -lI 103 Frequency [Hz] Figure 5-6: Comparison between the experimental and modeled negative loop transmissions of the FSM in quad cell feedback mode using the original analog compensator with fI 1 kHz. 158 FSM QUAD Elevation Negative Loop Transmission, w C = I [kHz], 1.9 - 5 [kHz] -6 ......................... ............................ .......................... ............. ........... ..................... -8 .... .................... ... -10 ........... .. ..... ..... .................................................... ............... -12 ................... ....... ................ ....... ............. ................................ -14 ......................... ...................... ............ -16 ................................. ................................................... ............... ............... . ............ -18 10 3.3 103.6 10 3.4 -120 -140 .. . . . . .. . . . . . . .. . . . -160 -180 a) -200 a. -220 ..... . . . . . . .. . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............................................................................. . .................. ....... ......................................................................... . .. . . . . .. . . . . . .. . . . .. . . . . .. . . . . . . . . . .. . . . . . .. . . . . .. . . . .. . . . . . ... . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . .............. .......... -240 . . .. . . . . .. . . . . -260 . . .. . . . . .. . . . . . .. . . . .. . ... . .. . . . . .. . . . .. . . . . .. . . . . . .. . . . .. . . . . .. . . . .. . . . .... . . . .. . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . ... . . . ... . . . . . . . .. . . . . . .. . . . .. . . . -280 10 3.3 10 3.5 10 3.4 10 3.6 Frequency [Hz] Figure 5-7: Negative of the loop transmission of FSM Elevation axis in quad cell feedback mode using the original analog compensator with I kHz, 1.9 kHz To 5 kHz. 159 Modeled FSM QUAD Elevation Nyquist Diagram, Using Analog Controller 100 0 Experimental ----- Model 80 60 -. 40 .. .. ....... .. .. 20 0 E -201 -401 -60 -80 -11 If 3 i -100 -50 0 50 100 Real Axis Figure 5-8: Simulated and experimental Nyquist plots of the negative loop transmission of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with f, ~ 1 kHz. The region near the -1 point shown in detail in Figure 5-9. 160 Modeled FSM QUAD Elevation Nyquist Diagram, Using Analog Controller, Showing -1 Point 0.6 6 dB d 2 dB 0 B4 d -- - Experimental Model 0.4 10 dB -10 dB / 0.2 20 dB a B . - 0 ...- E -0.2 -0.4 i -0.6 -1.2 -1 -0.6 -0.8 -0.4 -0.2 0 0.2 Real Axis Figure 5-9: Simulated and experimental Nyquist plots of the negative loop transmission of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with fc ~ 1 kHz, zoomed in to show the -1 point. 161 1 [kHz], 10 - 5,000 [Hz] FSM QUAD Elevation Closed Loop Response, co 5 0 ci' -o -5 C -10 -15 .. . . . . . . . . . .. . 10 110 . . . . . . .. . .-- . . . . . 10 2 3 A -50- -I-- - - -..--. --..--.--. -100CO a_ ---- -- -- I - ------........................-........---......... ........- -150- -.........-.........-.........----................ I -200- - -I I I -25010 1 - - _---- 1-i 102 Frequency [Hz] Figure 5-10: Closed loop frequency response of the FSM Elevation axis in quad cell feedback mode using the original analog compensator with fc ~ 1 kHz, 10 Hz To 5 kHz. 162 5.2 New Compensator Overview It is obvious from the plots in Section 5.1.3 that the Original Analog Controller, as built, cannot achieve a higher bandwidth. The question is if any controller can achieve a higher bandwidth given the hardware characteristics of the FSM. This section seeks to answer that question. 5.2.1 xPC Digital Control A block diagram of the feedback system implemented is shown in Figure 5-11. Referring to Figure 5-11, C(s) is the command voltage into the feedback loop, Ge(s) is the digital compensator, E(s) is the summing junction error, M(s) is the model of one FSM axis, including the current amplifier, the mirror and the dynamics associated with the sensor (for the Quad cell, the dynamics can be ignored in the frequencies of interest, and the block just becomes a gain), bs is the rate feedback damping, Q(s) is the quad cell voltage out (or the angle out with a simple gain term), and D(s) is the disturbance input. The minor loop containing the rate feedback can be simplified to __M(s) (S -bs Mr (s) = 1 + M(s) (5.3) where Mr(s) = M(s) if b = 0 and rate feedback is not used. Therefore, the loop transmission of the system will be LT = Ge(s)Mr(s). The disturbance response is Q(s)/D(s) ~ 1/LT. The disturbance rejection can be thought of as the inverse of the disturbance response, and thus is D,(s) = LT. The two blocks Gc(s) and bs are the controllable user inputs. The design of the new compensator will go through several design iterations. It would not be practical to implement this compensator in the analog world until the final design is chosen. For this reason, a digital compensator is used. Fortunately, xPC is the perfect platform to run a high bandwidth digital compensator that can be easily modified. Figure 5-12 shows the xPC block diagram of the digital controller. The controller is initialized by creating the discrete time state-space matrices associated with the desired continuous time compensation function Gc(s). The dis163 SE -1 Fiue Bokdiga diitl o opesaosinluig hefebakcnto at eebak 164 yse ipeene it h y(n)=Cx(n)+Du(n) x(n+1 )=Ax(n)+Bu(n) gAZQADT AZ QUAD Loop Gain FSM AZ Error FSM AZ Camp Out 1 AZ Discrete State-Space BFroCmmnd Oq. AZ Switch 1 Input Command -KGround EL QUAD Loop Gain EL QUAD Bs Commad y(n)=Cx(n)eDu(n) x(n+1 )=Ax(n)+Bu(n)I FSM EL Com Out 2 PMC-ADADIO General Stds DA Write EL Discrete State-Space EL Switch 1 FSMErrorOut 3 Error Switch CR 0 D/A Output Bus 3 Card 12 QUAD AZ 0 C) E 0 PMC-ADADIO General Stds AD Start E E PMC-ADADIO General Stds AD Read 2 QUAD EL 3 INPUT COMMAND ADADIO Start Bus 3 Card 12 [IC] Input Command AID Input Bus 3 Card 12 E PMC-ADADIO General Stds DA Update ADADIO Update Bus 3Card 12 (T) Input Command Select E E cretization of these matrices is performed by MATLAB using the c2d function with the zero-order hold option. The zero-order hold option was chosen to reduce computation time, but the other methods can be used and remain untested. These parameters are then loaded into the xPC Target machine when the model is built. The model built on the xPC Target machine is ran as fast as possible to minimize the half sample phase delay characteristics of digital controllers. xPC can run in one of two modes. In the normal mode, the xPC Host has control over the xPC Target machine, allowing real time access to model parameters. Unfortunately, in this configuration, the digital compensator will not run much faster than 20 kHz. At this sampling rate, the phase delay is 90 at 1 kHz and 13.50 at 1.5 kHz. Having this much extra phase delay would greatly impact the design of the compensator. Fortunately, xPC has a high speed mode known as 'polling mode'. In polling mode, the xPC Host has no control over the xPC Target Machine. To run as efficiently as possible, the xPC Target machine will not allow the model to be altered in real time. Thus, once a compensator has been tested in non polling mode, data is gathered using polling mode. Sometimes, the additional phase delay caused by non-polling mode will cause the system to become unstable, even though the system will work in polling mode. To address problems like this, the compensators are tested in short time bursts to verify that they are working properly. In polling mode, the controller can run at about 45 kHz, reducing the phase delay by over a factor of 2. The digital compensator will only be used for quad cell feedback. Including the A/D and D/A channels necessary for KAMAN control would have roughly doubled the necessary computation time and forced the xPC Target machine to run at half the sampling rate, introducing additional phase delay. Figure 5-13 shows the xPC block diagram of the digital controller including a rotation matrix for the quad cell inputs. This matrix is not designed to perform the full 450 rotation (although it could, but the C/R board still handles this main rotation). Instead, this rotation matrix corrects small errors in the orientation of the quad cell. In practice, there was up to 70 extra degrees of rotation present. If left unchecked, this extra rotation would couple the axes of the FSM together (the 166 FSM would see movement in two axes and try to stop it, even if the movement was really only occurring in one axis. This rotation matrix corrects these errors for better performance. Figure 5-14 is the xPC block diagram of the digital controller when used to integrate rate feedback into the system (see Section 5.1.2). The model differs from Figure 5-13 only by the inclusion of two differentiators and the appropriate summing junctions. 5.2.2 MATLAB Graphical User Interface Figure 2-26 shows the graphical user interface used to control the digital compensator. The 'FSM Model Control' panels allows the changing of the current Simulink model, as well as controls for building the model on the xPC Target machine and starting and stoping the controller. The 'Build' button also serves to initialize the state-space matrices used in the model. The 'FSM Compensator Control' panel offers very basic functionality, allowing the command voltages to be changed, as well as the loop gains. The 'Input Command Select' group selects which axis will get commands from the third A/D channel (used for taking frequency responses). The 'Crossover' boxes do not accept inputs; these boxes display the approximate crossover frequency of the current model with the current loop gain. 5.2.3 Design Methodology The design methodology used is an iteration method. The idea is to start with the most basic compensator possible to have a point of reference, and modify this initial controller until the performance has been improved as much as possible. The goal is to have the crossover of the negative loop transmission be as high as possible. Looking at the open loop frequency response plots, it becomes apparent that at the very least, a lead compensator will have to be used to bring the phase up at crossover. This is the starting point of the design. Hopefully, after all of the iterations from starting at this point, the final result will be a negative loop transmission plot that crosses over 167 (D -C- + FSM AZ Error From Input Command AZ Switch 1 el t -C- - -KAZ QUAD Loop Gain Bias Command 11C] C4 ++ QUA +Z y(n)=Cx(n)+Du(n) x(n+1)=Ax(n)+Bu(n) FSM AZ Corn Out AZ Discrete State-Space Cn 0GroundEL y(n))Cx(n)+Du(n) x-K- x(n+1 )=Ax(n)+Bu(n) FSM E EL QUAD Loop Gain QUAD Bias Command FSM EL Comp Out 2 PMC-ADADtO Genera Stda DA Write EL Discrete State-Space EL Switch I Select 00 FSM ErrorErut 0 3 Error Switch CDt '-1 -C- Matrix Rotation Matrix Muttiply Appty QUAD Rotation D/A Output Bus 3 Card 12 CD QUAD AZ CDF I-I 000 E PMC-ADADIO General Stds E AD Start E PMC-At DADIO GeneraI Stds AD Read 2Q IQUAD EL ADADIO Start Bus 3 Card 12 3 A/D Input Bus 3 Card 12 INPUT COMMAND liC Input Command PMC-ADADIO General Stds DA Update ABADIO Update Bus 3Card 12 CD Input Command E -0 E E - CD + AZ QUAD Bias Comman~d From AZ Input Command -FSM AZ Error *' * -KAZ QUAD Loop Gain Switch I + y(n)=Cx(n)+Du(n) x(n+1)=Ax(n)+Bu(n)- AZ Discrete State-Spa FSM AZ Comp AZ Discrete Derivative x +1)=-(n+Du) C+ c+. -- -C- ++ Ground EL QUAD Bias Command Input Command Select EL Switch 1 -FSM EL Comut EL QUAD Loop Gain C+ EL Discrete Derivative 1 Matrix Multiply Apply QUAD Rotation D/A Output Bus 3 Card 12 E QUADAZ C+ E PMC-ADADIO General Stds AD Start PMC- ADADIO E -* E General Stds AD Read 2 QUAD EL 3 INPUT COMMANDC ADADIO Start Bus 3 Card 12 CD P Input Command C,, (D PMC-ADADIO General Stds DA Update ADADIO Update Bus 3 Card 12 0 0 3 Error Switch C+ 0 A/D Input Bus 3 Card 12 E EL Discrete State-Space FSM Error Out Rotation Matrix PMC-ADADIO General StdsE DA Write 2 FSM LErr C+ -C- 1 e D --- Out E beyond 1 kHz. Before beginning the simulations, it is imperative to have a model of the hardware as that is as accurate as possible in the frequency ranges of interest. Models were fit to each FSM axis in quad cell mode in Section 3.4. Unfortunately, using the digital controller adds phase delay to the model. The electronics are also slightly different, and these differences need to be taken into account. Figure 5-15 shows the model used for the Azimuth axis under quad cell control with the digital phase delay incorporated. This model was fit using data taken with the digital electronics. Modeled FSM QUAD Azimuth With Digital Delay Frequency Response, 10 - 5,000 [Hz] 60 - - - With Digital Delay Original Open Loop- ---- 0 'E20 CM 0 .._. .... i ..... ..... . . ..... 10 .......... _ _ 103 102 0 I.__ ............ .... I''~~~"'r ..... -50 I S-100 (D Int -150 . .I . 4_ . _ -200 -250 101 ..L ... ___ ._____ . .___ .. . I ....I . . ; ........ I........ .......................... ..... .... . I I i 103 102 Frequency [Hz] Figure 5-15: Modeled FSM quad cell azimuth axis with incorporated digital phase delay shown with original open loop model. Finally, compensators will be designed with both the original mirror and the 170 mirror with rate feedback in mind (see Figure 5-3). It is of interest to consider the rate feedback system because of the phase gain near the desired crossover frequencies. Figure 5-16 shows the phase gained between 900 Hz and 3 kHz when rate feedback is used, compared to the original model. If the crossover frequency is 1.2 kHz, the rate feedback system will have about 100 more phase margin compared to the mirror without rate feedback. Modeled FSM QUAD Azimuth Frequency Response, .9 - 3 [kHz] 20 Without Rate Feedback ----- With Rate Feedback - - --................................................... 1 5 - _-- - - - -- - 1 0 - -- -. . -.-.-- - - -- - - - - . - -- - -.-- - .- .- .-- .- -- - -.-.- -.. --. .- -.- -.- -. -- .-.- - - - - -.-. - -.- -. - -.-.-.-..- - - - -.--.-.-. .. - - - -.-.-.-.-. .-- - -.- - .-- C 0) -5 103 -180 . -.---.-.-. -. ---. .- .- .- .- -. - - - -. .- - - .- - - - -- - - . . -.- - - -.- - - -.- --. -1 90 - - -- -.-.. - - -.- - - -.-.-. -2 0 0 . . . . .-.- -. -..- -.-- --1 - - - -. -. - - --.-.-- .-- . - - - --..-. .-. -.-.- -.-. -240 C10 Frequency [Hz] Figure 5-16: comparison of the FSM quad cell Azimuth axis modeled open loop frequency responses with and without rate feedback near 1 kHz. 171 5.2.4 Digital Compensators This section contains the transfer functions of each digital compensator along with their simulated responses and the experimental data gathered during experimental testing. Simple Lead Compensator The first step in attacking this problem is getting the most basic controller to work. The first controller is a simple lead controller with the following transfer function. ars + 1 TS+ 1 K (27r -380) 1 s + 1 (27r - 3800) 1 s + 1 where K is the gain factor controlling the crossover frequency wc, l/a-r is the frequency of the zero and 1/r is the frequency of the pole. In this case, the frequency of the zero has be set at 380 Hz, and the frequency of the pole is one decade higher at 3800 Hz. Using an a value of 10 sets the maximum phase bump of the compensator to 550 at the logarithmic center between the zero and the pole, which in this case is approximately 1.2 kHz. Figure 5-17 shows the frequency response of Gc1 (s) with K = .0535. Figure 5-18 shows the modeled Negative loop transmission of the Azimuth axis when Gc1 (s) is used. The values of K used are different between the normal model and the model with rate feedback. Values of K were chosen to push the crossover frequency f, as far as possible, while maintaining a gain margin Gm 4 <m ;> 300. Usually, this meant that f, was > 6 dB and a phase margin very near the maximum phase bump provided by Gc1 (s). Figure 5-19 shows the modeled Negative loop transmission near fc. Figure 5-19 is helpful in pointing out where the limitations of the compensator Ge1 are. Looking at the loop transmission without rate feedback, f, cannot be push up any higher because of the phase margin specification. The only way to push ft will be to create a bigger phase bump with the lead compensator. This will have the effect of pushing up the amplitude of the first "doublet" peak near 2.4 kHz, and 172 Compensator G -5 Frequency Response, 1 - 100,000 [Hz] ! ! ! ! II!! I !I -10 I I T f -25 10 210 10 110 LI I I I I I I 4ic ) II I 50 310 i ... .. I I 1 I I .1. 20 C,, 4 10 1 1 1ll 2 . 1. ~-20 10 IT ill| 111 I ,T -1 -I I Iij~I 1111 A 100 10 10 3 102 104 105 Frequency [Hz] Figure 5-17: Modeled frequency response of Ga1 (s) with K = .0535, 1 Hz to 100 kHz. 173 Modeled FSM QUAD Azimuth Negative Loop Transmission, Using G 1, 5 - 3,000 (Hz] Rate Feedback With Rate Feedback IWithout i 40 - -------- - 30 0 20 0) 10 Ai I II .. -- I! .. .. 1 2 I 0 3 it I -10 10 10 10 - 0 - -50 a) I li I e -100 IIII -C ! .. . .. . -150 ! I I ...-. ....- ..... + I .. . IIi I ....... .. I II ......... III . . .-... . . -200 10 102 10 Frequency [Hz] Figure 5-18: Modeled FSM quad cell Azimuth axis negative loop transmission using G, 1(s), 5 Hz to 3 kHz. 174 Modeled FSM QUAD Azimuth Negative Loop Transmission, Using G 1, .9 - 3 [kHz] Without Rate Feedback ------- With Rate Feedback 0 V C -5 CU -10 103 -130 -- - - - - ---.- - ---.- - .- . - -. - - ---.- - --.-.-- - --.---.- -- -.-.-.- - - - - -.- - -.-- - - .-- .- - .... -. ....... -.-.-- -.-.-.-. . -------.-- ------.--140 ....- --.-- -.-- -.-.--.- -150 CD, -160 -C -170 -180 - Frequency-- -190 -Hz] -.------ - - - 10 3 Frequency [Hz] Figure 5-19: Modeled FSM quad cell azimuth axis negative loop transmission using Gal(s) near crossover. 175 thus must be done with care. Looking at the loop transmission with rate feedback used, the phase margin is not the limiting factor in pushing up fc, because the open loop model with rate feedback has about 100 less phase loss compared to the open loop model without rate feedback. This allows f, to be pushed up until the doublet peak hits -6 dB, running into the gain margin spec. To deal with this problem, it is possible to move the maximum phase bump of the compensator to the left of fc, instead of crossing over in the exact middle of the phase bump. This has the effect of reducing the phase margin, but also knocking down the "doublet" peak, effectively trading phase margin for gain margin. Figures 5-20 and 5-21 show the Nyquist diagram of the system. Because the open loop system is stable and there are no encirclements of the -1 point, the closed loop system will be stable. Figure 5-21 shows that for the system without rate feedback, the maximum closed loop peak will be just under 6 dB. The system with rate feedback will have a maximum closed loop peak about 1.5 dB less than this. Figure 5-22 shows the closed loop responses for both systems. Looking at Figure 5-22, The closed loop -3 dB points are virtually identical for both systems with W-3dB ~~2.08 kHz. The rate feedback system has less peaking as predicted by the Nyquist diagram in Figure 5-21. However, both systems show lower than unity low frequency behavior because of the relatively low loop gain at low frequencies. Figure 5-23 shows the step response of this closed loop system. Both systems in Figure 5-23 show overshooting responses. However, the overshoot percentage for the system without rate feedback is almost 60%, where the overshoot is about 30% on the system with rate feedback. Both systems have similar settling times. Table 5.2 summarizes the performance of each system using G, 1 (s) as the feedback compensator. 176 Modeled FSM QUAD Azimuth Nyquist Plot, Using GC 1 250 I I I 0 dB Without Rate Feedback With Rate Feedback 200 150 100 n 0) Ca 50 F- -.... -..... -. ..... 0 ... .... ... ... -... ... .. -... - E -50 - -100* -150 -200 -250 -300 -200 -100 0 Real Axis 100 200 300 Figure 5-20: Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc1 (s). 177 Modeled FSM QUAD Azimuth Nyquist Plot, Using GC1, Zoomed In Showing -1 Point 0.6 F 6dB 4d 2d 0 dB -2 dB Without Rate Feedback With Rate Feedback 0.4 B -10dB .1.d 0.2 20 dB C -20 dB ~+5 0 E -0.2 I... ......... -0.4 F- -0.6 -1.2 -1 -0.8 -0.6 Real Axis -0.4 -0.2 0 0.2 Figure 5-21: Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc1 (s) near the -1 point. 178 Modeled FSM QUAD Azimuth Closed Loop Response, Using G 1 , 5 - 3,000 [Hz) I........... 5 Without Rate Feedback With Rate Feedback I i 0 > -E 14 -5 T I 4A I I 102 103 -10 10 0 - - -41 - -50 - a) 4 4! -100 4 - 4 -150 -200 4 4 4 4 4 4 10 1 101 I 1 102 10 3 Frequency [Hz] Figure 5-22: Modeled FSM quad cell Azimuth axis closed loop frequency response using Ga(s). 179 Modeled FSM QUAD Azimuth Step Response, Using GC 1 1.6 Without Rate Feedback ---- With Rate Feedback 1.4 \ I E) E ... . ... .. 0.8 -. -. . - -.-.-.-.-.-- - -.. .... ..- - N - .. -. - -.-- --.- - .- - -.- - - .--. -.- .-- - -- - ... - - ..-.- . ..--.. - . .. - -. ..- ..- .-- .. .. . .. -. -.-- . .- - -.-. .. - -.--. -. .. .. . ..-.- 0 Z 0.6 - -- --.- ----. - --.-.-.-..- --. .- - --.. .. --- ---- --..--. .. ---.-. . .. .. ...- .. -.. -.. . . ---------. 0.4 - -- --- -- -- -- -- ---- - - - - ----- - --- ------ - ------ - - --- -- --....... -- . ---.. 0.2 0 0 0.5 1 1.5 2 2.5 3 3.5 Time [ms] Figure 5-23: Modeled FSM quad cell Azimuth axis step response using Gaj(s). 180 4 Parameter Without RFB With RFB K 0.0535 0.0562 fc [kHz] 1.17 1.27 Gm [dB] 7 6.1 [deg] 30 38 D,(s) © 10 Hz [dB] 30 30 -3 dB Frequency [kHz] 2.07 2.09 4D, Table 5.2: Modeled performance specifications of the FSM quad cell Azimuth axis using Gc1(s), both with and without rate feedback. Lead With Low Frequency Integrator And Increased a The simple lead compensator of the previous section is a good place to start. This next compensator focuses on getting the most performance out of the mirror without using rate feedback. As mentioned in the last section, Gc (s) did not produce enough of a phase bump to push the crossover frequency any higher. This can be fixed by increasing the parameter a of Equation 5.4. To increase the maximum phase bump to about 60', a = 15.85. Keeping the phase bump centered at 1.2 kHz, the lead compensation function becomes as +1 rs +1 K (27r -302)-1 s+1 (27r -4786)- 1 s +1 where K is the gain parameter that controls the crossover frequency fc This transfer function can be used to produce similar results to G, 1 (s), except with more phase margin and a corresponding decline in gain margin (the first "doublet peak" is brought up higher in magnitude as the pole of the lead compensator is pushed higher in frequency). However, the low frequency performance of G1 (s) is unsatisfactory. Ideally, there should be one or more integrators added at low frequencies to increase disturbance rejection and eliminate steady state errors. One integrator of the form s + 27rf I(s) = s + s 181 (5.6) is added to the lead compensator. I(s) is a pole at the origin with a zero at f Hz. I(s) is multiplied with the lead compensator L(s) to produce the overall compensator Gc2 (s)- Gc2 (s) = K (rs s +2wf rs + 1 sS K (s+27r - 50) s + 1 J (27r . 302) 1s+1 (27r -4786)-' s + 1 (5.7) The gain is set to K = .0435 to set f, = 1.19 kHz. The frequency response for the compensator Gc2 (s) is shown in Figure 5-24. The performance of the compensator is Compensator Gc2 Frequency Response, 1 - 100,000 [Hz] 5 -fl-r-f -.--.--.-.-. -. . 11 ~ 0--5-- * . * . -15 - - ---.....................-..... -- - -- -10 -- --... .1... .1 * . . . . I.... .1 - . .- ---. - -.- .-. - --. ... . ..... i . -20-- - - - .. ... ... .. -.. -.i.I ~1*i -25 * . A ---.- ]i]~. I.... .1.~~ 100 102 10 05 1041 103 C 171... 60 40 20 0 CU -20 -40 -60 f .I. i ... .... ... ... ....... . .. .. ooo/. . . .. . . .J - - -- -- - - - - - -- - - - - -~ -I - J - - -- -- ------~.............- --- ...... ... .. 4. .. . .... ............ .. .. ... - - -- -- . ... ..1. i.. i. IiiI. - ..... - - - - --~Il........ -}H .I ...... -80 100 10 1 103 102 105 Frequency [Hz] Figure 5-24: Modeled frequency response of the digital compensator G, 2 (s). best revealed by examining the negative loop transmission, plotted in Figures 5-25 182 and 5-26. Modeled FSM QUAD Azimuth Negative Loop Transmission, Using Gc2, 5 - 3,000 [Hz] I0 Without Rate Feedback With Rate Feedback .----- -------- - ----------- 40 30 S20 ._____. .. 1 ............ ...... .. . 0 -10 .. I . . .. .. . . . .. . .. .. 103 .10102 .. .... . ... .... ..I . . . .. . -50 U) .. ...... ____ . .. .. . .......... T 111. ... .. .. ..... l .l ___ i ~..... Ii1 _ _ __ _ ..... _ __ -100 cc -150 Ii -200 101 102 103 Frequency [Hz] Figure 5-25: Modeled FSM quad cell Azimuth axis negative loop transmission using Gc2 (s) with K = .0435. The negative loop transmissions in Figure 5-25 provide great insight on the performance of the compensator. This compensator was designed to be used for the mirror without rate feedback, so these plots will be ignored until the next section. The negative loop transmission of the Azimuth axis appears as one would expect, with the integrator present at the lower frequencies, with peaking in the loop transmission at the natural frequency of the axis, then rolling off again with a -1 slope until after crossover. It is important to note that the stability of the system depends on the crossover frequency f. If crossover occurs between approximately 150 - 200 Hz, the 183 Modeled FSM QUAD Azimuth Negative Loop Transmission, Using Gc2, .9 - 3 [kHz] Without Rate Feedback -- -- With Rate Feedback 0 'a -5 C -10 103 - --- - - -130 -140 - -- -150 U) Cl) CU -160 0~ -170 -c . . --. - --. -.---.- -- - .- ---.- -.---.- ---..- -- --- ---.- -.-e------ [Hz] - - ---F-r--e-....--.-.--- -- -- --.- -.-.---.-.- - - - ---- ---- - --- - - - - -.-- - - - - - - - -- - - - - -- - - -- -.-.-- -.-- -- - - - --.- - --.--- - -- --. ----. -- .- .-..-.-.- -- - - - - . -180 -190 10 3 Frequency [Hz] Figure 5-26: Modeled FSM quad cell Azimuth axis negative loop transmission near crossover using Ge2 (s) with K = .0435. 184 phase margin of the system will be less than 300. Figure 5-26 shows the negative loop transmission near the crossover frequencies. The system has a crossover frequency of approximately 1.2 kHz, phase margin lDm - 340 and a gain margin Gm = 6.2 dB. Because of the high loop gain, the disturbance rejection is equal to the negative loop transmission, and in this case is over 42 dB at 10 Hz, which is on the same order as the original analog compensator. This compensator is reaching the limit of the specifications set in the beginning of the chapter. Crossing over at a higher frequency is not possible with this controller, as the gain margin would become too low. Moving the position of the lead phase bump is not advisable because too much phase margin would be lost. This compensator pushes the FSM as far as it will go without using rate feedback. Figures 5-27 and 5-28 show the Nyquist diagram for this system. There are no encirclements of the -1 Point, which means that the system will be closed loop stable. The maximum peaking of the closed loop system should be just under 5 dB. Figure 5-29 shows the modeled closed loop response of the system and Figure 5-30 shows the modeled step response of the system. The closed loop frequency response shown in Figure 5-29 is very similar to the closed loop response of the system when using Gc1(s) as shown in Figure 5-22. Their are several small differences between the plots. The low frequency values of the closed loop response are set an unity when Gc 2 (s) is used. GC1(s) produces low frequency values that are below unity, implying steady state errors. Second, the maximum peak of the closed loop response is about 1 dB lower when Gc2 (s) is used as compared to Gc1 (s). This is because of the increased phase margin from the lead compensator of G, 2(s). The step response of the system, shown in Figure 5-30, is also very similar to the step response when Gc1 (s) is used. However, the lag compensator used in G, 2 (s) introduces a longtail transient into the step response that doesn't die out until about 13 ms. This long-tail transient introduces about 2% error until it dies out, which is acceptable given the increased low frequency disturbance rejection. Table 5.3 summarizes the predicted performance of Gc2 (s). 185 Modeled FSM QUAD Azimuth Nyquist Diagram, Using G2 250 04 AL Without Rate Feedback With Rate Feedback 200 1- 150 100 50 .... ... ..... ... .......... E -50 100 C -200 -250 -300 -200 -100 0 100 200 300 Real Axis Figure 5-27: Modeled FSM quad cell Azimuth axis Nyquist diagram using G, 2 (s) with K = .0435. 186 Modeled FSM QUAD Azimuth Nyquist Diagram, Using G , Zoomed In Showing -1 Point 0.6 6 dB dB 0dB - dB ----- Without Rate Feedback With Rate Feedback 0410 dB -10 dB 0.2 - ..... ... ... .... .. 20 dB - - - --- -20 dB - --- 0 E -0.2 .. .. ... .. .. ... .. ... ..... ... .... .. ..... .. .. ... ..... ... .... ... ... .. ... .. ... .. .. .. . N- -0.41- -0.6 - -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 Real Axis Figure 5-28: Modeled FSM quad cell Azimuth Axis Nyquist diagram near the -1 point using G, 2 (s) with K = .0435. 187 Modeled FSM QUAD Azimuth Closed Loop Response, Using G , 5 - 3,000 [Hz] 5 ...... Without Rate Feedback ---- With Rate Feedback ~ . C Ru -10 LI I III I ..... 10 10 0~~i a) -1c 10 2103 i................ .. . .. I . . . .. . .... -E 0 ... . -.. ... - .. . .I . . . . . .. . .. . .. .. . .I .. . .. .. .. .. ............... ... .. ....... . . . . ... . ... .H ... .... . .. a. -1E ... ___ _____.... ...... ................ .._ ______.. ....... J......L.... .. .. . . . . . . . . . . ..__ -2C 101 102 Frequency [Hz] Figure 5-29: Modeled FSM quad cell Azimuth axis closed loop frequency response using G2(s) with K = .0435. 188 __ __ __ _ Modeled FSM QUAD Azimuth Normalized Step Response, Using Gc2 1.6 Without Rate Feedback ----- With Rate Feedback 1.4 - - 1.2 - - . -..---.-..--.-.-..-.---.-.-- -..... a> . .-.- 1 - - E 0.8 . ... .. ... ... ... ...... ....... ........ . N E 0 Z 0.6 -. 0.4 - .. . . ... .... ...... ... .... ... ... . .. . .. .... . ... . .. . ... .. . ... 0.2 0 0 0.5 1 2 1.5 2.5 3 3.5 4 Time [ms] Figure 5-30: Modeled FSM quad cell Azimuth axis step response using G, 2 (s) with K = .0435. 189 Parameter Without RFB With RFB K 0.0435 0.0435 [kHz] 1.19 1.25 Gm [dB] 6.3 5.9 [deg] 34 43 D,(s) © 10 Hz [dB] 42 42 -3 dB Frequency [kHz] 2.16 2.13 fc <Dm Table 5.3: Modeled performance specifications of the FSM quad cell Azimuth axis using G, 2 (s), both with and without rate feedback. Dual Lead With Low Frequency Integrator And Decreased a Gc2 (s) was designed to provide the highest bandwidth without using rate feedback. However, rate feedback provides a substantial phase jump from the original system around the crossover frequencies. For this reason, a new compensator will be designed with rate feedback in mind. Using G, 2 (s) as a starting point and then manipulating to improve performance for the rate feedback system, the new compensator obtained is Gc 3 (S) = K (s + 27r - 50) s (27r - 250)-fs + 1 ((27r -2500)1s + 1 (27r - 10000)' ((27r -31623)- s+ 1 s+ 1 The second lead acts to boost the phase margin more than it subtracts gain margin. The frequency response of Ge3 (s) is shown in Figure 5-31. The performance of the compensator is best revealed by examining the negative loop transmission, plotted in Figures 5-32 and 5-33. The negative loop transmissions in Figure 5-32 provide great insight on the performance of the compensator. This compensator was designed to be used for the mirror with rate feedback, and the non rate feedback curves serve only as a reference. The negative loop transmission of the Azimuth axis appears very similar to the loop transmission of the original analog controller. Figure 5-33 shows the negative loop transmission near the crossover frequencies. The system has a phase margin <Dm P 36* 190 Compensator Gc3 Frequency Response, 1 - 100,000 [Hz] ! I I !i I CD . . - - 0 5 -10 -15 -20 -25 10 60 0 010110210 10 410 10 102 103 10 .+ 10 ........ 40 20 4| 4 a) 0 a) a- -20 I -40 I I -80 10 I j 1 -60 II 101 lii I 103 102 104 Frequency [Hz] Figure 5-31: Modeled frequency response of the digital compensator G, (s). 3 191 10 5 Modeled FSM QUAD Azimuth Negative Loop Transmission, Using Gc 3, 5 - 3,000 [Hz] 50 40 30 -o 0) . 20 V C 0) (U ..... ---.. ......i-- .... ....... 0 Without Rate Feedback With Rate Feedback - - - I ------- ------ -.....-.... -. . .. . . 10 ------ I - - - - . .. .. ....... ........... -10 102 101 103 -50 _1 -00 ...... ...... ...... -150 - -- . * . . ... ' .1 ...... ......... -- -- -- --- ___---- -__-- ... .. .... ...... . ... -- _______-_ -___ _ - -- - -- - - - - -- - - -200 101 102 103 Frequency [Hz] Figure 5-32: Modeled FSM quad cell Azimuth axis negative loop transmission using Gc3 (s) with K = .043. 192 Modeled FSM QUAD Azimuth Negative Loop Transmission, Using Go, .9 - 3 [kHz] Without Rate Feedback ------- With Rate Feedback ,O - -1 103 -13 -14 -15 0 - - -- --- 0 - - .. . - . . .. . .-. -o - ---. . -.- ---l- --- l- --- ---.- -- --.- --.- --.-.. . . . . . . . .-. -16 -c -17 -18 0 - - - . ..- . . . . . . . . . .- -. . .. . .- - -. . ..- -. 00. -..-.-..--..--- - - - -..-.- . . . . .. . . . . .- -.-- - -.-- - - -.-- - -.-- - - - -..--.-- - .-..--.-.--- ..---.--- ..-.--..--.-. -.--..-.-- -..-- .-...--- .--.-.--- .-..-- -19 -20 . . . .. . . .-.-. . .- -. .- - - - -.. -. --... - .......... -.-.----..--.--.----.-. --.---.-.----.---.---.-... . .. .. . .. .. .. . . . . . . . . . . . . . .. .---..-- . -- .. . .. . .. .. . 10 3 Frequency [Hz] Figure 5-33: Modeled FSM quad cell Azimuth axis negative loop transmission near crossover using G 3 (s) with K = .043. 193 and a gain margin G, = 6.2 dB, crossing over at f, ~ 1.32 kHz, a 32% improvement over the original analog compensator. Because of the high loop gain, the disturbance rejection is equal to the negative loop transmission, and in this case is over 42 dB at 10 Hz, which is on the same order as the original analog compensator. Figures 5-34 and 5-35 show the Nyquist diagram for this system. There are no encirclements Modeled FSM QUAD Azimuth Nyquist Diagram, Using G3 L 250 a A 0 Without Rate Feedback With Rate Feedback 200 150 .... .. .... ... .. ... ..... .. .... .. .. ......... ... .. ... .. ... .... ...... ... .. ..... .. ... .... .. ... ... ... . 100 .a -. 50 0 E -50 -100 - -150- -200 -250 - -300 -200 -100 0 100 200 300 Real Axis Figure 5-34: Modeled FSM quad cell Azimuth axis Nyquist diagram using Gc3 (s) with K = .043. of the -1 Point, meaning that the system will be closed loop stable. The maximum peaking of the closed loop system should be just under 5 dB. Figure 5-36 shows the modeled closed loop response of the system and Figure 5-37 shows the modeled step response of the system. The closed loop frequency response shown in Figure 5-36 is 194 Modeled FSM QUAD Azimuth Nyquist Diagram, Using G 0, Zoomed In Showing -1 Point 0.6 l-6 dB 4 2 dB 0 dB Without Rate Feedback -dB -- With Rate Feedback 0.4 - -10 dB 10 dB 0.2 -20 dB 20 dB 0> 0'-- - -+- -- E -0.2- -0.4- ..2 -1 -0.8 -0.6 Real Axis -0.4 -0.2 0 0.2 Figure 5-35: Modeled FSM quad cell Azimuth axis Nyquist diagram near the -1 point using Gc3 (s) with K = .043. 195 Modeled FSM QUAD Azimuth Closed Loop Response, Using GC3, 5 - 3,000 [Hz] 5 - ---- Without Rate Feedback With Rate Feedback _ i - ... ...... + .... .. .. _II.. I I| 0 3 C -5 .... L...____ .. ...... .L J ..........1 ___ I I..L I _____ -10 10 10 10 - - 0 I I -50 I a) I I I -100 a_ -150 ................... I .. .. ______ ..... I _____ I I i ± _____________ I ..... .... -200 101 102 10 Frequency [Hz] Figure 5-36: Modeled FSM quad cell Azimuth axis closed loop response using G, 3 (s) with K =.043. 196 Modeled FSM QUAD Azimuth Normalized Step Response, Using G 1.6 Without Rate Feedback ---- With Rate Feedback 1.4 - - .- ---.--.-- ---. --- -- -- -..----.- -.- - .--- --. - N --.- 0 0.4 . .. . .. . 02 0 1 2 3 4 5 6 Time [ms] Figure 5-37: Modeled FSM quad cell Azimuth axis step response using G, 3 (s) with K = .043. 197 very similar to the closed loop response of the system when using Gc2 (s) as shown in Figure 5-29. Figure 5-37 showing the step response of the system is also very similar to the step response when G, 2 ( s) is used. The same long-tail transient is present in Figure 5-37 because of the lag compensator Table 5.4 summarizes the predicted performance of Ge3 (s). Parameter Without RFE With RFB K 0.042 0.042 [kHz] 1.26 1.32 Gm [dB] 6.8 6.2 4Dm [deg] 28 36 D,(s) @ 10 Hz [dB] 42 42 -3 dB Frequency [kHz] 2.16 2.21 fc Table 5.4: Modeled performance specifications of the FSM quad cell Azimuth axis using Gc3 (s), both with and without rate feedback. 5.2.5 Experimental Results This section presents the experimental results from implementing compensators Gc2 (s) and Ge3 (s) digitally. Each compensator was tested on the Azimuth axis of the FSM with the Elevation axis under low bandwidth control to avoid coupling issues. Experimental Results Using Gc2 (s) Without Rate Feedback The Gc2 (s) compensator is designed to push the bandwidth of the FSM as high as possible without using rate feedback. The experimental negative loop transmission is shown in Figure 5-38. The experimental data matches up with the simulated response very well throughout the plot. Figure 5-39 shows the experimental negative loop transmission near the crossover frequency. There are some small discrepancies in the experimental data just after crossover. Figure 5-39 shows several mini "bumps" in the response right after crossover. The 198 Experimental FSM QUAD Azimuth Negative Loop Transmission, Using G , 5 - 3,000 [Hz] 50 Experimental S......... 40 .......... Model 30 20 -Cu M' C 10 -.. .I -.-.-.-. I.... I ..................... 0 ..- ........ -------- --- - . !- TI..... -10 3 1022 1 10 103 -40 -60 -80 I............. ~~. .. . -. . .. - -~- CD-100 III' --.-. - ~--. ~~ Cu - . - .. -- a- -120 -140 -160 -180 _____ 10 . _ .... LJ.....1[ ......... __ 102 10 3 Frequency [Hz] Figure 5-38: Experimental FSM quad cell Azimuth axis negative loop transmission using G 2 (s) with K = .0435, 5 Hz - 3 kHz. 199 Experimenatal FSM QUAD Azimuth Negative Loop Transmission, Using Gc2, 5 - 3,000 [Hz] ---- _ Experimental ------- Model --- - 0 -- Model --------------------------------- a -10 10 -140 ------- .--- .-- . ---.-.-.- .-.-. - 1 50 - - .. .- . . . . . . . . . .-. - -.-.-.-. - 1 60 - - - - -180 -- ... --- ............ -........... -190 -- -.-.-- -.-.-.-- - .-- - . - . -.-. .-.- .-.-. - -.-. - .-- ..-- - .- - - -.- -.- -..-.-. .-.- -170 -- -.-.-.- .......... --..--.--. ----.--..-..--.--.-.----.--.----.--- 103 Frequency [Hz] Figure 5-39: Experimental FSM quad cell Azimuth axis negative loop transmission near crossover using G 2 (s) with K = .0435, 2.25 - 3 kHz. 200 reason for these bumps is not apparent. Ignoring them for the moment, Figures 5-40 and 5-41 show the experimental Nyquist diagram. Experimental FSM QUAD Azimuth Nyquist Diagram, Using Gc2 250 F- j~O B Al Experimental Model 2001- 100 C Ca 50 E -50 -200 0 100 100 200 300 Real Axis Figure 5-40: Experimental FSM quad cell Azimuth axis Nyquist diagram using Gc2 (s) with K = .0435. As expected, there are no encirclements of the -I point, so the system is closed loop stable. From this data, the maximum peak of the closed loop system is expected to be no more than 6 dB. The experimental closed loop response is shown in Figure 5-42, and the step response is shown in Figure 5-43. Whoa! The closed loop response diverges away from the predicted response near the crossover frequency. In fact, the maximum peak seems to occur at the same place where the "mini-bumps" were in the negative loop transmission shown in Figure 5-39. 201 Experimental FSM QUAD Azimuth Nyquist Diagram, Using G , Showing -1 Point 0.6 F 2 dN SdB 0 dB -jdB dE Experimental Model /7d 0.4 H 10 dB - 0.2 20 dB D) C 0 - -20 -dB +........ ..... - E ....... ... ..... ...... ... ... ... ............ ...... .............. ..... .. .... .. ........ .... ....... -.. -0.2 -0.4 F -o.eL6 -1.2 -1 -0.8 -0.6 Real Axis -0.4 -0.2 0 0.2 Figure 5-41: Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using Gc2 (s) with K = .0435. 202 Experimental FSM QUAD Azimuth Closed Loop Response, Using Gc2, 5 - 3,000 [Hz] 20 - Experimental -- Model - - 10 -L- 0 CO -10 2 10 - 102 103 0 -50 . . . .. .... . . . . . . .... .. -100 I -i U -150 -C .. . . . . .. I - I I III - -200 -250 10 1 - i - - - - 1 103 10 2 Frequency [Hz] Figure 5-42: Experimental FSM quad cell Azimuth axis closed loop frequency response using G, 2 (s) with K = .0435. 203 Experimental FSM QUAD Azimuth Normalized Step Response, Using G2 2 - -.-- - --- - -- -- - 1.8 1.6 - --. - -.-.-- -. Experimental Model ...- .-- -. ....-. - - -- - - - - -- -- - .- - .- - - - -- - - .- - - -.- - - - - .- -- - - .--- -- - - - - - .-.- - -- - - - - .-.-.- - - - .-.- - -- - ..- -.-- - .-.-..--- - .- - -- - - - -.- - .- - - - -- -. -.- - - - - --.-- - - 1.4 - - -- - -.-.-- / - - -- - - - - -- . -- - - ---.- 1.2 E 1 - --- . . - -- -- - -- - -- \ - -- -.~ -~' . - : -- : -7 - . . . . .. ~0 N - .. ...... - . .. ...... E0 z 0.8 0.6 0.4 -- - - - - - - - -- -- - - -- -- - -- -- - - - .- - -- - - -- - - -...... ......... ........... ................ ...... -- -- -- - ....... -- - -- -........ -.- - -...... - - - -..- - - - - -- - - - - - ...... - - - - - - ....- -... - ..- - - - - - --... - .... - -- 0.2 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Time [ms] Figure 5-43: Experimental FSM quad cell Azimuth axis normalized step response using G, 2(s) with K = .0435. 204 The step response in Figure 5-43 also diverges from the predicted response to match the experimental closed loop response. The step response also shows that there is a constant, steady state oscillation present in the system. Upon further investigation, it was determined that the oscillation frequency was gain dependent: the frequency of the oscillation changed when the compensator gain was changed. This leads to a hypothesis that the digital controller is introducing these oscillations as a limit cycle in the digital control. Technically, the compensator still meets the specifications, but should not be used with these oscillations. Their are 3 ways to remedy the situation: decrease the gain of the compensator until the oscillation disappears, use a faster sampling rate or implement the compensator with analog components. Decreasing the gain of the system helps, but then the maximum achievable bandwidth is reduced. The digital compensator is running as fast as the hardware will allow already, and building an analog compensator is beyond the scope of this thesis. Hopefully implementing the rate feedback will help eliminate these oscillations near crossover. Table 5.5 summarizes the performance of the compensator. Parameter Modeled Experimental [k Hz] 1.19 1.21 Gm [dB] 6.3 6.2 (Dm [deg] 34 32 Dr(S) ( 10 Hz [dB] 42 42 -3 dB Frequency [kHz] 2.16 2.05 f, Table 5.5: Experimental performance specifications of the FSM quad cell Azimuth axis using Gc2 (s) without rate feedback and K = 0.0435. Experimental Results Using Gc3(s) With rate feedback The Gc3(s) compensator is designed to push the bandwidth of the FSM as high as possible using rate feedback. Before attempting to implement the compensator with maximum bandwidth, it is prudent to crossover at a lower frequency to avoid the oscillations seen with GC2(s). Using K = .0210 puts the crossover frequency near 1 205 kHz. The experimental negative loop transmission with this gain is shown in Figure 544. Experimental FSM QUAD Azimuth Negative Loop Transmission, Using Gc3, K = 0.0210, 5 - 3,000 [Hz] ---- - - - - 20 - 10 -- ------- --.- ...... . ...... .- -.. . . ..------.... . -.. ........ --....... . . . . ......... ... 30.................. --- - -10 -- - ---.. -- 1..................... .......... 0................. -40 -60 40 - - .... . . .. ------.-.-.-.---.-. 2 -0- --- -- - --- - -- - 101 -.- - -- -.- -. -. - - - .. - - -- - --.--. .. . -. 102 --- .-- -- .. . . . .... - -- - ---.- _ - ---- I .... ... ................................ - --.--...- ... I........... ............ .......... - 103 i*.[.....1111 .......... - .-.-... .-. .. .-. ..- -. --.- - - - -. -.- --. 100 U) CU CU "C a- - .. -. - - . -80 U) - + . . . . . . ..-- 102 10 0 ....... I..... L L i i. - -- --.-- . -..-.. -.-- -----.. - Model ---------- -- --- C cc Experimental ---- - -.. -. . -.-. -. .- - - -.--. -.-.-.-. --- -... . .-. - - -.--. .. 103 Frequency [Hz] Figure 5-44: Experimental FSM quad cell Azimuth axis negative loop transmission using G, 3 (s) with K = .0210, 5 Hz - 3 kHz. The experimental data does not match up as well with the model as the data gathered with G, 2 . There appears to be an extra pole zero pair in the negative loop transmission near 100 Hz. This discrepancy does not affect the predicted crossover frequency, predicted gain or phase margins, or predicted responses, and thus can be ignored (a thorough investigation of this discrepancy was not performed because of time restrictions). The data matches well outside of this discrepancy. The crossover frequency is about 1 kHz, with about 10 dB of gain margin and about 500 of phase 206 margin. The disturbance rejection at 10 Hz is approximately 36 dB. Figure 5-45 shows the experimental Nyquist diagram near the -1 point. Experimental FSM QUAD Azimuth Nyquist Diagram, Using G , K = 0.0210, Showing -1 Point 0.6' P 6 dB 4' d 2 0dB - dB f4 d \-- YExperimental Model 1-0-0 04 -10dB // 0.2. 20 dB -20 dB E' 0 . ...... . . .. ..... -0.2 ----/ - -0.41 /1 -0.6 : -1.2 -1 -0.8 -0.6 Real Axis -0.4 -0.2 0 0.2 Figure 5-45: Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using G, 3 (s) with K = .0210. As expected, there are no encirclements of the -1 point, so the system is closed loop stable. From this data, the maximum peak of the closed loop system is expected to be no more than 2 dB. The experimental closed loop response is shown in Figure 5-46, and the step response is shown in Figure 5-47. As with the G, 2 compensator, the experimental closed loop and step responses of the system diverge slightly from the predictions. However, there are no oscillations present in the step response. The maximum overshoot of the closed loop response is 207 Experimental FSM QUAD Azimuth Negative Loop Transmission, Using Gc3, K T-- -Experimental -------- Model 5 - -..-... - = 0.0210, 5 - 3,000 [Hz] - -- -- 0 C ... .. . . . . . .. . . . . -5 ---- ------- ----- - ========:_ ~ - - - - -- __________I~- - - --- _ -10 -15 0 1 10 102 0 -50 ..... .*'I i -100 cc _C= a. I. -150 -200 -----..-..---. -----.---. --.--. ----.-. --- ---------- --- -- - -.--- - .. -. -.. - n 250 10 102 10 Frequency [Hz] Figure 5-46: Experimental FSM quad cell Azimuth axis closed loop frequency response using Gc3 (s) with K = .0210. 208 Experimental FSM QUAD Azimuth Normalized Step Response, Using G , K = 0.0210 1.5 Experimental Model .. :111 CL T~ 111111611611111 1~ .1 -Ir7r 17- 1 1 ........... E -0 CD N Z0 0.5 I o 0 1 2 3 5 4 6 7 8 9 Time [ms] Figure 5-47: Experimental FSM quad cell Azimuth axis normalized step response using G, 3 (s) with K = .0210. 209 over 5 dB compared with the predicted 2 dB. The step response has a bigger overshoot and longer settling time than predicted. The reasons for these discrepancies is not apparent and warrants further study (for more discussion, see Section 6.2). However, the steady state oscillations observed with Gc2 (s) have basically disappeared. Table 5.6 summarizes the performance of the compensator with K = .0210. Parameter Model Experimental K 0.021 0.021 [kHz] 1.02 1.02 Gm [dB] 9.3 10 (Dm [deg] 48 49 D,(s) © 10 Hz [dB] 39 36 -3 dB Frequency [kHz] 1.81 1.83 fc Table 5.6: Experimental performance specifications of the FSM quad cell Azimuth axis using G,3 (s) with rate feedback and K = .0210. Proving that the digital compensator can provide oscillation free control, the bandwidth can now be pushed up further. The experimental negative of the loop transmission is shown in Figure 5-48 with K = .0336, producing f, = 1.42 kHz. The experimental data matches the modeled negative loop transmission as well as the previous value of K did. Again, the discrepancy does not affect the response near crossover and can be mostly ignored. The crossover frequency is about 1.42 kHz, with about 6 dB of gain margin and about 350 of phase margin. The disturbance rejection at 10 Hz is approximately 40 dB. Figure 5-49 shows the experimental Nyquist diagram near the -1 point. As expected, there are no encirclements of the -1 point, so the system is closed loop stable. From this data, the maximum peak of the closed loop system is expected to be no more than 6 dB. However, if the data matches what has been observed thus far, the maximum closed loop peak will be higher than expected, and the step response will have more overshoot and a longer settling time. The experimental closed loop response is shown in Figure 5-50, and the step response is shown in Figure 5-51. 210 Experimental FSM QUAD Azimuth Negative Loop Transmission, Using G c, K = 0.0336, 5 - 3,000 [Hz] 50 Experimental -. .-..------------------- 40 -- - ------ -- - --- ------ Model 30 ~1) V C 0, Cu 1...1......I 4 ........ ...... 10 -- -- -- Ii 103 1.... I ......I7V I. -60 .. ..... I 102 10 -40 I iii ii -10 -80 I i 0 'a . .... ~~~...... ................ .... ........... . 20 -- 7-7-------- -----. - -..- -100 Ca 0- -120 .. i..... I 'ii... -140 - -- -160 -_-_--- -180 - _-_-- -_ __-_-__-- _. 101 - -- -- - - -. - - -.-- L- -_-_-_. ...--.--.-- 102 Frequency [Hz] - - -- - - - T' -.-.-- _ ..- - - - - - - -- L-- .-.-- _- - _- -_- _ - _ - - - _ - -- -- - 103 Figure 5-48: Experimental FSM quad cell Azimuth axis negative loop transmission using G, 3 (s) with K = .0336, 5 Hz - 3 kHz. 211 Experimental FSM QUAD Azimuth Nyquist Diagram, Using G , K = 0.0336, Showing -1 Point 0.6- \ 6 dB 0.4' dk, 2 dB 0dB Ad - dB Experimenta -/-Model 10 dBdB 0.2 E E -- - 20 dB ---------- - -0.2 -0.4- -1.2 -1 -0,8 -0.6 Real Axis -0.4 -0.2 0 0.2 Figure 5-49: Experimental FSM quad cell Azimuth axis Nyquist diagram near the -1 point using Gc3 (s) with K = .0336. 212 Experimental FSM QUAD Azimuth Negative Loop Transmission, Using Gc3, K = 0.0336, 5 - 3,000 [Hz] - .. 15 --10 - Experimental Model .. ..I . EF 5 0) 0 -4 I ____________________ -__ _______ ~ -5 -10' _____--S 1 10 ____ J ___ i __ ~ i____ i __ _______ 102 10 3 0 - -50 0 -100 - - -- - -I -c -150 CL I -200 _____ I II ___ -250 101 103 102 Frequency [Hz] Figure 5-50: Experimental FSM quad cell Azimuth axis closed loop frequency response using Gc3 (s) with K = .0336. 213 Experimental FSM QUAD Azimuth Normalized Step Response, Using Gc 3, K = 0.0336 1.6 - -- - - - .. - - - ----- Experimental -- - -------- Model ---.---------. - 1.4 -- - - - 1.2 - - -. - - - - - - -- -- --- -.-. .... ---- - 1 .~.. -w ~ ~ ~- - .-- ~ W 1 - E . -.- -.-. - . -. - - - - -.- -.- 0.8 z0 -- -.-- -- - 0.6 .--------.------ .-.----.-.--------.-- 0.4 0.21 0 1 2 3 4 5 Time [ms] 6 7 8 9 10 Figure 5-51: Experimental FSM quad cell Azimuth axis normalized step response using Gc3 (s) with K = .0336. 214 As expected, the closed loop response shows much higher peaking than the model predicts. Furthermore, the step response shows higher overshoot, an increased settling time and the steady state oscillation. When the gain is push up further, the closed loop peak continues to grow, but also shifts out in frequency. The steady state oscillation also grows in amplitude and increases in frequency as the gain is pushed out further., just as observed when using the G,2 compensator. Because the frequency of the oscillation changes with gain, the resonance is probably not coming from the FSM or any other piece of hardware. No conclusions can be drawn from the data at this time, and the issue warrants further study (for more discussion, see Section 6.2). Aside from the oscillation, this compensator pushes the bandwidth of the FSM Azimuth axis near its limits. Table 5.7 summarizes the performance of the compensator with K = .0336. Parameter Model Experimental K 0.0336 0.0336 [kHz] 1.43 1.42 Gm [dB] 5.3 6 [deg] 32 35 D,(s) @ 10 Hz [dB] 43 40 -3 dB Frequency [kHz] 2.32 2.29 fc <bm Table 5.7: Experimental performance specifications of the FSM quad cell Azimuth axis using G, 3 (s) with rate feedback and K = .0336. 215 216 Chapter 6 Conclusions and Suggestions for Future Work This Chapter presents a summary of this work and suggestions for future efforts. Section 6.1 summarizes the work accomplished and highlights the possible application of methods and techniques used in this thesis in other hardware setups. It also discusses the hardware limitations imposed on the closed loop response by the FSM. Section 6.2 provides suggestions for future work to continue to improve the closed loop bandwidth of the FSM. Finally, Section 6.3 presents the overall conclusions from the work completed during the thesis. 6.1 Summary The performance of the Fast Steering Mirror in quad cell feedback mode can be improved by implementing a new compensator in the feedback path. The bandwidth of the system can be improved by 20% without using rate feedback, but can also be improved by 40% by using the same rate feedback technique of the original analog compensator. The mirror, as built, can be used in applications requiring a -3 dB frequency of 2.2 kHz, approximately 10% higher than the original analog compensator. The compensation methods are not only applicable to this particular FSM. The designed compensators can be implemented in any FSM system, with any type 217 of sensor. The spiral acquisition algorithm is also not limited to use in this specific setup. In a basic form, the spiral location block in Simulink only needs two input sensors to determine position and can output steering commands to any hardware with cartesian axis control. This can be useful for other work in the laboratory requiring the acquisition of an optical sensor. 6.1.1 FSM Hardware Limits There comes a point where electrical control cannot solve inherently mechanical problems. The main obstacle to improving bandwidth further in this system is the first dominant "doublet" in the open loop frequency response of the FSM. Crossing over beyond this doublet would lead to further problems, as there are several more of these doublets beyond 2.5 kHz. These doublets a are mechanical problem that must be dealt with in the mechanical realm. Eliminating the first doublet could push the closed loop bandwidth of the system beyond 2 kHz. Of course, this would require a complete redesign of the FSM, which makes this discussion moot. 6.2 Suggestions for Future Work This thesis has tried to implement a digital controller with the goal of increasing the closed loop bandwidth as high as possible given the inherent hardware limitations of the FSM. While these improvements will not be incorporated into the MarsComm program, they can be included in any new programs using FSMs at Lincoln Laboratory. This section suggests possible future work to complete both on the compensator and on the FSM itself if the goal is to continue to improve the closed loop performance of the FSM in optical tracking mode. 6.2.1 Track Down Steady State Oscillations Source The experimental results presented in Section 5.2.5 show steady state oscillations when the gain of the compensator is pushed up. The frequency of these oscillations is 218 gain-dependent (and with low enough gain these oscillations are not present). Little more than conjecture is prudent with the data collected, but the hardware is probably not causing a gain dependent oscillation. The best guess with the data available is that the digital controller is introducing some sort of limit cycle, either due to the A/D or D/A introducing quantization or as an artifact due to the phase lag of the digital system. If a digital controller will be used in the future, it is prudent to locate the source of these steady state oscillations and take the necessary steps to eliminate them. Most likely, a higher resolution A/D or D/A subsystem will be required. 6.2.2 Faster Digital Control One limitation of the hardware used in these experiments outside of the inherent limitations of the FSM is the speed of the digital compensator. The digital compensator can be run reliably at 40 kHz (and slightly less reliably at 45 - 50 kHz), which introduces a digital delay into the system. This delay can be reduced by improving the sampling frequency of the digital controller by upgrading the hardware running the compensator or using a different interface besides xPC. 6.2.3 Controller Implementation in Analog A major benefit of using a digital controller was the ability to test different compensators in real time by changing the parameters digitally. This flexibility leads to the undesired effect of phase delay, effectively reducing the phase margin of the system. By implementing any of these compensators in (sufficiently fast) analog circuitry, this phase delay is not an issue and the phase margins off all systems will rise by about 50. For the systems with only 300 of phase margin, this is an almost 20% gain at relatively low cost (building analog circuits is a bit harder than writing code in MATLAB, and after the circuitry is built, it is more difficult to modify). 219 6.2.4 FSM Modifications After exhausting all control options to improve the performance of the FSM, it might be necessary to modify the hardware directly. There are two main hardware changes that could be implemented in the FSM without a complete redesign of the hardware or control methods. Remove the KAMAN Sensors The KAMAN sensors in the FSM are very practical to have, as they provide a direct measurement of the mirror angle and allow feedback without the use of external sensors. However, they do add weight and complexity to the mirror. The KAMAN target plate is attached to the underside of the mirror, and might introduce several more modes into the system than would be present without them. One possible remedy would be to remove the sensors completely, eliminating several vibrational modes of the system. The FSM would then have to be driven open-loop before acquiring the quad cell, but the spiral acquisition algorithm should be able to accomplish this easily (though at a much lower frequency than when using the algorithm in closed loop KAMAN mode). Improved Electromagnetic Actuation The voice coils in the FSM work well enough in the system, but like any component, an upgrade wouldn't hurt. The voice coil actuators could be replaced with a similar type of non contact linear motor. Development of such motors for the use in ultra fast tool servos has taken place in the Precision Motion Control Laboratory at MIT. These actuators provide extraordinarily high accelerations, and integrating them into the FSM would greatly improve stiffness and performance. 220 6.3 Conclusions The main contribution of this thesis is the characterization of the FSM hardware and the implementation of a digital compensator to achieve the highest bandwidth possible given the hardware limitations. The results presented serve as a baseline performance report on this particular FSM for Lincoln Laboratory personnel wishing to incorporate the FSM into a future project. The thesis also serves as a starting point for hardware modifications to the FSM, including complete redesigns. 221 222 Appendix A State-Space Representation of a "Doublet" X1 X2 k F b Figure A-1: Simple model of one axis of FSM. mi represents the part of the FSM that is directly monitored by the KAMAN sensors, and m 2 represents the decoupling mass. 223 State-space representation of the position x1 of mi, with a force input. b(ml+m 2 ) k(ml+m 2 ) mIm2 mlm2 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 B= 0 0 1 C = 10 mibM2 ?flr2] D = 10 State-space representation of the position x2 of M 2 , with a force input. b(mi+m 2 ) k(ml+m 2) mlm2 mlm2 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 C = 10 0 0 0 b mlM2 k MIM2J D = [0 224 Appendix B Azimuth KAMAN State-Space Model The following are the state-space matrices describing the model derived from the FSM Azimuth KAMAN frequency response data shown in Figure 3-3. 225 0o]= [0 0 0 0 0 0 0 0 0 ST0-6F6IT 0]=3 = 9 101-8,01-8 0 Vol 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 398- 0 0 0 0 0 0 0 0 0 0 0 0 I 0 0 0 0 99 - 0 0 0 0 0 0 0 0 91,- 0 0I 0 R01 - 89110 91,- 90T - 1- ,01- 0 0 0 -91- 9-1 0 1101 00060 R011 0 69Z 0 0 Vol1 8011T 692Z 0 0 1O1 8011 0 6912 1,0 * 801-1 6922 0 901 * 91- 901 - 9- * 0 1c10 0 901 801 0 0 0 c1- -l C1- 0 901 * 97- 09Z - 0 0 So 10!- 1,1 Appendix C Elevation KAMAN State-Space Model The following are the state-space matrices describing the model derived from the FSM Elevation KAMAN frequency response data shown in Figure 3-7. 227 -127.5 -4.925 - 105 -20 0 -30 - 106 -1.2 -2.8 . 10 6 -20 -1.3. 106 9900 106 9900 106 9900 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -90 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -9900. -290 -6.86- -30 107 0 -160 106 -2.8. 108 -20 0 0 0 0 0 0 0 0 11. C =[0 1.942.105 0 228 0 -1.3. 0 0 0 0 01 0 0 0 0 -2.265- -20 -1.3. 0 0 -3.003 - 108 9900 Appendix D Azimuth Quad Cell State-Space Model The following are the state-space matrices describing the model derived from the FSM Azimuth quad cell frequency response shown in Figure 3-10. Due to size constraints, some matrices have been broken into several sections. The subscripts reference which columns are included in each piece. 229 11 0 0 I LO - 0 0 I 0 0 N 0 L0 o 0l 0 o o I 0C 0 0q N 0 o 00 o 0 000 0 0 o 0 0 0 00 0 000000000000000000000000000000000 0 000 0 0 00 0 o 0 o o 00 o o 0 o 0 0 00 00 o o 0 0 0 o 0 000 00 0 000 0 0 0 0 0 0 c 0 o 0 0 0 o O o o o o o oo 0 000000000000000000000000000000000 0000000000000000000000000000000000000 0 0 0 ~000000000000000000000000000000000000 o o 0 0 0 O 00 0 0 0 00 0 000 c 0 O 00 0 0 0 00C 0 00 0 00 0 0 000 c 0 00c0 0 0 c 0 0 c 0 0 0 O 0 O 0 O 0 0 O 0 O 11 1 I 0 I LO - 0 N O 0) N O I O Co 0 LO FI C)0 N 0 0 o O 0 N 0 00 0 00 0 0 0O 0 0 0 0 C 00 0 0 0 0 o 0N 0 0 0) 0 0 N 0O 0 0C 0c C0 0 0 0 0 0 o 0 000 0 LO 0 LO O 0 N C N O C0 0 Im c O 0 Lo 0 O . 0 0 O 0 o 0 0000 0 00 0 0 00000000000000000000000 I 00O 0 000000000000000000000000 000c00c0 0 000000 00O 0 0 0 0 0 0000O 0 0 LO 0 N c m CD O - 00 0 0 0 c o 0 0 mF 0 0 0~0~0-0-0-0~0~ 0 0 0 00000000000O 0 F 00 00 0 0 0 0 00 0 0 0 00O 0 00O 000000 0 0 00O 0 0 0O 000000 000c000c0 0 000000000 0 000 0 0 0 00 00 0 0 00O 0O 0O 0 O 0 O A2 1:30 = -150 6. 107 270 3.9 -108 0 0 0 6. 107 270 3.9. 108 0 0 0 6. 107 270 3.9- 108 0 0 0 6. 107 270 3.9. 108 -34.5 0 0 0 0 6. 107 270 3.9. 108 -34.5 0 -150 0 -150 0 -150 0 -150 -34.5 0 0 0 0 6- 107 270 3.9. 108 -34.5 0 0 0 0 270 3.9. 108 -34.5 0 0 0 0 6. 107 270 3.9. 108 -34.5 0 0 0 0 6. 107 270 3.9- 108 -34.5 0 0 0 270 3.9- 108 6 .107 0 -150 0 -150 0 -650 109 -4.1. 1 0 0 0 0 -530 0 0 1 107 -1.4. 107 -34.5 107 107 107 107 0 0 0 0 0 0 0 0 0 0 50 -8 -108 0 -8- 7 10 7 50 -8 -108 50 0 -8. 50 108 0 108 -8. 0 0 50 -8 -108 0 0 107 50 -8 -108 107 50 0 0 0 0 -8. 107 50 108 0 0 -8. 108 0 0 0 0 -35 -5.464. 0 0 0 0 1 0 0 0 0 0 0 0 0 -800 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -750 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 109 -5.4. 0 -109 -6.044 0 0 0 107 1 0 0 0 0 0 0 0 -5.4. 108 0 50 0 -5.4. 0 -8- 107 10 -5.4. 50 0 107 -5.4- -8 -108 -8 -108 0 -5.4. 50 50 0 -5.4. 0 107 0 -5.4. 0 0 -1.4. 0 0 0 -1.4. -5.4. -8-108 0 0 0 0 0 -1.4. 0 10 7 -5.4. 0 107 -1.4. 0 0 0 0 109 107 0 -1.4. 0 50 0 107 -5.4. 0 0 0 -34.5 107 -1.4- 0 0 0 -1.4. 0 107 -5.4. 0 0 -1.4. 0 0 0 0 0 -4.275. 107 -1.4. 0 10 7 -5.4. 0 0 0 0 0 -150 -34.5 3.9. 108 10 7 107 -1.4. 0 0 0 0 0 0 6 0 -150 -34.5 107 -1.4. 0 270 0 -150 -34.5 0 0 50 -8 -108 0 -7.55. 109 - A 31 4 0 170 -4 0 170 -4 0 107 - 70 0 0 - 107 70 0 0 . 107 70 0 0 - 107 70 0 0 - 107 70 170 -- 4 -0107 70 0 0 0 170 -4 0 170 -4 0 170 -4 0 170 -4 - 107 70 0 70 0 -- 4 - 107 0 170 70 0 -- 4 - 107 0 170 -- 4 CI- 107 70 0 -4 C,- 10 7 70 C, 0 170 -- 4 - 107 70 0 0 0 -- 4 - 1 7 0 0 -630 70 -- 4 -17 70 -- 4 -109 7.765 70 - 10o 70 107 0 -1.5 - 10 7 0 10 7 -1.50 -1.5 - 107 0 10 -1.5- 7 0 107 -1.5. 0 -1.5 107 - 0 107 -1.50 -1.5 107 -1.50 -107 0 -107 0 -1.5 100 0 0 100 1.5 - 107 100 100 100 1.5 - 10 7 100 0 0 0 100 1.5 - 107 100 1 - 107 0 -1 0 1 - 108 0 - 107 0 -1 - 107 500 1 - 108 0 0 500 1 - 108 0 0 0 0 100 1.5 -107 100 - I - 10 7 500 0 0 0 0 0 100 1.5- 107 100 0 0 0 0 0 100 1.5- 107 100 - 1 - 107 500 0 0 0 0 0 100 1.5- 107 100 0 0 0 100 1.5 - 100 107 1.5 - 10 7 100 0 0 0 100 1.5. 107 100 0 0 0 100 1.5 - 107 100 0 0 0 100 1.5- 107 100 0 0 0 0 1 0 0 0 0 0 -600 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 100 107 0 0 0 100 1.5- 107 100 0 0 0 -8.645 - 10 9 100 10 7 - - 107 0 - 1 _ 107 0 0 1.5 -1 7 0 -1 7 0 -- 1 - 10 7 - 107 10 - 7 - 10 7 -1 . 107 0 -- 1 1 - 1 - 107 108 0 1 - 108 0 1 - 108 0 0 500 1 - 108 500 0 1 - 500 500 500 500 108 0 1 - 1 1 - 108 0 1 - 108 0 1 - 108 0 0 500 1 - 108 500 0 1 - 108 0 0 0 0 -600 0 0 1 0 0 0 0 0 0 0 -1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 0 -9.96 0 -109 08 0 0 - 108 0 0 0 108 0 0 0 -1 500 - 0 0 -1 500 0 1 0 0 -1 500 0 - 10 08 500 0 - 10 -- 1 - 1 0 0 0 0 1 0 0 -1 -108 500 100 -380 0 0 - 1 0 0 0 9 - 107 -1 500 1.5- 107 0 10 107 0 0 0 - 1- 100 100 -107 100 0 0 0 - 0 107 - 0 0 -8.18 0 1.5 0 100 107 0 -1.5 1.5 - 107 0 0 - -1.5 100 0 10 7 -1.5- 0 0 7 0 0 0 10 0 -1.5- 0 0 170 - 0 0 170 -1.5 0 170 170 -107 0 0 0 170 -1.5 500 0 0 1- 108 0 1.195e + 010 104 -1.50 - 104 -1.5 0 - 10 4 -1.5 0 - 104 -1.5 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 104 0 0 0 0 104 5624 2.22 - 104 0 0 2.22 - 104 0 4 0 5624 0 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 104 0 0 0 0 4 4 4 10 4 4 4 10 0 104 0 -1.5 - 10 4 5624 2.22 - 10 4 0 0 0 0 0 5624 2.22 - 104 0 0 0 0 5624 2.22 - 10 4 0 0 0 0 5624 2.22 - 104 0 0 0 0 3749 1.48 . 104 0 0 -7400 3- 104 0 0 0 0 0 10 -1.5. 4 0 -1.5 - 10 4 0 -1.5 - 10 0 -3 0 0 - 10 - 0 0 0 -1.5 4 0 10 - 2.22. 10 2.22 - 104 0 -1.5 5624 5624 4 10 0 -1.5 0 0 0 -1.5. 0 0 0 - 0 0 2.22 - 104 10 -1.5 2.22 - 10 4 0 0 A 5624 5624 4 - 10 - 0 0 0 0 -1.5 0 0 0 10 -1.5. 4 0 0 -1.5 2.22 - 10 0 0 -1.5- 5624 2.22 - 104 10 . 0 5624 4 0 -1.5 0 0 0 10 -1.5- 2.22 - 104 0 0 0 -1.5- 5624 - 104 4 234 -3 - 104 0 0 9 - 104 -9-104. 0 0 0 0 0 Lo 0 CIA 0 0c 236 Appendix E Elevation Quad Cell State-Space Model The following are the state-space matrices describing the model derived from the FSM Elevation quad cell frequency response shown in Figure 3-14. Due to size constraints, some matrices have been broken into several sections. The subscripts reference which columns are included in each piece. 237 00 0000000000000000000000000000000000000000000oo 000 o o 00o oo o o 000 00 0000o 0000o 0 0 0 0 00 0 00 00 0 00 0 00 0 0 00 0 o o 0 000 0 00000o 0000000 000 o 0 0 00 o0 0 0 0 o 0 o oo o 00000000o oOo 0000000000000000000000000000000000000000o 00000000000000000000000000000000000000000o o 0 o 0000o 0 0000o 00000000000000000000000000000000000000000000000o 000 00 0 0 0 0 0 0 0 00 oo 0 000000 00000o 0000o 0 Oo 000000000 0 ooo 0000o oO O 0 0 0 0 0 00o o 000 0 0 00 oo oo 00 00 0 0 oo 0 0 00 0 oo 0000000ooo000 0 oo S 1. W 0 o 00 o o0 o 00o o o 00o 0000o 00 00o 00o o o o 000 000 o 00 oo 000 0 0 o oo o o . 0 0 a o 0* 0 0Cl o 0 o o o o o o o oo oo oo oo oo oo 0 0 0 C 0 0 00 M m0 0 o o 0 0 0 0 0 N) II 0 0 LO o I O 0 I o V 0 0 0 0 0 o 0 0 0 00 0 0 0 . O .0o 0 0 0 0 O 0 0 0 o 0 0 0 0 0 ko o 0 0 D C o o oo 0 o 0 0 0-q 0 0 0 0 0 0 0 0 00 0 oo 0 00 0 00000o 0 -r 0 0 000000 O o 0 o 0 -~ 0) o 0 0 ~ 0 0 0 00 oo o . o 0 0 0 C 0 0 00 0 0 0 O I 0s C 00 o0 0 0 o 0 0 0 0 0 0 0 O 0 0 0 -r 0 o 0o . 0 00 0 0 o o oo 0 C0 O 0 -r . 0 0 I o0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0o 0o 0 0 0o 0o 0 0 0o 0o 0 0 00oo 00oo ' c 0 c0 0 0 c 0 0000 0c 0 0 0 ~ 0 . c 0 c0 0 0 000 0 0 0 0 00o 0 0 0 0 00 00 0 0 0 0 0 I 00 0 0 . 0 0 0 0 000 0 0 000 0 0 000 0 0 00o 0 0 000 0 000 0 0 0 0 0 0 0 0 0 c 0c 0 c 0 c 0 c 0 c 0 00 c c 0c 0 c 00oo 000 0 c 0 0o 0 0 00 0 00 0 0 000 0 0o 00000 0 0 0 0 0 0 0 0o 0 0 00 0000 0 0 00 0o 0 00o 0 00 00o 0 0 0 0 0 0 0 0 00o 0 0 o 0 0 0000o 0 00o 0 0 0 o 0 00 0 0 00000000000000000000000000000 0 0 0 -r 0000 0 A21:30 = -250 1.5. 108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5 -108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5-108 350 3.4. 108 -34.5 0 -250 0 1.5. 108 0 0 0 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5- 108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5-108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5 - 108 350 3.4- 108 -34.5 0 0 0 0 0 -250 1.5- 108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5. 108 350 3.4. 108 -34.5 0 0 0 0 0 -250 1.5- 1 08 0 350 0 3.4. 1 0 0 08 350 3.4-108 0 0 0 0 0 -450 -4.065. 109 -4.255. -34.5 -1.4 -34.5 -107 0 -1.4-107 0 -1.4 -1.4. 107 0 -1.4- 107 0 -1.4. 107 -1.4- 107 -6 -108 0 0 0 0 -100 -2.94-108 200 -6-108 -100 -100 -100 -100 -100 -100 -100 0 107 0 -1.4. 200 0 0 -1.4. 0 -2.94 -108 0 0 -100 0 107 -100 -5.464-109 -100 0 -6 - 108 -100 0 0 200 0 0 -107 108 0 0 -1.4-107 -2.94. 0 0 0 -1.4 -100 0 107 0 0 109 107 0 0 1 -650 -34.5 -1.4- 0 0 -2.94. 0 108 0 -2.94. 108 108 200 108 200 -2.94. 108 108 108 108 0 -2.94. 0 -6 200 200 -108 0 -6. 108 0 -6. 0 0 -2.94. 200 108 0 -6-108 0 0 -2.94. -6. 0 0 108 0 0 0 -2.94. 200 0 0 -2.94. 0 -6. 0 0 -2.94. 200 108 0 -6 -108 0 0 200 -6-108 0 0 108 200 -6-108 0 0 108 200 -6.108 0 0 0 1 0 0 0 0 0 0 -35 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -600 -5.964-109 200 -6-108 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -800 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 -2.94. 0 -7.15. 109 A 31 :40 = 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 100 0 -2. -500 -7.72. 107 30 0 0 -2-107 30 0 0 107 -2. -2 0 . 107 30 0 0 107 -2. 0 10 7 0 30 30 0 0 - 107 30 0 0 107 -2. 0 0 0 0 0 30 30 30 107 30 107 107 0 30 107 -1.5. 30 -107 -1.5 0 0 30 0 30 0 0 107 0 107 107 0 0 -1.5. 30 0 30 0 -2.5- 30 30 30 30 107 30 109 30 -150 -150 -150 -150 -150 -150 10 7 -150 107 -150 107 -150 . 107 -9 -350 107 -350 107 -350 0 107 -9. 0 -9 . 107 0 0 107 -9. 0 -2.5-107 -- 350 -9 - 107 0 0 -2.5. 107 0 -2.5. 107 0 -2.5. 107 0 107 0 -2.5. 0 107 -9. 0 107 -9- 0 0 -350 _9 . 107 -- 350 -350 107 -350 107 -350 0 . 107 -9 107 -350 107 -350 0 107 -9. 0 -9 . 107 0 0 -2.5. -350 0 0 -2.5. -350 0 0 -2.5. 107 0 0 107 -2.5. 0 -9. 0 107 -2.5. -- 350 0 0 0 0 -2.5- -150 107 0 0 0 107 -2.5- -150 0 -9. 0 0 0 0 0 107 10 7 -2.5- -2.5. 0 0 0 107 107 0 -2.5. -150 -350 0 0 0 0 -2.5. -2.5. -350 0 0 0 10 7 -2.5- -150 107 107 -2.5. -9 - 107 0 0 0 10 7 -2.5- 0 107 -1.5. 0 0 0 -1.5. 30 -150 107 -2.5. 0 107 -2.5. 0 0 -1.5. 0 0 107 -1.5. 30 -150 -350 0 0 0 107 -2.5. 0 0 -1.5- 0 0 107 -1.5. 30 -2.5. 0 107 -2.5- -150 0 10 7 -2.5. -107 0 0 107 -2.5- 0 107 -1.5- -1.5. 30 -2.5 0 107 -2.5. 0 0 0 109 0 0 0 0 30 -150 0 10 7 -2.5. 0 -1.5. 0 0 -2- 107 -1.5. 0 . 107 -2- 30 0 0 0 0 107 -2- 107 -1.5. 0 107 -2. -2 30 30 10 7 -2.5. 0 0 0 107 -2. 107 -1.5. 0 0 -2. 30 30 0 0 0 107 -2. -2 30 0 107 -1.5. 0 0 . 107 -9 0 _9 . 107 1 0 0 0 0 -350 0 0 1 0 0 0 0 0 0 -320 0 0 0 0 1 0 0 0 0 0 0 0 0 -750 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -900 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0O 0 0 0 0 0 0 0 0 0 0 0 -8.14. 0 0 -2.50 -8.78. 241 0 -2.5. 0 109 -150 0 0 -2.5. 0 10 7 0 -9.815 0 -9 . 107 -350 -9 0 109 -350 0 . 107 0 _9. 107 0 1.112.1010 o I 0 0 0 4 0 0 0 0 0 0 Al 0 IL W 0 0 0 a 0 I ID, A 0 0 0 0A. CA !Q 00 ca w I I 0 0 0 o 0 0 0 0 0 0 o a 0 0 0 o 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4,0 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 0 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 II L'Q 01 0 0 0) 0 -00000000000000000000000000000000000000000000000 II 244 Appendix F Code Used to Generate GUI for Control of the Digital Compensator function varargout = fsm-comp(varargin) % Begin initialization code - DO NOT EDIT guiSingleton - 1; guiState - struct('guiName', afilename, 'gui-Singleton', gui-Singleton, 'gui-OpeningFcn', Ofsm-comp.OpeningFcn,. 'gui-OutputFcn', Qfsm-compOutputFcn, 'guiLayoutFcn', 'guiCallback', 3 , ... El); if nargin && ischar(varargin{l}) guiState.gui.Callback = str2func(varargin{l}); end if nargout Evarargout{l:nargout}] = gui-mainfcn(guiState, varargin{:}); else gui-mainfcn(guiState, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before fsm-compmodel is made visible. function fsm-compOpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. handles.output = hObject; % Checks to see if a model has been built in MATLAB already. If so, % restores the current model name. Otherwise, the default model name is % set. The model name is then written to the fsm.comp. if evalin('base','exist(''CURRENTMODEL'');')==1 handles.MODELNAME = evalin('base','CURRENTMODEL;'); 245 else handles.MODELNAME = 'fsm-controller-rotated'; end set(handles.MODEL.NAMEEDIT,'String',handles.MODELNAME); evalin('base','fsm-compnit;'); % Evaluates inital variable parameters used in model guidata(habject,handles); % Update handles structure function varargout % --- fsm.compOutputFcn(hObject, = eventdata, handles) Outputs from this function are returned to the command line. varargout{1} = handles.output; eventdata, handles) function BuildFSMCallback(hObject, X evalin('base','Ifsm.compinit;'); Evaluates inital variable parameters used in model evalin('base',['rtwbuild("'',handles.MODELNAME,'');'1) evalin('base','fsm.compjmodel - xpctarget.xpc;'); % Sets name for xPC Communication evalin('base','built=l'); X Set so other parts of script know model has been built evalin('base','clear currentscope;') % Clears scope out on rebuild. Otherwise scope becomes structure for some reason. % Get all useful parameter Is (PID) for use in script % Save current values of all parameters and set them in GUI % only do this if the PIDs are valid % Allows the same GUI to control multiple models with different parameters handles.PIDAZ-SUMTHRESHOLD = evalin('base','getparamid(fsmcompmodel,' ''','AZSUMTHRESHOLD'')'); if Misempty(handles.PIDAZSUMTHRESHOLD) % if it is not empty, IE it exists handles.AZ-SUM-THRESHOLD = evalin('base', ['fsmcomp.model.getparam(' ,num2str(handles.PID.AZSUM-THRESHOLD),');']); set (handles. AZ.SUMTHRESHOLODEDIT, 'String' , nu2str(handles . AZSUM.THRESHOLD)); end handles. PIDEL-SUMTHRESHOLD = evalin('base' 'getparamid(fsm-comp-model,' '' ',''ELSUMTHRESHOLD')'); if ~isempty(handles.PIDEL-SUMTHRESHOLD) handles.EL.SUMTHRESHOLD = evalin('base',E'fsm.compmodel.getparam(',num2str(handles.PID_ELSUM_THRESHOLD),');']); set (handles.ELSUM-THRESHOLDEDIT, 'String',num2str(handles .ELSUMtTHRESHOLD)); end handles.PID.AZQUADLOOP.GAIN = evalin('base','getparamid(fsmcompmodel,'''',''AZQUAD.LOOP.GAIN'')'); if Misempty(handles.PID.AZQUAD.LOOP.GAIN) handles.AZ.QUADLOOP.GAIN = evalin('base', ('fsmscompmodel.getparam(',num2str(handles.PID.AZQUAD.LOOPGAIN),');'I); set(handles.AZJQUAD.LOOPGAIN.EDIT,'String',num2str(handles.AZQUAD.LOOPGAIN)); AZJMODEL = FSMMODELQUAD.AZ; A.AZQUADCONTROLLER - evalin('base','AAZ-QUAD.CONTROLLER;'); B.AZQUADCONTROLLER - evalin('base','B.AZ.QUAD.CONTROLLER;'); C.AZQUADCONTROLLER = evalin('base','C.AZQUADSCONTROLLER;'); D.AZQUAD.CONTROLLER = evalin('base','DAZQUADCONTROLLER;'); SSMODEL = ss(AELQUAD.CONTROLLER, BELQUADCONTROLLER, LT = CELQUADCONTROLLER, DEL-QUADCONTROLLER); handles.ELQUADLOOP.GAIN * ELMODEL * SS_MODEL; %crossover.freq = round(crossover(LT,0,5,5000)/(2*pi)); %set(handles.AZQUADCROSSOVEREDIT,'String',num2str(crossover-freq)); end handles.PID-ELQUAD.LOOPGAIN = evalin('base','getparamid(fsmcomp.model,'' '','ELQUAD.LOOPGAIN'')'); if -isempty(handles.PID.ELQUADLOOP.GAIN) handles.ELQUADLOOP.GAIN = evalin('base',['fsm.comp.model.getparam(',num2str(handles.PIDELQUAD.LOOPGAIN), );'1); set(handles.ELQUADLOOPGAINEDIT,'String',num2str(handles.ELQUAD.LOOP.GAIN)); ELJMODEL = FSMMODELQUADEL; AEL-QUAD.CONTROLLER = evalin('base','AEL-QUAD.CONTROLLER;'); BELQUADCONTROLLER = evalin('base','BELQUADCONTROLLER;'); CELJQUADCONTROLLER = evalin('base','C.ELQUAD.CONTROLLER;'); D.ELQUAD.CONTROLLER = evalin('base','D.ELQUADCONTROLLER;'); SSMODEL = ss(AEL-QUADCONTROLLER, BELQUADSCONTROLLER, CELJQUADCONTROLLER, DELJQUAD.CONTROLLER); 246 LT = handles.ELQUADLOOPCGAIN * ELMODEL * SS-MODEL; %crossover-freq = round(crossover(LTO,5,5000)/(2pi)); %set(handles.EL-QUADCROSSOVEREDIT,'String',num2str(crossover-freq)); end handles.PID.AZ.QUADBIASCOMMAND = evalin('base','getparamid(fsmscomp-model,'''','AZ.QUADBIASCOMMAND'')'); if -isempty(handles.PID.AZQUADBIASCOMMAND) handles.AZQUAD.BIAS-COMAND = evalin('base',E'1sm.comp.model.getparam(',num2str(handles.PID.AZQUADBIAS-COMMAND),');'J); set (handles.AZQUADBIASCOMMANDEDIT, 'String' ,num2str (handles.AZJQUAD.BIASCOMMAND)); end handles.PIDELQUADBIASCOMMAND - evalin('base','getparamid(fsmcompmodel,''"','"ELQUADBIAS-COMMAND')'); if ~isempty(handles.PIDELQUADBIASCOMMAND) handles.EL-QUADBIASCOMMAND = evalin('base',['Ifsm.compjmodel.getparam(' ,num2str(handles.PIDELQUADBIASCOMMAND),');']); set (handles.EL.QUAD.BIASCOMMANDEDIT, 'String',num2str(handles .ELQUADBIASCOMMAND)); end handles.PIDINPUTCOMMANDSELECT = evalin('base','getparamid(fsm.compmodel,'"'','"INPUT.COMMAND-SELECT'')'); if -isempty(handles.PIDINPUTCOMMAND.SELECT) handles. INPUT.COMMAND.SELECT = evalin( 'base ' ,['1f smcomp-model.getparam(' ,num2str (handles. PIDINPUT-COMMANDSELECT) ,');']); switch handles.INPUT.COMMANDSELECT case 1 set (handles. INPUTlCOMM)NDSELECTNONE,'Value',1); case 2 set(handles.INPUTCOMMANDSELECT.AZ,'Value',1); case 0 set(handles.INPUT.COMMANDSELECTEL,'Value',1); end end guidata(gcbo,handles); % Update handles structure function StartFSM.Callback(hObject, eventdata, handles) evalin('base','fsmcompmodel.start;'); % Starts model function StopFSMtCallback(hObject, eventdata, handles) evalin('base','fsm.comp_model.stop;'); % Stops the function AZQUADBIASCOMMANDEDIT-Callback(hObject, model eventdata, handles) handles.AZQUADBIASCOMMAND = eval(get(hObject,'string')); evalin('base',['fsmcomp-model.setparam(',num2str(handles.PID.AZQUADBIASCOMMAND),',',num2str(handles.AZQUAD.BIASSCOMMAND),')']); guidata(gcbo,handles); % Update handles structure function ELQUAD-BIAS_COMMANDEDITCallback(hObject, eventdata, handles) handles.ELQUADBIASCOMMAND = eval(get(hObject,'string')); evalin('base',['fsmcomp-model.setparam(',num2str(handles.PIDELQUADBIASCOMMAND),',',num2str(handles.ELQUAD.BIASCOMMAND),')']); guidata(gcbo,handles); . Update handles structure function scopetstartCallback(hObject, eventdata, handles) evalin('base','current.scope.start;') function scope-stop.Callback(hObject, eventdata, handles) evalin('base','current.scope.stop;') 247 function scope-selectSelectionChangeFcn(hObject, selection - eventdata, handles) get(handles.scopeselect, 'SelectedObject'); switch get(selection,'Tag') case 'scope_1' handles.current-scope = 1; case 'scope_2' handles.current-scope - 2; case 'scopeS3' handles.current-scope = 3; case 'scope4' handles.current-scope = 4; end evalin('base', ['current.scope - fsm-compjmodel.getscope(',nim2str(handles.current-scope),');']) A = evalin('base','current-scope.YLimit;'); handles.scope-min = A(t); handles.scopejmax = A(2); set(handles.scope-scaling-edit,'String',num2str(handles.scope.max)) set(handles.scopemax_edit,'String',num,2str(handles.scopejmax)) set(handles.scope_minedit,'String',num2str(handles.scopejmin)) guidata(gcbo,handles); function scope-scaling-editCallback(hbject, eventdata, handles) handles.scope.scaling = eval(get(hObject,'string')); handles.scopemin - -1 * handles.scopescaling; handles.scope-max = handles.scope-scaling; evalin('base',['current-scope.set(''YLimit'', [',num2str(handles.scopemin),',',num2str(handles.scopemax),']);'J); set(handles.scope_max_edit,'String',nuzm2str(handles.scope-max)); set(handles.scope_minedit,'String',num2str(handles.scope-min)); guidata(gcbo,handles); function scope-max-edit-Callback(hObject, eventdata, handles) handles.scopemax = eval(get(hObject.'string')); evalin('base',['current.scope.set(''YLimit'', [',num2str(handles.scopemin),',',num2str(handles.scopemax),,']);']); guidata(gcbo,handles); function scope-min.editCallback(habject, eventdata, handles) handles.scope.min = eval(get(hObject.'string')); evalin('base',['current-scope.set(''YLimit'', [',num2str(handles.scope-min),',',num2str(handles.scopemax),']);']); guidata(gcbo,handles); function InputCommandSelect-Panel-SelectionChangeFcn(hbject, eventdata, handles) %Selects which input will be tied to the INPUT-COMMAND A/D channel. Used % to take transfer functions using DSA selection = get(handles.InputCommand.SelectPanel, 'SelectedObject'); switch get(selection,'Tag') case 'INPUT.CMMANDSELECTLNONE' handles.INPUT.COMMAND-SELECT - 1; case 'INPUTSCOMMANDSELECTAZ' handles.INPUT-COMMANDSELECT = 2; case 'INPUT..COMMAND-SELECTEL' handles.INPUTCOMMANDSELECT = 0; end evalin('base' , t'fsm-comp-model .setparam(' ,num2str(handles .PID_.INPUTCOMMANDSELECT), guidata(gchohandles); % Update handles structure 248 ' ,' ,num2str(handles .INPUT-COMMAND-SELECT), ')']); function AZQUADLOP-GAINEDIT.Callback(habject, eventdata, handles) %Evaluates AZ Loop Gain input and saves to handles structure % Also calculates new crossover frequency of Compensator and displays in % fsmcomp handles.AZQUADLOOPGAIN = eval(get(hObject,'string')); evalin('base',['fsm-compjmodel.setparam(',num2str(handles.PIDAZ-QUADLLOOP-GAIN),',',num2str(handles.AZ.QUADLOP.GAIN),')']); AZMODEL = FSM-AZQUADMODEL; A.AZ-QUADCONTROLLER = evalin('base','A-AZQUAD-CONTROLLER;'); BAZQUAD-CONTROLLER = evalin('base','BAZQUADCONTROLLER;'); CAZ.QUAD-CONTROLLER = evalin('base','CAZQUAD-CONTROLLER;'); D_AZQUAD-CONTROLLER = evalin('base' ,'DAZQUADCONTROLLER;'); LT = handles.AZQUADLOOPGAIN * AZ_MODEL * ss(A-AZQUADCONTROLLER, BAZQUAD-CONTROLLER, CAZQUAD_CONTROLLER, DAZJQUADCDNTROLLER); %crossover-freq = round(crossover(LT,0,5,5000)/(2*pi)); %set(handles.AZQUAD.CROSSOVEREDIT,'String',num2str(crossover.freq)); guidata(gcbo,handles); % Update handles structure function ELQUADLOOPGAINEDIT-Callback(hbject, % Evaluates EL Loop Gain eventdata, handles) input and saves to handles structure % Also calculates new crossover frequency of Compensator and displays in % fsmcomp handles.ELQUADLOP.GAIN = eval(get(hObject,'string')); evalin('base',['fsm.compjmodel.setparam(',num2str(handles.PIDELJQUAD.LOOP.GAIN),',',num2str(handles.ELQUADLOOP.GAIN),')']); ELMODEL = FSMELQUADMODEL; A-EL-QUADCONTROLLER = evalin('base','AELQUADCONTROLLER;'); BELQUADCONTROLLER = evalin('base','B.ELQUADCONTROLLER;'); C-ELQUADCONTROLLER = evalin('base','CEL_QUADSCONTROLLER;'); D-EL-QUADCONTROLLER = evalin('base','DELQUADSCONTROLLER;'); LT = handles.ELSQUADLOOP_GAIN * EL_MODEL * ss(AELQUAD-CONTROLLER, B.ELQUADCONTROLLER, %crossover-freq = round(crossover(LT,0,5,5000)/(2*pi)); %set(handles.EL.QUADCROSSOVEREDIT,'String',num2str(crossover-freq)); guidata(gcho,handles); %Update handles structure function MODELNAME.EDITCallback(hObject, eventdata, handles) %Evaluates input string for model name, saves to handle structure % Also saves name to MATLAB base environment for recovery if fsmscomp is % restarted handles.MODELNAME = get(hObject,'string'); evalin('base',['CURRENTMODEL = ''',handles.MODEL-NAME,'''D; guidata(gcho,handles); % Update handles structure 249 C.EL.QUADCONTROLLER, DEL-QUADCONTROLLER); 250 Appendix G MATLAB GUI Code for Running the Square Spiral Algorithm % -- Executes on button press in spiralize. function spiralize-Callback(hObject, eventdata, handles) % Get xPC Parameter IDs pid-off = evalin('base','tg.getparamid(''Spiral Off'',''Value'')'); pid-reset = evalin('base','tg.getparamid(''Spiral Locater/Spiral Reset'',''Value'')'); pid-finished = evalin('base','tg.getsignalid(''Spiral Locater/spiral/p8'');'); XSpiral Finished pid-acquired = evalin('base','tg.getsignalid(''Spiral Locater/Spiral Acquired'');'); pid-stop = evalin('base','tg.getparamid(''Spiral Locater/Spiral Stop'',''Value'');'); pid-step = evalin('base','tg.getparamid(''Spiral Locater/Spiral Step'',''Value'');'); pid-spAZ = evalin('base','tg.getsignalid(''Spiral AZ'')'); pid-spEL = evalin('base','tg.getsignalid(''Spiral EL'')'); pid-spAZq = evalin('base','tg.getsignalid(''Quad AZ'')'); pid-spELq = evalin('base','tg.getsignalid(''Quad EL'')'); pid-spOS = evalin('base','tg.getsignalid(''Optical Sum'')'); pid-Cage = evalin('base','tg.getparamid(''Cage Enable'',''Value'')'); pid-EL = evalin('base','tg.getparamid(''EL Not Invert'',''Value'')'); pid-command = evalin('base','tg.getparamid(''Spiral Locater/Command On'',''Value'')'); % Update GUI to show Spiraling set(handles.spiral-on,'Value',1) set(handles.spiraloff, 'Value' ,0) % Put Spiral in reset state, turn on Commands % so that Spiral now controls the outputs to the controller % Start by taking out of reset state evalin('base',['tg. setparam(',num2str(pid-reset),',1)']) evalin('base',('tg.setparam(',num2str(pid-off),',O)']) evalin('base',['tg.setparam(',num2str(pidcommand),',1)']) evalin('base',['tg.sstparam(',num2str(pid-reset),',O)']) % wait until the finished signal comes back or % user presses the spiral off button on the GUI to stop while (evalin('base', ['tg .getsignal(',num2str(pid-finished),');'3)==o) evalin('base','pause(.1;'); if get(handles. spira:Loff,'Value')==I break 251 end end % If the bumpless transfer was successful, set digital % switches to quad cell tracking mode X otherwise set to kaman tracking mode if evalin('base',['tg.getsignal(',num2str(pid-acquired),');'])==I evalin('base',[tg.setparam(',num2str(pidCage),',0)']); evalin('base',['tg.setparam(',num2str(pidEL),',5.26)']); set(handles.AZTrackELTrack, 'Value' ,1); set(handles.AZCommandTedit,'String',num2str(O)); set(handles.ELCommandT-edit, 'String',num2str(O)); else evalin('base',['tg.setparam(',num2str(pidCage),',5.26)'J); evalin('base',['tg.setparam(',num2str(pid.EL),',5.26)']); set(handles.AZCage2ELCage,'Value',1); end % turn off the spiral command control X output X update the acquired signal to the user the GUI to show spiral is off evalin('base',['tg.setparam(',num2str(pidcommand),',O);'); evalin('base',['tg.getsignal(',num2str(pid-acquired),')']) set(handles.spiral.off,'Value',4) guidata(gcho,handles); 252 Appendix H MATLAB GUI Code for Running the CAV and CLV Spiral Algorithms % -- Executes on button press in spiralize. function spiralizeCallback(hObject, eventdata, handles) % hObject handle to spiralize (see GCBO) . eventdata reserved - to be defined in a future version of MATLAB X handles structure with handles and user data (see GUIDATA) % Get xPC Parameter pid-off IDs evalin('base','getparamid(tg,'''',''SpiralOff'')'); = pid-reset = evalin('base' ,'getparamid(tg'' '' %ID to turn spiral off ,' 'SpiralReset'')') ; pid-finished = evalin('base','tg.getsignalid(''Spiral Locater 2/spiral/p8');'); pid-acquired = evalin('base','tg.getsignalid(''Spiral Locater 2/spiral/p7'');'); pidAZ-cage-command = evalin('base','tg.getsignalid(''Spiral Locater 2/AZ Cage Command Switch'');'); pid-EL-cage-command = evalin('base','tg.getsignalid(''Spiral Locater 2/EL Cage Command Switch'');'); pid-stop = evalin('base','getparamid(tg, '''',''Spiral Locater 2/Spiral Stop'');'); pid-step = evalin('base','getparamid(tg,'' ' ',''Spiral Locater 2/Spiral Step');'); pid-spAZ = evalin('base','tg.getsignalid(''Spiral AZ'')'); pid-spEL = evalin('base','tg.getsignalid(''Spiral EL'')'); pid-spAZq = evalin('base','tg.getsignalid(''Quad AZ'')'); pid-spELq = evalin('base','tg.getsignalid(''Quad EL'')'); pid-spOS = evalin('base','tg.getsignalid(''Optical Sum'')'); pidCage = evalin('base','getparamid(tg,'''',''CageEnable'')'); pidEL = evalin('base','getparamid(tg,'''',''EL_Not Invert'')'); pid-command = evalin('base' ,'getparamid(tg,'' ' ' ,' 'SpiralCommandOn'')'); % Update GUI to show Spiraling set(handles.spiralon,'Value',1) set(handles.spiraloff,'Value',0) % Put Spiral in reset state, turn on Commands 7 so that Spiral now controls the outputs to the controller % Start by taking out of reset state evalin('base',['tg.setparam(',num2str(pid-reset),',1)']) evalin('base',['tg.setparam(',num2str(pid-off),',0)']) 253 evalin('base',['tg.setparam(',num2str(pid-command),',)']) evalin('base',['tg.setparam(',num2str(pid-reset),',O)']) wait until the finished signal comes back or user presses the spiral off button on the GUI to stop while (evalin('base',['tg.getsignal(',num2str(pidfinished),);'])==0) evalin('base','pause(.05);'); if get(handles.spiral-off,'Value')==1 break end end % If in Acquisition mode, set digital switches as appropiate and end if handles.spiral-mode == 2 if evalin('base',['tg.getsignal(',num2str(pid-acquired),');'])==1 evalin('base',['tg.setparam(',num2str(pidCage),',0)'D); evalin('base',['tg.setparam(',num2str(pidEL),',5.26)']); set(handles.AZTrackELTrack,'Value',1); set(handles.AZCommandT-edit,'String',num2str(O)); set(handles.ELCommandT-edit,'String',num2str(O)); else evalin('base',['tg.setparam(',num2str(pid.Cage),',5.26)']); evalin('base' ,['tg.setparam(',num2str(pid.EL),',5.26)'1); set(handles.AZCageELCage,'Value',l); end % If not in Acquisition Mode but found the Quad Cell, % Set the new starting place at where you are, then % re-spiralize setting the spiral-size and dist-threshold to % 1/10th their original values. This allows a course spiral to find the % Quad Cell, followed by a tighter spiral to get as close to center as % possible % If didn't find Quad Cell, just end elseif handles.spiral-mode == 1 if evalin('base',['tg.getsignal(',num2str(pidtacquired),');'])==1 AZ-cage = evalin('base',['tg.getsignal(',num2str(pidAZcagecommand),');']); EL-cage = evalin('base',['tg.getsignal(',num2str(pidEL.cagecommand),');']); evalin('base','tg.setparam(',num2str(pidcommand),',0);']); pid-AZ-bias = evalin('base','getparamid(tg,'''',''AZBias'')'); evalin('base',['tg.setparam(',num2str(pidAZbias),',',num2str(AZ.cage),')']); pid-EL-bias = evalin('base','getparamid(tg,'''',''ELBias'')'); evalin('base',['tg.setparam(',num2str(pidELbias),',',num2str(EL.cage),')']); handles.ELBias = ELcage; handles.AZBias = AZ.cage; handles.AZCommand = 0; evalin('base',['tg.setparam(',num2str(pidAZbias),',',num2str(handles.AZBias),')']); set(handles.AZBiasedit,'String',num2str(handles.AZBias)); set(handles.AZCommand-edit,'String',num2str(handles.AZCommand)); handles.ELCommand = 0; evalin('base',['tg.setparam(',num2str(pidEL-bias),',',num2str(handles.ELBias),')']); set(handles.ELBias-edit,'String',num2str(handles.ELBias)); set(handles.ELCommand_edit,'String',num2str(handles.ELCommand)); % setting spiral-size and distance-threshold pidSpiralSize = parameters evalin('base','getparamid(tg,'''',''SpiralhSize'');') evalin('base',['tg.setparam(',num2str(pidSpiral-Size),',',num2str(handles.spiralsize/10),');']); pidSpiral-Dist = evalin('base','getparamid(tg,'''',''SpiralDist-Threshold'');'); evalin('base',['tg.setparam(',num2str(pidSpiral.Dist),',',num2str(handles.dist/10),')']); % restarting spiral evalin('base',['tg.setparam(',num2str(pidreset),',l)']) evalin('base',['tg.setparam(',num2str(pidoff),',O)']) 254 evalin('base',['tg.setparam(',num2str(pid-command),',1)']) evalin('base','LocationScope = getscope(tg,5);'); evalin('base',['tg.setparam(',num2str(pid-reset),',)']) while (evalin('base',['tg.getsignal(',num2str(pid-finished),');'])==0) evalin( 'base','pause(.05);'); if get(handles.spiral-off,'Value')==l break end end if evalin('base',['tg.getsignal(',num2str(pid-acquired),');'])==1 AZ.cage = evalin('base',['tg.getsignal(',num2str(pidAZ-cage.command),');']); EL-cage = evalin('base',['tg.getsignal(',num2str(pidELscagescommand),');']); evalin('base',['tg.setparam(',num2str(pid-command),',0);']); pid-AZ-bias = evalin('base','getparamid(tg,''',AZ_Bias')'); evalin('base',['tg.setparam(',num2str(pid-AZ-bias),',',num2str(AZ-cage),')']); pid-EL-bias = evalin('base','getparamid(tg,' ''',''EL-Bias'')'); evalin('base',['tg.setparam(',num2str(pid_ELbias),',',num2str(EL.cage),')']); handles.ELBias = EL-cage; handles.AZBias = AZ-cage; handles.AZCommand = 0; evalin('base',['tg.setparam(',num2str(pidAZbias),',',num2str(handles.AZBias),')']); set(handles.AZBias-edit,'String',num2str(handles.AZBias)); set(handles.AZCommandedit,'String',num2str(handles.AZCommand)); handles.ELCommand = 0; evalin('base',['tg.setparam(',num2str(pid-EL-bias),',',num2str(handles.ELBias),')']); set(handles.ELBias-edit,'String',num2str(handles.ELBias)); set(handles.ELCommand-edit,'String',num2str(handles.ELCommand)); end % set parameters back to original values evalin('base',['tg.setparam(',num2str(pidSpiralSize),',',num2str(handles.spiral-size),');']); evalin('base',['tg.setparam(',num2str(pidSpiral-Dist),',',num2str(handles.dist),')']); end end % Show User if Acquisition was sucessful evalin(base',['tg.setparam(',num2str(pid-command),',0);'1); evalin('base',['tg.getsignal(',num2str(pid-acquired),)']) set(handles.spiral-off,'Value',l) guidata(gcbo,handles); 255 256 Appendix I Vendors Agilent Technologies, Inc. 395 Page Mill Rd. Palo Alto, CA 94306 Telephone - (877) 424-4536 Web address - http://www.home.agilent.com Product Used: 35670A Dynamic Signal Analyzer General Standards Corporation 8302A Whitesburg Drive Huntsville, AL 35802 Telephone - (800) 653-9970 Web address - http://www.generalstandards.com Product Used: PMC-ADADIO PCI Card The MathWorks, Inc. 3 Apple Hill Drive Natick, MA 01760-2098 Telephone - (508) 647-7000 Web address - http://www.mathworks.com Products Used: MATLAB, Simulink, xPC Tektronix Texas, LLC 1500 North Greenville Avenue Richardson, TX 75081 Telephone - (800) 969-4638 Web address - http://www.tektronix.com Product Used: TDS5104B Digital Phosphor Oscilloscope 257 UDT Instruments 727 South Wolfe Street Baltimore, MD 21231 Telephone - (410) 342-2626 Web address - http://www.udtinstruments.com Product Used: Model 431 X-Y Optical Position Indicator UDT Sensors, Inc. 12525 Chadron Avenue Hawthorne, CA 90250 Telephone - (310) 978-0516 Web address - http://www.udt.com Product Used: SPOT 4DMI Quad Cell 258 Bibliography [1] Applied Technology Associates, ARS-12B Datasheet, http://www.atasensors.com/Sensors2/pdf-files/2005 New Data Sheets/ARS12B/ARS-12B MHD Angular Rate Sensor.pdf [2] Agarwal, Anant and Lang, Jefferey H., Foundations of Analog and Digital Electronic Circuits, (MIT 6.002 Reference, 2002). [3] The Mathworks, Inc., Stateflow User's Guide, http://www.mathworks.com/ access/helpdesk/help/pdf-doc/stateflow/sf-ug.pdf [4] The Mathworks, Inc., Using Simulink, http://www.mathworks.com/access/ helpdesk/help/pdf-doc/simulink/sl-using.pdf [5] The Mathworks, Inc., xPC Target User's Guide, http://www.mathworks. com/ access/helpdesk/help/pdf-doc/xpc/xpc-target-ug.pdf [6] Palm III, William J., Modeling, Analysis and Control of Dynamic Systems, (New York, New York: John Wiley & Sons, 2000). [7] Loney, G.C., High Bandwidth Steering Mirror Research, (Lincoln Laboratory Project Report IRP-15, 1992). [8] Van de Vegte, John, Feedback Control Systems, (Englewood Cliffs, New Jersey: Prentice Hall, 1994). 259