Table of Contents
List of Tables
Table of Contents
Full Model Hierarchy
| Simulation Parameter | Value |
|---|---|
| Solver | FixedStepDiscrete |
| RelTol | 1e-3 |
| Refine | 1 |
| MaxOrder | 5 |
| ZeroCross | on |
| Machine | testCodeGen_vxmode9bb |
|---|---|
| Creation Date | 10-Jan-2007 23:25:13 |

DC: 11/09/07
This version of the MMT Elevation axis controller includes the
variable-gain integral term in the position loop. I have also added a
wind disturbance input based on my earlier work simulating the wind buffet
from the Sept testing. Finally, a disturbance-decoupling input based on
a Luenberger observer using the ElModel from Powell is implemented to
investigate tracking improvement (if any) from the wind-disturbance
decoupling. New gains:
DDGain == 0; Disturbance decoupling authority
WindGain == 0; Wind disturbance input gain. Set to 1 for full wind load.
KiModeSel == 1; Fixed integral gain (Ki).
== 2; Variable gain from KiMin (0.55) to KiMax (9.45).
---------------------------------------------------------------
PARAMETER FILE IS: $MATLAB_DOCS/MMT_el_servo_params_Nov07a.mat
---------------------------------------------------------------
Test plan for 11/10/07:
The controller runs no wind disturbance input unless a tracking command
has been received from the Java GUI. I'll set the WindGain and DDGain to
zero, track at -8 arcsec/sec for 30-60s, with KiModeSel == 2 for a baseline.
This is the same as last Sept., but with no wind. Next, I'll turn on the
wind (WindGain == 1), and repeat.
Once that's done, we'll set WindGain to 0 and DDGain = 0.1 and try running
the controller to check basic stability with a couple slews and tracks. I
will set KiModeSel to 1 to fix the integral gain, and perhaps set Ki to 0
since the observer eliminates the need for position loop integral.
Then I'll set WindGain to 1 and do some -8 arcsec/sec tracking (low authority
disturbance decoupling). We'll repeat this with the DDGain set to 1,5, and
10 (high-authority), stability limits allowing.
--------------------------------------------------------------------
11/20/07:
Now we have version 3 of the DDLO controller. We filter the wind much more
agressively with Hlp5, which has a 2Hz or so cutoff frequency, use a really
simply 1/Js^2 observer model, and have removed the delays and filters in
the observer loop. Init file is
$LOCAL_DOCUMENTS/MATLAB/DCLARK/INIT_XPC_112007.MAT
since Matlab has trouble with network drives.
-----------------------------------------------------------------------
1/28/08:
Want to check operation of the open-loop response and the closed-loop
against the generated/simulation version, so this version of the controller
does that. Changes:
1. Added chirp/noise excitation
2. Kept variable-Kdd, but plan to check this thing.
3. Have another observer, strictly 1/J*s^2 for testing.
Test plan:
A. Run chirp open-loop, 0.1 -> 10Hz. Collect open-loop response and output
of controller blocks.
B. Run pink noise open-loop 0.01 -> 40Hz. Collect open-loop response and
controller output.
C. Run closed-loop chirp, 0.1 -> 10Hz. Collect closed loop response with
AltElRef as the observer. Replace observer with 1/J*s^2 version and retest.
D. Run closed-loop noise, 0.1 -> 10Hz, collect response with both versions
of observer.
E. Go home, reduce data.
Table 3. Constant Block Properties
Table 6. Digital Filter Block Properties
Table 11. From Block Properties
| Name | Goto Tag | Icon Display | Defined In Blk |
|---|---|---|---|
| From | FakeAbsolute | Tag | Constant |
| From1 | Feedback | Tag | SwFdbk2 |
| From10 | Poscmd | Tag | Byte Reversal1 |
| From11 | Velcmd | Tag | Byte Reversal1 |
| From12 | Mode | Tag | Byte Reversal1 |
| From13 | Feedback | Tag | SwFdbk2 |
| From14 | VelocityError | Tag | Sum2 |
| From15 | VelocityEstimate | Tag | Product |
| From16 | PosErr | Tag | Gain |
| From17 | DacSum | Tag | SwitchControl |
| From18 | ModelOut | Tag | Unit Delay2 |
| From19 | DacSignal | Tag | SumB35 |
| From2 | Vel | Tag | Unbuffer |
| From20 | Mode | Tag | Byte Reversal1 |
| From21 | WindInput | Tag | Digital Filter2 |
| From22 | CommandValue | Tag | Saturation1 |
| From23 | Feedback | Tag | SwFdbk2 |
| From24 | TestSignal | Tag | TestSrcSelect |
| From25 | CommandSource | Tag | Compare |
| From26 | ClosedOrOpen | Tag | Compare |
| From27 | TestSignal | Tag | TestSrcSelect |
| From28 | VelocityCommand | Tag | Sum1 |
| From29 | TorqueCommand | Tag | Sum3 |
| From3 | PosErr | Tag | Gain |
| From30 | ToModel | Tag | Saturation |
| From31 | TorkDistTest | Tag | Compare |
| From32 | PosCommand | Tag | SwCmd |
| From33 | Feedback | Tag | SwFdbk2 |
| From34 | HoldCommand | Tag | Logical Operator |
| From35 | FreezeFdbk | Tag | Compare |
| From36 | LatchedAbs | Tag | Switch |
| From37 | VelocityCommand | Tag | Sum1 |
| From38 | TorqueCommand | Tag | Sum3 |
| From39 | ToModel | Tag | Saturation |
| From4 | CommandValue | Tag | Saturation1 |
| From40 | ModelOut | Tag | Unit Delay2 |
| From41 | TestType | Tag | TestModeConstant |
| From42 | TestSignal | Tag | TestSrcSelect |
| From5 | ModelOut | Tag | Unit Delay2 |
| From6 | LatchedAbs | Tag | Switch |
| From7 | Feedback | Tag | SwFdbk2 |
| From8 | Mode | Tag | Byte Reversal1 |
| From9 | LatchedAbs | Tag | Switch |
Table 12. Gain Block Properties
Table 13. Goto Block Properties
Table 20. MultiPortSwitch Block Properties
Table 23. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| AbsoluteEncoderValue | 3 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| ChirpFreqs | 16 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| DACSignal | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | To Workspace, Internal, IP-230-4 , testCodeGen_vxmode9bb (model) |
| DisturbanceEstimate | 13 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Sum, testCodeGen_vxmode9bb (model) |
| EastTape | 8 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model), testCodeGen_vxmode9bb (model) |
| ExcitationSignal | 15 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | To Workspace, Sum6, SwDAC, Sum5, testCodeGen_vxmode9bb (model) |
| guiCommand | 5 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Position Limiter, Sum2, testCodeGen_vxmode9bb (model) |
| guiMode | 6 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Multiport Switch, testCodeGen_vxmode9bb (model) |
| ObserverError | 14 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | TSamp, Discrete-Time Integrator1, Okp, testCodeGen_vxmode9bb (model) |
| Out1 | 19 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| Out2 | 2 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Discrete Differentiator, Sum, To Workspace, Sum2, Diff, UD, Byte Reversal, testCodeGen_vxmode9bb (model) |
| Out3 | 20 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| PosError | 11 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| PositionDemand | 18 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | To Workspace, Sum, Discrete Differentiator, testCodeGen_vxmode9bb (model) |
| SimWind | 12 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Sum1, testCodeGen_vxmode9bb (model) |
| TestingValue | 17 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | To Workspace, Compare, Compare, Compare, Upper Test, Lower Test, FixPt Data Type Duplicate, Compare, testCodeGen_vxmode9bb (model), TestSrcSelect |
| Vel2gui | 4 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Buffer, testCodeGen_vxmode9bb (model) |
| VelError | 9 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| VelEstimate | 10 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| WestTape | 7 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model), testCodeGen_vxmode9bb (model) |
Table 30. Sum Block Properties

Table 45. Median Block Properties
Table 46. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Output | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | K2 |

Table 50. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Out1 | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | SwCmd |

Table 53. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Out1 | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | SwCmd |

Table 57. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Out1 | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | SwCmd |


Table 67. Gain Block Properties
Table 70. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Evar | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Sum1 |

Table 74. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| ChirpFreq | 2 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | testCodeGen_vxmode9bb (model) |
| ChirpWave | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | ToArcsec, ToSmall, ToVolts |

Table 78. Goto Block Properties
| Name | Goto Tag | Icon Display | Tag Visibility | Used By Blk |
|---|---|---|---|---|
| Goto | VelocityEstimate | Tag | global | testCodeGen_vxmode9bb (model), Velocity gain, Velocity Controller Integral gain2 |
| Goto1 | TorqueCommand | Tag | global | To Workspace, testCodeGen_vxmode9bb (model), Product |
| Goto2 | VelocityCommand | Tag | global | To Workspace, testCodeGen_vxmode9bb (model), Sum2 |
Table 79. Inport Block Properties
| Name | Port | Defined In Blk |
|---|---|---|
| Motor Position Degrees | 3 | SwFdbk2 |
| Position command Degrees | 2 | SwCmd |
| Position command DegreesFF | 1 | Discrete Differentiator |
Table 81. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Motor command (DAC volts) | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Unit Delay1, Sum |

Table 86. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Out1 | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Product |

Table 87. Digital Filter Block Properties
Table 92. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Filtered CMD | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Unit Delay1, Sum |

Table 94. Delay Block Properties
Table 96. Gain Block Properties
Table 99. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Output | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Unit Delay1, Sum |
Table 100. Sum Block Properties

Table 106. From Block Properties
| Name | Goto Tag | Icon Display | Defined In Blk |
|---|---|---|---|
| From | Reset | Tag | Step |
| From1 | IntReset | Tag | Logical Operator |
| From2 | Reset | Tag | Step |
| From3 | Reset | Tag | Step |
Table 107. Gain Block Properties
Table 108. Goto Block Properties
| Name | Goto Tag | Icon Display | Tag Visibility | Used By Blk |
|---|---|---|---|---|
| Goto2 | PosErr | Tag | global | Byte Reversal, testCodeGen_vxmode9bb (model) |
| Goto3 | IntReset | Tag | global | Discrete-Time Integrator1, Discrete-Time Integrator1 |
Table 114. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Velocity CMD (rad) | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Sum1 |

Table 123. Outport Block Properties
| Name | Port | Icon Display | Bus Object | Out Min | Out Max | Out Data Type Str | Output When Disabled | Initial Output | Used By Blk |
|---|---|---|---|---|---|---|---|---|---|
| Ki_Var | 1 | Port number | BusObject | [] | [] | Inherit: auto | held | [] | Product |