NASA Technical Memorandum 4790
PLATSIM: A Simulation and Analysis Package for Large-Order Flexible Systems (Version 2.0)
Peiman G. Maghami, Sean P. Kenny, and Daniel P. Giesy
Langley Research Center, Hampton, Virginia
The NASA STI Program Office . . . in Profile
Since its founding, NASA has been dedicated to the advancement of aeronautics and space science. The NASA Scientific and Technical Information (STI) Program Office plays a key part in helping NASA maintain this important role.
The NASA STI Program Office is operated by Langley Research Center, the lead center for NASA’s scientific and technical information. The NASA STI Program Office provides access to the NASA STI Database, the largest collection of aeronautical and space science STI in the world. The Program Office is also NASA’s institutional mechanism for disseminating the results of its research and development activities. These results are published by NASA in the NASA STI Report Series, which includes the following report types:
?TECHNICAL PUBLICATION. Reports of completed research or a major significant phase of research that present the results of NASA programs and include extensive data or theoretical analysis. Includes compilations of significant scientific and technical data and information deemed
to be of continuing reference value. NASA counter-part or peer-reviewed formal professional papers, but having less stringent limitations on manuscript length and extent of graphic presentations.
?TECHNICAL MEMORANDUM. Scientific and technical findings that are preliminary or of specialized interest,
e.g., quick release reports, working papers, and bibliographies that contain minimal annotation. Does not contain extensive analysis.
?CONTRACTOR REPORT. Scientific and technical findings by NASA-sponsored contractors and grantees.?CONFERENCE PUBLICATION. Collected papers from scientific and technical conferences, symposia, seminars, or other meetings sponsored or co-sponsored by NASA.
?SPECIAL PUBLICATION. Scientific, technical, or historical information from NASA programs, projects, and missions, often concerned with subjects having substantial public interest.
?TECHNICAL TRANSLATION. English-language translations of foreign scientific and technical material pertinent to NASA’s mission.
Specialized services that help round out the STI Program Office’s diverse offerings include creating custom thesauri, building customized databases, organizing and publishing research results . . . even providing videos.
For more information about the NASA STI Program Office, see the following:
?Access the NASA STI Program Home Page at https://www.sodocs.net/doc/8811430222.html,
?Email your question via the Internet to help@https://www.sodocs.net/doc/8811430222.html,
?Fax your question to the NASA Access Help Desk at (301) 621-0134
?Phone the NASA Access Help Desk at (301) 621-0390
?Write to:
NASA Access Help Desk
NASA Center for AeroSpace Information 800 Elkridge Landing Road
Linthicum Heights, MD 21090-2934
NASA Technical Memorandum 4790
PLATSIM: A Simulation and Analysis Package for Large-Order Flexible Systems (Version 2.0)
Peiman G. Maghami, Sean P. Kenny, and Daniel P. Giesy
Langley Research Center, Hampton, Virginia
The use of trademarks or names of manufacturers in this report is for
accurate reporting and does not constitute an official endorsement,
either expressed or implied, of such products or manufacturers by the
National Aeronautics and Space Administration.
Available from the following:
NASA Center for AeroSpace Information (CASI)National Technical Information Service (NTIS) 800 Elkridge Landing Road5285 Port Royal Road
Linthicum Heights, MD 21090-2934Springfield, VA 22161-2171
(301) 621-0390(703) 487-4650
Contents
Chapter 1—Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 PLATSIM Version 2.0 Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Chapter 2— Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Modal Frequency Data File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Mode Shape Data File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Modal Damping Schedule File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Instrument Data File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Instrument data parameter act. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Instrument data parameter mout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Instrument data parameter pout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Instrument data parameter instr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Disturbance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 distdata.m input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 distdata.m outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Control System File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Linear and time-invariant control system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Nonlinear or time variant control system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Solution Check File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Nonlinear Reaction Wheel Friction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Nonstiction condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Stiction condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Chapter 3—Analysis Methodology and Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Time Domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Linear analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Nonlinear analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Jitter analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Frequency Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 PLATSIM frequency domain inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 PLATSIM frequency domain outputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Execution Control Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Chapter 4—Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 GUI Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Top-level graphical interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Supporting graphical interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Batch Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Batch Mode Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
iii
Chapter 5—PLATSIM Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Time Domain Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Full-time histories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Time history plots and reduced time history data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Jitter results and plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 File-naming conventions for PC’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Frequency Domain Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Frequency response matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Bode plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 File-naming conventions for PC’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 Chapter 6—Diagnostic Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 Appendix A—User-Supplied Routines for Earth Observing System EOS-AM-1 Example . . . . . . . . . . . .43 Appendix B— S-Function Representation of Earth Observing System EOS-AM-1
Attitude Control System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 Appendix C—Solution Integrity Checking File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 Appendix D—Time Domain Output and Frequency Domain Output for Earth Observing System
EOS-AM-1 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Time Domain Output for EOS-AM-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Frequency Domain Output for EOS-AM-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
Figures
Figure 1. Format of phi.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Figure 2. Reaction wheel friction characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Figure 3. Stiction condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Figure 4. Open-loop block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Figure 5. Closed-loop block diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Figure 6. Graphical user interface for the PLATSIM package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Figure 7. Work space button pull-down menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Figure 8. Options button pull-down menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Figure 9. Jitter window interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Figure 10. Analysis button pull-down menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Figure 11. Inputs/outputs button pull-down menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Figure 12. Spacecraft modal uncertainty interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Figure 13. Mode-by-mode frequency modification interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 Figure 14. Set analysis parameters interface (time domain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Figure 15. Controller definition interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Figure 16. Set analysis parameters (closed loop, frequency domain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Figure 17. Input/output connections interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Figure 18. Performance output selection interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Figure 19. Disturbance module interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Figure D1. Example of time-history plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68 Figure D2. Example of Bode plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
Chapter 1
Introduction
The software package PLATSIM provides time and frequency domain analysis of large-order generic space platforms. PLATSIM can perform open-loop analysis or closed-loop analysis with linear or nonlinear control sys-tem models. PLATSIM’s generic control structure para-digm permits almost any type of control architecture to be implemented, for example: attitude control systems with or without flexible body controls, active isolation systems, and payload-instrument local control systems. In the time domain analysis, PLATSIM simulates the response of the space platform to disturbances and calcu-lates the jitter and stability values from the response time histories. In the frequency domain analysis, PLATSIM calculates frequency response function matrices and pro-vides the corresponding Bode plots. While PLATSIM was designed for analyzing space platforms, it only assumes that it has a finite element model of a structure that is being excited by force and/or torque inputs. Thus, any structure (e.g., aeronautical, automotive, structural, or mechanical) that fits this model can be analyzed by PLATSIM.
PLATSIM operates in the MATLAB? technical computing environment at MATLAB version 4.2 or 5.0. MATLAB, a product of The MathWorks, Inc., is a tech-nical computing environment for high-performance numeric computation and visualization (ref. 1). PLATSIM also uses the Control System Toolbox and SIMULINK, which are additional products of The MathWorks, Inc. User input to PLATSIM is provided in the form of MATLAB readable data files and MATLAB function M-files.
PLATSIM allows the user to maintain a database of performance measurement outputs on the space platform and a database of disturbance scenarios. An individual run of PLATSIM can use all the performance outputs or a user-selected subset; the user selects one disturbance scenario for each run. Time domain analysis in PLATSIM provides on-screen plots of time histories at user-selected output locations (e.g., instrument bore-sight) due to user-selected disturbance scenarios, encap-sulated PostScript files of these plots, tables of jitter-stability values due to disturbances for user-selected time window sizes, and files containing the time history data in either compressed or full form. Frequency domain analysis in PLATSIM provides on-screen Bode plots, encapsulated PostScript files of these plots, and files con-taining the plot data.
PLATSIM includes novel algorithmic features that provide efficiency in all calculations and, in some cases,are actually enabling technologies. PLATSIM exploits the particular form of sparsity (block diagonal with 2 by 2 blocks) of the plant matrices for both time analysis and frequency domain analysis. A new, original algorithm for the efficient computation of closed-loop (as well as open-loop) frequency response functions for large-order sys-tems has been developed and is implemented within PLATSIM. This algorithm is an enabling technology for the analysis of large-order systems, in general, and flexi-ble space systems, in particular. Furthermore, a novel and efficient jitter analysis routine which determines jit-ter and stability values from time simulations in a very efficient manner (speedup of three to four orders of mag-nitude in typical examples as compared to the brute force approach of sweeping minima and maxima) has been developed for and is incorporated in the PLATSIM package.
PLATSIM requires the following user inputs: modal data of the spacecraft as generated by finite element anal-ysis, damping ratios for flexible modes, information about control actuators, measurement feedback sensors, and performance instrument outputs (e.g., boresight mea-surements), spacecraft disturbance data, and spacecraft control system model.
The program can be used in either a graphical user interface (GUI) mode or in a batch mode. The two modes differ in the way the required and optional flags and parameters that control execution are defined. In the GUI mode, the parameters and flags are chosen from pop-up MATLAB menus with a keypad and a mouse. In the batch mode, all flags and parameters are defined in MATLAB command lines, which can be placed in an ASCII input file.
Although PLATSIM was developed to analyze generic space platforms, the Earth Observing System EOS-AM-1 (ref. 2) is used throughout this manual as an example. Furthermore, several M-files and data files included in the PLATSIM distribution, some of which are listed in appendix A, correspond to the EOS-AM-1 spacecraft. These files are the spacecraft control system defined in formscs.m, the instrument types and con-nectivity data defined in instdata.m, the finite ele-ment data defined in omega.mat and phi.mat, the damping schedule defined in mkdamp.m, and the spacecraft disturbance data defined in distdata.m and its supporting routines. These files can serve as tem-plates for the user-supplied files for other space platform applications.
PLATSIM Version 2.0 Enhancements
PLATSIM version 2.0 offers several substantial improvements in both capabilities and performance over the initial version 1.0 release. Improvements have been
made to all aspects of the software package, but the most significant improvements have been made to core analy-sis modules (time and frequency domain modules and the jitter analysis module) and to the graphical user interface. PLATSIM version 2.0 offers the following new features: Nonlinear controllers are permitted.
?Seven nonlinear integration routines are available for controller state propagation.
?The user has direct access of controller states to facil-tate solution integrity checking.
There is direct interface with SIMULINK controller models.
?Controller models may be SIMULINK block diagrams or generic S-functions.
Time-domain memory management has been greatly enhanced.
?Jitter calculations may be performed on-the-?y as opposed to postprocessing the entire time history matrices.
Time-domain analysis has been generalized.
?The control system can be modeled as continuous time or discrete time.
?Hybrid control system models, consisting of continu-ous and discrete states, are supported.
?Three methods are available for the propagation plant states.
Frequency domain analysis has been generalized.?PLATSIM frequency domain analysis now has the capability of performing Bode analysis on 16 closed-loop and 9 open-loop transfer functions.
?The control system may be continuous time or discrete time.The graphical user interface has been expanded.?Complete graphical access to all new time and fre-quency domain features has been added, for example, transfer function de?nition (including input/output connections), controller implementation methods, plant integration methods, and others.?Graphical interface for de?ning jitter windows is possible.
?Session ?le creation for convenient recovery of previ-ous PLATSIM run-time variable setting can be used.
The manual begins with the description of input files and variables required by PLATSIM that include the finite element data, instrument and disturbance descrip-tion data, and information on the control system (chap-ter2). In chapter 3, the methodology and the assumptions behind the various analysis capabilities by the program are described, along with a discussion on the execution control parameters and options, which direct the type and extent of analysis performed by PLATSIM. Chapter 4 describes the graphical user interface execution mode as well as the batch execution mode. The various menus, buttons, and sliders in the graphical user interface that assign the execution control parameters, define or rede-fine the structural and controls models, or execute the program are discussed in detail. The description of the results or output of the various analyses performed by PLATSIM, in terms of file names, types, and contents are provided in chapter 5. These results and outputs include the time history plots, reduced time history data, jitter tables, gain and phase plots, and transfer functions. The run-time diagnostic messages generated by PLATSIM are listed in chapter 6. Appendixes A and B provide a listing of typical user-supplied routines required by the program. Appendix C provides an exam-ple of the type of routine required for the solution integ-rity check capability of PLATSIM. Finally, examples of typical PLATSIM outputs for a time domain analysis (including jitter analysis) and a frequency domain analy-sis are provided in appendix D.
Chapter 2
Input Files
The PLATSIM program requires user-supplied information from which it can construct the simulation or analysis model. PLATSIM requires
https://www.sodocs.net/doc/8811430222.html,rmation on the ?nite element model of the plant:
modal frequencies, modal damping ratios, and mode shapes.
https://www.sodocs.net/doc/8811430222.html,rmation on the control system hardware and
instrument outputs: location, direction, identi?cation number, and types.
https://www.sodocs.net/doc/8811430222.html,rmation on disturbances: disturbance time histo-
ries, along with the corresponding location and direc-tion of actions, and identifying names.
https://www.sodocs.net/doc/8811430222.html,rmation on the control system mathematical
model: whether the controller is linear or nonlinear;
for linear control systems, the control system matri-ces; for nonlinear control systems, the nonlinear con-troller function, along with discrete-state updates and output vector.
https://www.sodocs.net/doc/8811430222.html,rmation on user-de?ned and optional checking
algorithm to be used in the validation of the integra-tion of the nonlinear controller.
Specifically, PLATSIM requires users to provide the fol-lowing input files:
?modal frequency data ?le (omega.dat or omega.mat)
?mode shape data ?le (phi.dat or phi.mat)?modal damping schedule ?le (mkdamp.m)?instrument data ?le (instdata.m)?disturbances data ?le (distdata.m)?disturbances ?les (arbitrarily named M-?les)?control system ?le (arbitrarily named M-?le)?solution check ?le (optional) (solchk.m)
Note: These ?les should be placed in MATLAB’s directory path.
The remainder of this chapter is devoted to presenting the details of these input files.
Modal Frequency Data File
The finite element modal frequency data are to be provided in ASCII file omega.dat, or in MATLAB binary file omega.mat.
The ASCII file omega.dat contains one frequency per line:
where p is the number of modes in the spacecraft model.
The MATLAB binary file omega.mat should con-tain a variable omega which is a p×1 vector containing the frequencies from omega.dat as described above.
The user running PLATSIM in its graphical user interface (GUI) mode has the opportunity, via the menu item “Modify Plant Model” under the “Options” button, to interactively change the plant model’s frequencies. (See “Program Execution” on page 21.)
Mode Shape Data File
The ?nite element mode shape data are to be pro-vided in ASCII ?le phi.dat, or in MATLAB binary ?le https://www.sodocs.net/doc/8811430222.html,e s to denote the number of grid points at which mode shape data are to be given in file phi.dat and label these grid points with grid numbers N1,N2,...,N s. Then phi.dat has(p×s) lines in the format shown in figure1 on page 4, where X j i,Y j i, and Z j i are the modal translations in X,Y, and Z, andΘj i,Φj i, andΨj i are rotations about X,Y, and Z for mode i at grid point N j. Note that grid points that are not needed to model instruments, the control system, or disturbances do not need to be included in file phi.dat. However, if they are included, care must be taken to ensure that each mode block contains data for exactly the same grid points.
Note: If p frequencies are defined in omega.dat, modal amplitudes for exactly p modes should be defined in phi.dat, and the i-th mode in phi.dat should cor-respond to frequencyωi.
The MATLAB binary file phi.mat should contain a variable phi, which is a (p×s) by 7 matrix containing the grid numbers and mode shape displacements and mode slope displacements from phi.dat as described previously. Users are encouraged to create the binary file phi.mat to improve the efficiency of loading model data.
Modal Damping Schedule File
PLATSIM determines the damping ratios of the flex-ible spacecraft modes by calling the user-supplied
ω1
ω2
ωp
..
.
4
MATLAB function mkdamp in file mkdamp.m . This function has the following form:
function [d]=mkdamp(omega)
The input argument omega is a vector containing the modal frequencies ω1,ω2,...,ωp . The user must set the output d to a vector containing the corresponding damping ratios. Appendix A contains a sample file mkdamp.m for the EOS-AM-1 mission. This file defines a damping ratio of 0.2percent for structural modes with frequencies under 15Hz, a damping ratio of 0.25percent for structural modes with frequencies between 15Hz and 50Hz, and a damping ratio of 0.3percent for structural modes with frequencies over 50Hz.
The user running PLATSIM in its graphical user interface (GUI) mode can use “Modify Plant Model”under the “Options” menu to change the damping sched-ule. (See “Program Execution” on page 21.)Instrument Data File
The data defining the location, direction, type, and identification of the control system actuators and sensors,as well as the performance outputs of the system, must be provided by the user through a user-supplied MATLAB function instdata in a file named instdata .m . This function must have the following form:
function [act ,mout ,pout ,instr]=instdata The following is a description of the user-defined output parameters in file instdata.See appendix A for a sample file instdata .m for the EOS-AM-1spacecraft.Instrument data parameter act .Parameter act is used to define the location, direction, identification, and scaling of the control system actuator models. Parameter act is a matrix of four rows by as many columns as
Figure 1.Format of phi .dat .
N 1N 2N s
X 1
1X 1
2X 1s
Y 1
1Y 1
2Y 1s
Z 1
1Z 1
2Z 1s
θ1
1θ1
2θ1s
φ1
1φ1
2φ1s
ψ1
1ψ1
2ψ1s
N 1N 2N s
X 2
1X 2
2X 2s
Y 2
1Y 2
2Y 2s
Z 2
1Z 2
2Z 2s
θ2
1θ2
2θ2s
φ2
1φ2
2φ2s
ψ2
1ψ2
2ψ2s
N 1N 2N s
X p
1X p
2X p s
Y p
1Y p
2Y p s
Z p
1Z p
2Z p s
θp
1θp
2θp s
φp
1φp
2φp s
ψp
1ψp
2ψp s
necessary to represent the actuators. An example of act is given as
act
?The ?rst row of act de?nes the ?nite element grid points upon which the actuators are acting.
?The second row of act de?nes the directions at which the actuators are acting. Direction numbers
are limited to 1 through 6, which correspond to
x-translational,y-translational,z-translational,
x-rotational,y-rotational, and z-rotational direc-
tions, respectively.
?The third row of act de?nes the user-de?ned pos-itive identi?cation numbers associated with the
actuators.Note: Each actuator must have a
unique identi?cation number. A single actuator
may require more than a one-column
description.
?The fourth row of act de?nes the weighting-scale factors associated with the actuators. This factor
allows for distributing the effect of an actuator
within grid points. For example, in the act exam-
ple, actuator 550 exerts its torque about the Y-axis
on two grid points (1211 and 1212), each with a
weighting of 0.5; that is, half the torque generated
by this actuator is applied to grid point 1211 and
the other half to grid point 1212. On the other
hand, actuator 400 exerts its torque about the
Z-axis solely at grid point 827. This factor also
allows for independent scaling of the actuator
output.
?Each column of act indicates a contribution of an actuator (force or torque) to a grid point.Note:
Each actuator must be represented by at least
one column.
?Note: Internally, PLATSIM reorders the actuator numbers according to the sorted (low-to-high)
identi?cation numbers provided in the third row of
act. In the previous example, PLATSIM consid-
ers actuator 300 as the ?rst actuator, actuator 400
as the second, and actuator 550 as the third and last
actuator.
Instrument data parameter mout.Parameter mout is used to define the location, direction, identifica-tion, scaling, and measurement type of the control system sensor models. Parameter mout is a matrix of five rows by as many columns as necessary to represent the mea-surement outputs. An example of mout is given as
mout
?The ?rst row of mout de?nes the ?nite element grid points whose responses contribute to the sen-
sor measurements.
?The second row of mout de?nes the direction associated with the grid point responses that
contribute to the sensor measurements. Direction
numbers are limited to 1 through 6, which
correspond to x-translational,y-translational,
z-translational,x-rotational,y-rotational, and
z-rotational directions, respectively.
?The third row of mout de?nes the user-de?ned positive identi?cation numbers associated with the
measurement sensors.Note: Each measurement
sensor must have a unique identi?cation num-
ber. A single sensor may require more than a
one-column description.
?The fourth row of mout de?nes the weighting-scale factor associated with the sensors. This factor
allows for the contribution of responses from mul-
tiple grid points and directions to a measurement
signal. For example, in the mout example above,
measurement sensor 11 measures a combined
response from rotation about the Y-axis at grid
point 111, rotation about the Z-axis at grid point
121, and rotation about the Z-axis at grid point
122, with corresponding weighting factors of 0.5,
0.25, and 0.25. In other words, the measurement
signal of sensor 11 is comprised of half the rota-
tional response (about the Y-axis) at grid 111, a
quarter of the rotational response (about the Z-axis)
at grid point 121, and a quarter of the rotational
response (about the Z-axis) at grid point 122. Note
that this weighting-scale factor also allows for
independent scaling of the sensor output.
?The ?fth row of mout de?nes the measurement sensor type ?ag numbers which take the value 0 for
displacement and the value 1 for rate. PLATSIM is
programmed only to handle displacement and rate
sensors as input to the control system; however,
acceleration feedback to the control system can be
implemented by the addition of a judiciously
selected pre?ltering of a velocity signal.
=62512111212827
4556
300550550400
1.00.50.5 1.0
→
→
→
→
Grid Point No.
Direction No.
Identification No.
Weighting/Scale Factor
=
111121122827
5664
111111120
0.50.250.251.0
0001
→
→
→
→
→
Grid Point No.
Direction No.
Identification No.
Weighting/Scale Factor
Type Flag No.
5
?Each column of mout indicates a contribution of a grid point (in a speci?ed direction and type) to a measurement sensor. Note: Each measurement sensor must be represented by at least one column.
?Note: Internally, PLATSIM reorders the sensor numbers according to the sorted (low-to-high) identi?cation numbers provided in the third row of mout. In the previous example, PLATSIM
considers sensor 11 as the ?rst sensor and sensor
120 as the second and last sensor.
Instrument data parameter pout.Parameter pout defines the location, direction, identification, scaling, and measurement type of the performance output models. Parameter pout is a matrix of 5 rows by as many columns as necessary to represent the performance outputs. An example of pout is given as
pout
?Note: The rows and columns of parameter pout follow exactly the de?nitions given for that of
parameter mout with one exception:
The elements in the fifth row of pout,which
define the performance output types, may also
take values of 2 for acceleration output.
? A weighting factor is included with the prior data.
One use of this weighting factor is for conversion
of units. The performance output which is being
calculated in radians is converted to arc seconds by
multiplying the original weighting factors [1 0.3 1]
by (3600× 180)/π to obtain the fourth row in the
example pout.
Instrument data parameter instr.Parameter instr is a matrix of character strings that provides names for the performance outputs. The number of rows in instr must be equal to the number of performance outputs, that is, the number of distinct entries in the third row of pout. An example of instr, corresponding to the previous example of pout, is given as
instr
?Each element of instr is a string consisting of three or four ?elds separated from each other by
the vertical bar (|) character.
?The ?rst ?eld is an integer which must correspond to one of the performance output identi?cation
numbers de?ned in the third row of pout.
Note: Every identification number in that row must be referenced in instr.
?The second ?eld is one or more alphanumeric words which provide a unique name for the corre-sponding performance output. These names are used in PLATSIM on menu labels and to identify information in output tables and graphs. They are also used as parts of ?le names after embedded blanks have been replaced by underscores (_).
No characters (except blanks that will be
replaced by underscores) should be used
that would confuse the computer operating
system when used in a file name.
For purposes of determining whether
character strings are distinct, embedded
blanks should be considered the same as
underscores (e.g., “SWIR Pitch” and
“SWIR_Pitch” should be considered the
same).
?The third ?eld is used to name the menu button under which this instrument will be found when running PLATSIM in the GUI mode. By using the same name in the third ?eld of several entries, the entries will be grouped in a submenu under the same menu heading. In the example shown previ-ously, all performance outputs are found under separate menus labeled: “SWIR”, “VNIR”, and “TIR”.
?If the optional fourth ?eld is present, PLATSIM will add it to the second ?eld in generating the ver-tical legend of time history plots; this can be used, for example, to give the units of the output.
=
101314567
564
11131120
2.0626105
×0.6188105
× 2.0626105
×
012
→
→
→
→
→
Grid Point No.
Direction No.
Identification No.
Weighting/Scale Factor
Type Flag No.
=
1|SWIR Pitch|SWIR|arc-sec
1120|VNIR Yaw Acceleration|VNIR|arc-sec/sec2 113|TIR Roll|TIR|arc-sec
6
Disturbance Data
In the development of the PLATSIM package, it was assumed that spacecraft simulations and analyses would be performed for a variety of different disturbances sce-narios and that each user would maintain a disturbance database. Easy interactive access to the disturbance data-base is provided in PLATSIM through a graphical user interface. The operation and capabilities of the distur-bance GUI will be described in “Program Execution” on page 21.
The PLATSIM disturbance data are communicated to the main package through a user-supplied MATLAB function distdata in file distdata.m. This user-supplied data file provides a complete description of all spacecraft disturbance scenarios. A spacecraft distur-bance scenario may consist of several disturbance events.
A disturbance event is a force or torque time history act-ing on the platform.
The actual structure of the user disturbance data is described herein.Note: The specific structure of the function call has been modified for version 2.0. The variable tdflag has been added to the input list.The first line(s) of file distdata.m. must have the follow-ing form:
function [dist,w,period,cnames,dnames, instdat,mapping]
=distdata(casenum,tdflag)
The data the user returns in the first three parameters (dist, w,and period) will depend on casenum, while the data returned in the last four parameters (cnames, dnames, instdat,and mapping) must be the same, independent of the value of casenum. The data returned in dist,w, and period will model the one or more disturbance events of the distur-bance scenario identified by casenum.
distdata.m input
casenum: Used to select a particular disturbance sce-nario from the user-provided database.
?If PLATSIM calls distdata with casenum = 0, the user need only return the last four parame-
ters (cnames, dnames, instdat,and
mapping).
?If casenum is input as a positive integer between the values of 1 and the number of rows in character
matrix dnames, then all seven parameters should
be returned with the values in the ?rst three corre-
sponding to the disturbance scenario whose name
is in row casenum of dnames. See input variable
tdflag for exceptions.
?Note: All other values of casenum are invalid.
?For all nonbatch mode operations, the value of casenum is set by the disturbance module GUI.
In batch mode, the value of casenum is set in the
batch mode input ?le.
tdflag: A string variable set to ‘yes’ for time-domain analysis and to ‘no’ for frequency domain analysis. This input is a version 2.0 modification which allows users to avoid unnecessary calculations when frequency domain analysis is requested.
?When tdflag=’no’, output variables w, and period do not have to be de?ned.
distdata.m outputs
dist: A matrix of four rows by as many columns as necessary to describe one disturbance event represented by a column of the matrix w. An example of dist is given as
dist
?The ?rst row of dist de?nes the ?nite element grid points upon which the disturbances are acting.
?The second row of dist de?nes the directions at which the disturbances are acting.Direction num-
bers are limited to the integers 1 through 6,
which correspond to x-translational,y-translational,
z-translational,x-rotational,y-rotational, and
z-rotational directions, respectively.
?The third row of dist de?nes the user-de?ned positive identi?cation numbers associated with the
disturbances.Note: Each disturbance event must
have a unique identi?cation number. A single
disturbance event may require more than a one-
column description.
?The fourth row of dist de?nes the weighting-scale factor associated with the disturbances. This
factor allows for distributing the effect of a distur-
bance across multiple grid points. For example, in
the dist illustration, disturbance 200 exerts its
torque about the Y-axis on two grid points (121 and
112), with weighting factors of 0.6 and 0.4, respec-
tively. In other words, 60 percent of the torque
exerted by this disturbance is applied to grid point
121, and the other 40 percent is applied to grid
point 112. On the other hand, disturbance 100
exerts its force in the x-direction solely at grid
point 6325. This factor also allows for independent
scaling of the disturbance levels.
=
6325121112
155
100200200
1.00.60.4
→
→
→
→
Grid Point No.
Direction No.
Identification No.
Weighting/Scale Factor
7
?Each column of dist indicates a contribution of a disturbance (force or torque) to a grid point.Note:
Each disturbance must be represented by at
least one column.
?Note: Internally, PLATSIM reorders the distur-bance numbers according to the sorted (low-to-
high) identi?cation numbers provided in the third
row of dist. In the previous example, PLATSIM
considers disturbance 100 as the ?rst disturbance
event and disturbance 200 as the second and last
disturbance event.
w: A matrix of force and/or torque disturbance time his-tory profiles. The number of rows in w is the number of time steps, and the number of columns in w is the number of disturbance events. This output is optional for fre-quency domain analysis.
period: A disturbance sampling period, which is also used as the update rate of the simulation solution. Note that the same discretization period is used for all events in a single disturbance scenario. This output is optional for frequency domain analysis.
cnames: A string matrix that contains the menu head-ing labels for the disturbance GUI. The disturbance GUI will create a pull-down menu button for each row in cnames. The entries in cnames are used for menu button labeling only and will not appear in output documentation.
dnames: A string matrix of disturbance scenario case names. The rows in dnames are used for labeling pull-down menu items in the disturbance GUI, for labeling plot figures, and for constructing some PLATSIM output file names.
?If the PLATSIM user selects a disturbance scenario from the disturbance GUI that was in row “j” of
dnames, then PLATSIM will call distdata
with casenum = ‘j’. The user who wrote
distdata.m must return the disturbance case
which corresponds to the name in row “j” of
dnames by testing casenum and acting on the
value found there.
?Individual disturbance scenarios may be “com-mented out” by editing distdata.m to return
the corresponding row of dnames with an asterisk
(*) as the ?rst character. The scenario will still
show on the disturbance GUI menu but in a dis-
tinctive grey type, and it will not be selectable. instdat: The variables instdat and mapping together define which dnames row entries will appear under a particular cnames disturbance GUI pull-down menu button. The vector instdat may be any length, and its entries may be in any numerical order.
?Note: The entries in instdat must correspond to valid row numbers in the dnames string
matrix.
mapping: The vector mapping must contain non-negative integers and define the partitioning of the instdat vector required to map the entries in dnames to the disturbance GUI labels created from cnames.
?The number of entries in the mapping variable must equal the number of rows in cnames.
?The sum of all entries in mapping must equal the number of elements in instdat. For example, if
instdat has 30 elements, the MATLAB com-
mand sum(mapping) must also equal 30.
To illustrate the use of the parameters cnames, dnames, instdat, and mapping, suppose the file distdata.m contains these commands:
cnames=str2mat(‘Calibration’,’Tracking’);
dnames=str2mat(‘Solar Array’,’Telescope Cal’,’Antenna Cal’);
dnames=str2mat(dnames,’Telescope Track’,’Antenna Track’,’Antenna Sweep’); instdat=[1 2 3 1 4 5 6];
mapping=[3 4];
This disturbance database should contain six distur-bance cases whose names are given in the six lines of the dnames matrix. When PLATSIM is run in GUI mode, there will be two buttons on the disturbances menu with labels Calibration and Tracking. The Calibration button will invoke a submenu showing three entries (mapping(1) = 3) which will be taken from the first three rows of the dnames matrix. The first three entries of instdat are[1 2 3]. The Tracking button will invoke a submenu showing four entries (mapping(2)=4) which will be taken from rows 1, 4, 5, and 6 of dnames. The next four entries of
8
instdat are [1 4 5 6]). Note that the same disturbance scenario (Solar Array in this example) may be included in more than one category.
Control System File
The control system model is accessed by a user-supplied MATLAB function whose name is in the string variable nlcon. Depending on the linear or nonlinear nature of the controller, the user-supplied file may be either a PLATSIM version 1.0 style, that is, a function that returns a linear time-invariant state space representa-tion, or a MATLAB S-function. It should be emphasized that any linear or nonlinear control system can be repre-sented, such as a spacecraft attitude control system, a flexible body control for payload isolation or disturbance rejection, robotic control, and many others.
Linear and time-invariant control system.If the control system is linear and time invariant, information on the control system may be provided in one of two ways:
1. A user-supplied MATLAB function must provide the
matrices that de?ne the control system in state-space form. This form was required by PLATSIM version1.0.
?The ?rst line of this type controller ?le must have the form function[ascs,bscs,cscs,dacs]
=xxyyzz where the output parameters ascs,
bscs,cscs, and dacs denote the state matrix,
the input in?uence matrix, the output in?uence
matrix, and the feed-through matrix of the control
system, respectively. The name of the controller
?le,xxyyzz.m in this example,is arbitrary and
is passed to PLATSIM in the execution control
parameter (p.16ff)nlcon as nlcon=
’xxyyzz’.
?An example ?le named formscs.m is given in appendix A. This ?le corresponds to a simpli?ed
continuous-time model of the attitude control sys-
tem of the EOS-AM-1 spacecraft.
2. A user-supplied MATLAB S-function may be pro-
vided in one of three ways:
?As a user-supplied MATLAB function which fol-lows the input/output requirements for S-functions.
Type help sfunc at the MATLAB prompt for a
complete description of S-functions. An example
of a user-supplied S-function corresponding to a
continuous-time model of the attitude control sys-
tem of the EOS-AM-1 spacecraft is given in
appendix B.
? A user-supplied SIMULINK block diagram. If the controller exists as a block in a SIMULINK simu-
lation ?le, a MATLAB S-function may be obtained
by isolating the controller block, by changing its
input and output connections to Inports and
Outports, respectively, and by saving the
updates.
?A user-supplied C or FORTRAN function which follows the input/output requirements of
S-functions. This function is subsequently con-
verted to a MATLAB “mex” ?le through the
MATLAB fmex or cmex routines.
Note: Controller file names are arbitrary and can be modified from default values during program execu-tion in GUI mode or by setting string parameter nlcon in the batch mode.
General assumptions and comments:
1.The linear controller can be either a continuous or a
digital controller. Note that the user declares the con-tinuous or digital nature of the controller in ?ags used during the program execution.
2.It is assumed that the control system is implemented
with a negative feedback connection.
3.It is assumed that the number of control system inputs
is equal to the number of measurement outputs of the plant. Moreover, there is a straight connection between the measurement outputs of the plant and the inputs of the control system.
4.It is assumed that the number of control system out-
puts is equal to or greater than the number of control inputs to the plant. However, it is assumed that only control system outputs 1 through the number of plant inputs are used in the feedback connection. Moreover, the feedback connection is a straight connection.
Nonlinear or time variant control system.If the controller model is nonlinear or time variant, the neces-sary information on the control system model is provided solely by a user-supplied MATLAB S-function which can be defined in one of three ways, as discussed in the previous section. An example of a nonlinear control sys-tem corresponding to a continuous-time model of the attitude control system of the EOS-AM-1 spacecraft with reaction wheel stiction is provided in user-supplied MATLAB S-function stiction.m.
General assumptions and comments:
1.The nonlinear controller may have both continuous
and discrete states. (See S-function de?nitions.)
2.It is assumed that the control system is implemented
with a negative feedback connection.
9
103.It is assumed that the number of control system inputs is equal to the number of measurement outputs of the plant. Moreover, there is a straight connection between the measurement outputs of the plant and the inputs of the control system.
4.It is assumed that the number of control system out-puts is equal to or greater than the number of control inputs to the plant. However, it is assumed that only control system outputs 1 through the number of plant inputs are used in the feedback connection. Moreover,the feedback connection is a straight connection.Solution Check File
PLATSIM provides the capability to accept or reject a solution of the nonlinear controller integration through the use of the user-supplied solchk .m input file. By using this function (given the information on the previ-ous as well as the current controller states and outputs),the user can implement a checking of the solution; that is,if the conditions are not met, the current solution is rejected, and a smaller recommended step size is pro-vided by solchk .m . The first line of file solchk .m must have the form
function[han]=solchk(z2,u2,z1,u1,h)where the input parameters z2,u2,z1,u1, and h are defined as
z2: current controller state vector
u2: current controller output vector
z1: previous controller state vector
u1: previous controller output vector
h : integration step size
The output parameter han must be set to h , if the user accepts the solution. If the solution is rejected,han should contain the recommended new integration step size, which must be less than h .
Nonlinear Reaction Wheel Friction
As an example of controller solution checking, con-sider the problem of nonlinear reaction wheel friction model (stiction); see figure 2, “Reaction wheel friction characteristics.”
Nonstiction condition.If the wheel speed is non-zero, or if the magnitude of the applied torque is greater than or equal to the stiction torque (static friction torque),the reactive torque is given as
where T react denotes the reactive torque (output torque),J w represents the inertia of the reaction wheel, and represents the wheel speed rate.Stiction condition.If the wheel speed is zero and the magnitude of applied torque is also less than or equal to the stiction torque (see fig.3, “Stiction Condition”), the reactive torque is given as The wheel speed would stay at zero until the applied torque becomes larger then the stiction torque (static fric-tion torque).From the previous equations, it is obvious that the reactive torque is not a continuous function of .Moreover, it is quite possible that in the process of advancing the states of the nonlinear control system,which includes the nonlinear model of the reaction wheel, an integration step may come about wherein (a) a zero-crossing of the wheel speed occurs, and (b) the applied torque at the time of wheel speed zero-crossing is
T react J w ω˙w
–=Figure 2. Reaction wheel friction characteristics.Figure 3. Stiction condition.
ω˙w T react 0=
ω˙w
less than or equal to the stiction torque; that is, stiction has occurred. Thus, the current solution of the integration is not valid because it did not model the behavior of the wheel properly by predicting and taking the stiction of the wheel into account. For example, if from the states and outputs it is determined that a stiction condition may have occurred in the vicinity of point “s”, at time from the previous step, the user may recommend retrying the integration with a step size of or some fraction of .
The solution check is provided to give the user the capability of altering integration step sizes and state val-ues to accommodate for discontinuities associated with some nonlinear devices. A solution check file for the stiction of reaction wheels in the EOS-AM-1 example is provided in appendix C. Note that in this example file, the checks on the zero crossing of the wheel speed and the friction torque crossing of the applied torques are per-formed by using linear interpolation between the previ-ous and current values.
Tε
Tε
Tε
11
Chapter 3
Analysis Methodology and Options
PLATSIM includes novel algorithmic features that provide efficiency of all calculations while constituting enabling technology in some cases. PLATSIM exploits the particular form of sparsity of the plant matrices both in the continuous-time and discrete-time forms, as used by the time domain analysis and the frequency domain analysis.
Time Domain
In the time domain analysis, PLATSIM performs a time simulation of the system by using the user-provided input data files (which define the model) together with the execution control parameters selected by the user. This simulation is optionally followed by a jitter analysis at the discretion of the user. PLATSIM assumes the fol-lowing with regard to the plant and control system models:
1.The plant model is assumed to be linear with model
information provided, as described in chapter 2.
2.The control system model can be either linear or non-
linear. See chapter 2 for the proper input ?le format.
3.The control system can be modeled in continuous
time or in discrete time.
4.Hybrid control system models, consisting of
continuous-time and discrete-time modules, are also permitted (in the nonlinear analysis only).
5.The information needed to declare the type of control
system is provided by the user through the linearity ?ag (execution control parameter linflag) and the continuous-time ?ag (execution control parameter ctflag). See “Execution Control Parameters” on page 16.
Once the plant and the control system models have been defined, PLATSIM allows for two types of time analysis, linear and nonlinear. The user defines the type of analysis desired through the implementation flag (impflag). See “Execution Control Parameters” on page 16. PLATSIM takes advantage of the sparsity of the spacecraft dynamic model system matrix to perform the linear or nonlinear analysis very efficiently. The reader should refer to reference 3 for a detailed description of this sparsity.To take advantage of the sparsity, PLATSIM assumes that the measurement outputs of the plant, which are inputs to the control system, are pro-cessed through a sample and hold analog-to-digital con-version; this is not a restrictive assumption because it is a routine procedure in almost all modern practical applications.
Linear analysis.When using the previously men-tioned assumption regarding the sample and hold applied to control inputs, the following applies to linear analysis: 1.If the control system model is discrete time with a
sampling period tsc, then time simulation is per-formed through algebraic propagation of the plant and the controller states, with the output updates occur-ring at the appropriate times (every tsd for the plant and every tsc for the controller).
2.If the control system model is continuous time, the
controller is still implemented in a discrete-time form.
However, the sampling period tsc is chosen auto-matically by PLATSIM to be small enough; that is, the controller, for all practical purposes, is continuous time. Then, time simulation is performed through algebraic propagation of the plant and the controller states, with the output updates occurring at the appro-priate times (every tsd for the plant and every tsc for the controller).
?The controller sampling rate is chosen to be one decade larger than the crossing frequency with the
line 20 dB below the H-in?nity norm (of the con-
troller). A 40 dB line is used if the roll-off rate is
less than 20 dB/decade.
?Users may de?ne their own value for tsc (the value must be different from the default) to over-
ride its automatic computation. (See “Execution
Control Parameters” on page 16.)
3.The disturbances are interpolated by using linear
interpolation as necessary.
Nonlinear analysis.When using the assumption regarding the sample and hold applied to control inputs, the following applies to nonlinear analysis:
1.In the nonlinear analysis, the sampled measurement
outputs are used in one of seven nonlinear integration routines to propagate the states of the controller.
These routines are as follows:
?Euler integration algorithm
?Second-order Runge-Kutta-Heun integration algo-rithm (with no error control)
?Second-order Runge-Kutta integration algorithm (with third-order error control)
?Third-order Runge-Kutta algorithm by Bogacki-Shampine (with error control)
?Fourth-order Runge-Kutta-Hall integration algo-rithm (with error control)
?Fifth-order Runge-Kutta integration algorithm by Fehlberg (with error control)
?Modi?ed Rosenbrock algorithm for stiff systems (with error control)
13