Control of a Fast Steering Mirror... Satellite Communication Larry Edward Hawe II

advertisement
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
Download