Home
        here - OpenSimKit
         Contents
1.                                                                                                                           DO_HPBOTTLE PTOTAL  D1_HPBOTTLE PTOTAL  DO_HPBOTTLE MFTOTAL  D1_HPBOTTLE MFTOTAL  17_TANK MFINFPG  17_TANK MFINOPG  17_TANK MFOUTFUEL  17_TANK MFOUTOXIDIZER  18_FLUIDFLOWWALYE CONTROLYALUE  18_FLUIDFLOWVALVE MFIN  19_FLUIDFLOWVALVE CONTROLVALUE  19_FLUIDFLOWVALVE MFIN  20_ENGINE THRUST  20_ENGINE CSTAR   20_ENGINE CF   20_ENGINE ROF  22_STRUCTURE FORCEMAG  22_STRUCTURE SCVELOCITYX  22_STRUCTURE SCVELOCITYY  22_STRUCTURE SCVELOCITYZ  22_STRUCTURE SCPOSITIONS  22_STRUCTURE SCPOSITIONY  22_STRUCTURE SCPOSITIONZ  24_ATTITUDEDYNAMICS SCQ1  24_ATTITUDEDYNAMICS SCQ2  24_ATTITUDEDYNAMICS SCQ3  24_ATTITUDEDYNAMICS 5CQ4  24_ATTITUDEDYNAMICS SCPHI  24_ATTITUDEDYNAMICS SCTHETA     C  24_ATTITUDEDYNAMICS SCPSI       Create graph                                        Run Debug Profile Versioning Tools Window Help  TBD  amp  G   4 x      E  Engine java x    E  Enginecontroler java x    8  PRegri java x  FA 0  File Graph  P D  1 750  1 500  1 250  1 000  750  500  250  0  0 50 100 150 200 250 300 350  time  s       20_ENGINE CSTAR  4 D  61     5   41        11     a             lt  7  0 50 100 150 200 250 300 350  time  s       20_ENGINE ROF                      en             0 25 50 75 100 125 150 175 200 225 250 275 200 325 350 375  time  s               18_FLUIDFLOWVALVE CONTROLVALUE     19_FLUIDFLOWVALVE CONTROLVALUE             alizatio D       25 000 4  22 500    
2.          Figure 3  OpenSimKit MMI main window    The MMI main window comprises two subwindows  The upper subwindow displays the    OpenSimKit User Manual V3 7 0 17 94    submitted commands and their state and the lower subwindow displays the logged  parameters sent to the MMI by the simulator via a packet transfer mechanism during  running simulation  The MMI menu bar comprises a File and a Figures menu     s File menu  Four buttons representing the most important OpenSimKit simulator  control commands and a button to shutdown the MMI are included  Shutdown of the  MMI automatically implies shutdown of the simulation too     O    O O O 0    Click on the menu item  File  and then on the menu item  Run  to start the  simulation computation    Now you can enter commands in the  Cmd Window   Just enter your commands  in the command window  Named  Cmd Window   in the last empty line and hit  the enter key to send the command  For the results of your commands take also  a look at the console output in addition to the  Log Window     Click on  File Stop  to pause the simulator    Click on  File Resume  to resume the paused simulator    Click on  File Shutdown  to terminate the MMI and the simulator    For a list of available commands take a look at chapter 9 Command Reference     The simulation generates an outputfile   in this example named myOutFile txt   into  which it cyclically log the output results of the computation  according those the variables  selection and log frequency
3.     get  lt instance gt   lt field gt   Returns the value of a manipulatable variable      lt instance gt  is the name of the component instance you want to adress  in case a class is  instantiated more than once   It is case sensitive  With the supplied sample files there exist  20 components named    00 HPBottle    to    19 FluidFlowValve     However  not all have  manipulatable variables  Use the help command to get a list of all available manipulatable  variables      lt field gt  is the name of the member variable of the instance of which you would like to get  its value  It is case sensitive  The following fields are in the instance  00_HPBottle         mass double variable  volume double variable  specificHeatCapacity double variable  ptotal double variable  ttotal double variable  fluid String variable  Examples     get 00 HPBottle mass    9 3 4 GetA    geta  lt instance gt   lt field gt   lt position gt   Returns the value of an element of an one dimensional array      lt instance gt  is the name of the component instance you want to address  in case a class is  instantiated more than once   It is case sensitive  With the supplied sample files there exist  20 components named     00_HPBottle    to    19 FluidFlowValve     However  not all have  manipulatable variables  Use the help command to get a list of all available manipulatable  variables      lt field gt  is the name of the member variable of the instance of which you would like to get  its value  It is case s
4.    Jens Eickhoff  2 0 2004 First OpenSimKit C   release   Jens Eickhoff  2 1 Dec 2004 C   V2 1 cleaned up code release no longer  comprising unused interfaces   Jens Eickhoff  2 2 Feb  2005 Featuring XML inputfiles   Peter Heinrich  ETH Z  rich  2 3 Mar  2005 Featuring XML Inputfile editor   Peter Heinrich  ETH Z  rich  2 4 Aug  2006 Div  bug fixes  amp  first Doxygen C   code docu   Jochen Scheikl  Matthias Raif  TU M  nchen  2 4 1 Sept  2006  Simple Power  electric system demo   Jens Eickhoff  2 4 2 Jul  2007 Java control console  amp  simulator demo as multi  program multi threading application   Jens Eickhoff  OSK J May 2008 OSK J 2 4 in Java   port from C   to Java   V2 4 2 Alexander Branat  OSK J July 2008 First version with full Ant based build system   V2 4 4 Alexander Branat  OSK J Sept  2008 Port of MatLab SimplePower Model to Java   V2 4 5 Ivan Kossev  Universit  t Stuttgart  OSK J Oct  2008 Provision of a simple Orbit Propagator in Java   V2 4 6 Ivan Kossev  Universit  t Stuttgart  OSK J 01 11 2008 Version featuring new XML File Structure  revised  V2 5 0 inputfile parsing and entirely new model kernel  registration mechanisms  First approach in direction  of a service oriented architecture   Alexander Branat  OSK J Feb  2009 Now implementing absolute simulation time in ISO  V2 5 1 format              Alexander Brandt       OpenSimKit User Manual V3 7 0    90 94                               Release Date Changes  OSK J May 2009 First release containing a first par
5.    The Java Astrodynamics Toolkit is used in a very bare version which supports only  the gravity model  This is necessary as the complete JAT is very huge library which  has itself lots of dependencies   s Packet Library   Used for the communication between the MMI and the Simulator  However  the  Packet Library is an OpenSimKit subproject and therefore delivered as source code  and completely included into the build process   e Junit 4 6   JUnit is used as a framework for the unit tests included in the OpenSimKit source  distribution   e JFreeChart 1 0 12   JFreeChart is necessary for plot windows     These software libraries are directly included in the OpenSimKit downloads and do not  need to be installed separately by the user  If the user already has other versions of  these libs installed  OpenSimkit will use its own ones during the build process to avoid  conflicts  The advantage is that OpenSimKit can be fully deinstalled simply by deleting its  installation directory     OpenSimKit User Manual V3 7 0 12 94    Part      5 Downloading  amp  Installing OpenSimKit    When downloading OpenSimkit from the website  the user receives a  zip archive file  which may be copied to the installation directory   e g      home OpenSimKit     Unpacking the  zip for an OpenSimkit release osk j X Y Z src zip will lead to generation of  a subdirectory   osk j X Y Z src in the selected installation directory  By this means multiple  OpenSimkit releases easily can be installed aside of e
6.    mesh  for mesh definitions   Attributes    none    8 6 2 Mesh Section Example  A nested mesh definition is shown below     OpenSimKit User Manual V3 7 0 25 94           lt meshes gt      lt mesh name  mesh_0  level  top  gt         lt model gt 21_EngineController lt  model gt         lt mesh gt mesh_1 lt  mesh gt      lt model gt 22_Structure lt  model gt               lt model gt 23_Environment lt  model gt    lt  mesh gt     lt mesh name  mesh_1  level  sub  gt    lt mesh gt mesh_2 lt  mesh gt    lt model gt 05_Pipe lt  model gt    lt model gt 06_Filter lt  model gt    lt model gt 07_Pipe lt  model gt    lt model gt 08_PReg lt  model gt    lt model gt 09_Pipe lt  model gt    lt model gt 10_Split lt  model gt    lt model gt 11_Pipe lt  model gt    lt model gt 12_PReg lt  model gt    lt model gt 13_Pipe lt  model gt    lt model gt 14_Pipe lt  model gt    lt model gt 15_PReg lt  model gt      lt model gt 16_Pipe lt  model gt            lt model gt 17_Tank lt  model gt      lt model gt 18_FluidFlowValve lt  model gt                        lt model gt 19_FluidFlowValve lt  model gt               lt model gt 20_Engine lt  model gt         lt  mesh gt    lt mesh name  mesh_2  level  sub  gt      lt model gt 00_HPBottle lt  model gt         lt model gt 01_HPBottle lt  model gt      lt model gt 02_Pipe lt  model gt         lt model gt 03_Pipe lt  model gt         lt model gt 04_Junction lt  model gt         lt  mesh gt            lt  meshes gt        8 7 logOutput    This element
7.   Rouven Witt     Attitude dynamics implementation  Ivan Kossev   Code merges  system integration  tests  debugging   packaging and user manual enhancements  Jens  Eickhoff        OSK J December 2010  V3 6 0             V3 6 0  Dynamically updating plot windows    including ground track plot of the rocket over Earth   Michael Fritz     Fix of a problem in Celestia with scripted spacecraft  attitude via ECI quaternions   Jens Eickhoff and Ivan Kossev     Fix of longitude position computation formally  implemented via Java Astrodynamics Toolkit   Michael Fritz  Oliver Zeile  Jens Eickhoff     User Manual updates   Rouven Witt  Jens Eickhoff        OpenSimKit User Manual V3 7 0    92 94          Release Date Changes          OSK J January 2011 Implementation of provider subscriber mechanism  V3 7 0 for model variable interchange   Alexander Brandt  Jens Eickhoff    User Manual updates   Michael Fritz  Ivan Kossev  Jens Eickhoff                OpenSimKit User Manual V3 7 0 93 94    21 License  Trademark and Warranty Disclaimer        e OpenSimKit    Is a registered trademark of the original tool inventor and open source project coordinator   Dr  Jens Eickhoff  Immenstaad   Germany    OpenSimkit is free software  You are free to publish  copy  use and modify it under the  conditions of the GNU General Public License Version 3 as published by the Free  Software Foundation     A copy of the GNU General Public License is enclosed in the tool distribution  downloadable from    www ope
8.   where c   m s  is the characteristic velocity of the combustion gases in the  0       m  thrust chamber  c  is mainly a function of the mixture ratio OF  5 of oxidizer to fuel  f  mass flow rate  Now  the nonlinear behavior of the thrust can be calculated with     F mcxc   11 81     The values for c  and cf are theoretical values with 100  efficiency  thus efficiency factors  for c  and cr are used  c  describes the thrust factor  a number that describes the the  augmentation of thrust from the thrust chamber in the nozzle  The value of cr depends  mainly on the ambient pressure and the conditions in the thrust chamber  The altitude for  the ambient pressure calculation is currently static and needs to be imported from the Lat   Long Alt routine     11 12 1 1 Characteristic Velocity c     A polynomial for c  has been calculated with NASA s CEA Gordon McBride    http   www grc nasa gov WWW CEAWeb        c    ber O F       2000 00       Eu 6 5_ 4 3   1800 00 y  0 1481x  4 3126x 50 87x     309 5x     1011 1x                                                  1549 9x   880 12  1600 00 R     0 9999  1400 00 F z    Astris  N204   Aerozin 50   1200 00  1000 00   Probe des Polynoms   800 00        Polynomisch  Astris  N204     Aerozin 50    600 00   400 00   200 00   0 00 T T T 1  0 00 2 00 4 00 6 00 8 00             OpenSimKit User Manual V3 7 0 53 94    The values for c  from the polynomial are ideal without losses  so a factor for the  combustion efficiency n  c  has been introduc
9.  EngineController is a unit designed for control of oxidizer and fuerl flows to the engine  of the modelled rocket  It provides two analog line outputs which e g  can be connected to  FluidFlowValve components     In the Engine Controller for each output line the function of the control value over time has  to be programmed by the user according to the user s needs  The delivered example code  starts with a signal value read from input file and reduces the output signal within 200sec  to zero     11 11 The IntervalController Model    The IntervController also is a unit designed for control of oxidizer and fuerl flows to the  engine of the modelled rocket  lt provides two analog line outputs which e g  can be  connected to FluidFlowValve components     This model class allows to specify up to 10 time intervals with individual control output  value setting  The start   end time and value for each interval are loaded from the  according input file section     for both of the output lines     Refering to Figure 6 the IntervalController and the EngineController can alternatively be  used to control the rocket stage engine     OpenSimkit User Manual V3 7 0 52 94    11 12 The Engine Model  11 12 1 Basics    In previous versions of OSK the Engine thrust was only calculated with a constant ISP  value with    F mISPg   11 50     where m is the total mass flow of oxidizer and fuel into the thrust chamber     To get a more realistic behavior  the ISP is calculated from         sp  F  g  
10.  Equipment Models in OpenSimKit    This chapter describes the creation and use of a sample OpenSimKit system equipment  model  For a first look at the OpenSimkit architecture a simple temperature sensor for the  example rocket stage system is implemented     It starts with the creation of a Java class representing the component model and goes on  to explain the compilation process of the model  After this the input file is changed so that  the model is actually used by the Simulator  After a simulation run the simulator created  output file is analyzed     16 1 Prerequisites    e Netbeans IDE  http   www netbeans org    get at least Version 6 1   e Create a Netbeans Free form Project for the OpenSimKit Simulator as described in  the document Netbeans 6 x Integration odt found in the osk j x y z src doc directory     As this tutorial focuses on the creation of a simulator component model it requires the use  of the Netbeans IDE  Although it is possible to use another IDE or no IDE at all to create  an OpenSimkit component model the constraint of using only one IDE makes this tutorial  much more focused on model development instead of IDE differences  It is possible to use  Netbeans 6 x for OpenSimKit Component development     16 2 Writing a Java Class    For this tutorial it is best to include the new model in the rocket propulsion model library   The reason for this is that there exists already a build file for this library and this model can  be easily seen in action when in
11.  contains all information about the logging of model variables to the output  file     OpenSimKit User Manual V3 7 0 26 94    Containing elements     Fehler  Referenz nicht gefunden                               Attributes    Attribute Type Required  Description   delimiter string yes The delimiter between two entries  The string  T   stands for the tabulator    end string yes The time for which the logging will end    factor positive  yes Every    factor    iterations an entry is written to the  integer output file    start string yes The time for which the logging will start           8 7 1 entry  This element contains information about one logfile entry   Containing elements                       none   Attributes    Attribute Type Required Description   format string  no How the output value should be formatted  All Java  formatting options are supported  see  http   java sun com j2se 1 5 0 docs api java util Formatter h  tml     header string  no The header of the output values  If this attribute is missing  then the name of the variable is used for the header    model string yes Name of the model    variable string  yes Name of the model s variable  which should be written to                the output file        8 7 2 LogOutput Section Example  A log output definition is given below         lt logOutput start  0 0  end  250 0  factor  1  delimiter   t  gt            lt entry model  timeHandler  variable  simulatedMissionTime  header  Mission  Time  format  S1StFTS1StH 
12.  currently only tested with Ant 1 7 0 and higher versions  To  compile OpenSimKit open a terminal console on your computer and navigate into the  OpenSimkit distribution s     build    subdirectory     Principally the build system has multiple targets  i e  simulator  MMI etc  can be built  individually  but this feature is postponed to a later chapter here  For the beginner user the  simple command     gt ant all    builds all binaries in the archive including the according javadoc documentation  This is  what most newcomers will do first  The build process will report building of the diverse  targets onto the text console  A message similar to    BUILD SUCCESSFUL  Total time  4 seconds    will document the successful compilation of all targets and the proper arrangement of all  configuration files in the work directory     7 Quick Start Information    To run a simulation the simulator must be started first  It will start up and wait listening to  communication sockets 1500 and 1510 for a Man Machine Interface to connect to it  So  after simulator startup the MMI has to be started   which automatically searches for a  booted simulator and connects to it   and then from the MMI the simulation can be started   stopped  controlled  terminated etc  These steps are explained now in the subsequent  subchapters     7 1 Starting Simulation and MMI  To start up the simulator go into the   work directory of the OpenSimkit distribution  installation and type   Command line Windows   os
13.  density and the friction coefficient now the outlet pressure of the  pipe can be computed via     y T  Pou Pin 7    ur  11 14     For reflecting the throttling effects and heat transfer from pipe wall to fluid the pipe is split  into 10 subsections and for each element the subsequent temperature changes are  computed individually  First the Nu  elt number has to be computed  which is done    applying    Re  1000  Pr    2  14127   PF 1     This equation again reflects the transition area and the entirely turbulent flow range  7 can  be computed from the Reynolds number with     2    3    o       Nu  1                  11 15     T   1 82log Re 1 64     11 16     The heat transfer coefficient finally can be derived again via     a  Nun  11 17     11 4 The Junction Model    The JunctionT1 model just serves to add the fluid flows from two inlets to one outlet flow   Neither specific pressure drop effects nor heat transfer effects are considered     The model however in backiteration steps of the boundary problem DEQ solving also  works in reverse order by assuming inlet flows from left and right side and by saving the  ratio derived in the previous iteration     OpenSimKit User Manual V3 7 0 43 94    11 5 The Filter Model    The FilterT1 model reflects the effects of a gas flow through a gas filter holding back any  dust or other particles  The pressure drop of the gas flow is modeled by a linear  dependency equation  The pressure drop at 0 0 ks s flow is obviously 0 0 bar  The  
14.  down the variable meanings     e The first 2 3 letters indicate the physical variable  E g  a heat transfer coefficient  Alpha is called Alxxxx     e The middle part typically indicates e g  whether the variable describes something  about the outer wall     Au  enwand   AW  or the separation wall btw  Oxidizer and  fuel tank     Trennwand   TW   E g  ALTWxx     e The last letter s  indicate whether the variable describes the tank wall section in  contact with fuel   Brennstoff      B  or oxidizer     Oxidator      O  and whether the part  with gas  G  or liquid  L  contact is described  E g  ALTWGO is the variable for the  heat transfer coefficient Alpha between the separation wall and the gas in the  oxidizer compartment     11 8 1 The Differential Equation System    The processes inside the tank which take place during rocket stage operation can be  reflected by a system of coupled first order ordinary differential equations  The numerics  problem to be solved is propagation all changes over time  i e  an initial value problem  All  variables describing the physics inside the tank shall be known at time    For this point all  derivatives of the to be integrated variables can be computed and the values for t   dt are  to be integrated numerically  The tank model therefore computes all variable derivatives by  means of the method DEQDeriv   and provides them to the solver in a one dimensional  array     Y F t Y   11 19   t Start value of the independent variable time  Y Arra
15.  fixed frame and as positions in longitude   latitude    altitude format    A more realistic model of the rocket engine  computing thrust according to fuel oxidizer mixture  and depending on flight altitude  atmospheric  pressure     Ivan Kossev  Mario Kobald  Fabian Steinmetz   Christoph Gomringer  Helmut Koch  Universitat  Stuttgart       OpenSimKit User Manual V3 7 0    91 94          Release Date    Changes       OSK J December 2009  V3 3 0    IntervalController model added which can be used  as alternative to the EngineController    By means of this model e g  multiple engine firing    off time intervals can be defined    The PointMass model was updated to interpret  resulting forces as being always tangential to orbit  flight vector until a detailed attitude dynamics is  available    A first use of both new PointMass and  IntervalController was to simulate a first rocket  stage Hohmann orbit transfer     PointMass enhancements by Ivan Kossev   Universit  t Stuttgart     IntervalController  Inputfile configuration for  Hohmann Transfer and user manual  enhancements Jens Eickhoff        OSK J December 2009  V3 4 0    This release comes with an enhanced MMI  featuring a S C ground track plot over Earth map to  track S C position     User manual enhancements Michael Fritz and Jens  Eickhoff       OSK J April 2010  V3 5 0    Comprising simple spacecraft attitude dynamics  and interface to 3D Astrodynamics toolkit Celestia     3D geometry model and raw Celestia Lua scripts by
16.  fuel tank    Y 15  Temperature of outer wall of fuel tank in contact with gas   Y 16  Temperature of outer wall of fuel tank in contact with liquid  Y 17  Temperature of separation wall of fuel tank in contact with gas  Y 18  Temperature of separation wall of fuel tank in contact with liquid  Y 19  Mass of liquid oxidizer in oxidizer tank compartment   Y 20  Mass of liquid fuel in fuel tank compartment    In analogy thereto the variables stored in field Y of the TankT1 model represent the  according derivatives  E g      Y  1  Mass flow of pressurization gas in oxidizer compartment  Y  2  Temperature gradient of gas phase in oxidizer compartment  Y  3  Volume gradient of gas phase n oxidizer compartment   etc     These derivatives Y can be expressed as functions of the state variables Y  The  according thermodynamic equations are cited in the subsequent sections     OpenSimkit User Manual V3 7 0 46 94    11 8 2 Thermodynamics of the Oxidizer Tank    Since the nitrogentetroxide as oxidizer has a non neglectable vapor pressure at 300K  the  gas phase in the oxidizer compartment must be treated as mixture of both oxidizer vapor  and pressurization gas Helium  Computations however have shown that the mass of  gaseous oxidizer can be assumed to be constant over the rocket stage operations time  1    The temperature in the tank decreases during propellant consumption which implies that  oxidizer vapor would condense  but the overall volume of the gas phase increases  Thus  despite
17.  id est  gt  that is  with respect to    Technical Abbreviations    DEQ  ECI  ECEF  IDE  JAT  JDK  JRE  JVM  MMH  MMI  OSK  SW  XML    Differential Equation   Earth centered inercial coordinate frame  Earth centered Earth fixed coordinate frame  rotating with the Earth   Integrated Development Environment  Java Astrodynamics Toolkit   Java Development Kit   Java Runtime Environment   Java Virtual Machine  Monomethylhydrazine   Man machine Interface   OpenSimkit   Software   Extensible Markup Language    OpenSimKit User Manual V3 7 0    8 94    2 Introduction    OpenSimkit is a free System Simulation software used for teaching purposes at the  University of Stuttgart  Germany  From its historic roots its application to spacecraft  engineering is by far the most mature domain     The very first core simulator was implemented in FORTRAN 77 in the eighties  1   later  was converted to an object oriented Kernel in C   mid of the nineties  2  and was made  available for student s use in 2004 by the original author     Begin of 2008 the toolkit was converted to Java language by one of the former students   Alexander Brandt  to make it even more generic and simple to use for students getting in  touch with a simulator for the first time  Applying Java all the nasty pointer and references  handling topics belonged to the past  the build process was significantly simplified for a  user and finally also the simulator now is independent from the underlying operating  system preferred by 
18.  lt logOutput start  0 0  end  250 0  factor  10  delimeter   t  gt            lt entry model  20_TemperatureSensor  variable  temperature   gt    lt     End changes for TemperatureSensor test     gt    lt  logOutput gt           OpenSimkit User Manual V3 7 0 81 94       16 5 Analyzing the Output File    If the output file  outfile txt  is opened there should be an additional column named    S18   TEMPERATURE    in the file  If the default simulator settings were used the values of the  output file for the S18 TEMPERATURE column should look like this           S18 TEMPERATURE  300 000000  301 272749  302 792946  304 637163  306 531399  308 227183  309 544285  310 382221  310 713733  310 568240  310 011523  309 126704  307 999127  306 706321  305 312682  303 867866  302 407565  300 955543  299 526275  298 127368  296 761670  295 428949  294 127142  292 853235  291 603823  290 375467  289 164980  287 969420  286 786121  285 612714  284 447013  283 287346  282 132376  280 980871  279 831664  278 683607  277 535991  276 388402  275 240327  274 091226  272 940610  271 788361  270 634546  269 479107  268 321976  267 163104  266 002430  264 839882  263 675404  262 508907  261 340189                         OpenSimKit User Manual V3 7 0 82 94    17 Coding Guidelines    During OpenSimkit porting developing from C   to Java  a few guidelines consistently  have been applied  They are presented here and should be followed by all contributors     s No wildcard imports   http   stackoverfl
19.  mc  m mc           11 6     vV    The cinetic energy of pressurant leaving the bottle can be neglected here  01   The  conductive heat transfer results from the temperature difference btw  fluid and bottle wall  and is driven by the heat transfer coefficient     O aA T  T   11 7     For computation of the pressure gase s specific enthalpy please refer to section 11 1    Currently for integration of the DEQ 11 6 a simple explicit Euler method is used   which is  acceptable since all gradients are negative and thus the method is always converging and  stable     TST AT  11 8     new    The gas pressure after finishing the timestep integration   i e  after simulating a dm of mass  has vented from the bottle to its outlet   is computed under consideration of the non ideal  behaviour of the gas at high pressure levels  This is essential for Helium as pressurant   The deviation from the ideal gas law is reflected by the compressibility factor Z  The  equation reads as follows     p ZpRT  11 9     The density p results from division of the remaining mass by the bottle volume  But the  factor Z itself is a function of the pressure  The dependency of Z as function of p is  computed in the pressurant Helium gas model through a polynomial approximation which  is checked against experimental data  02   See equations 11 4and 11 5  Applying this    OpenSimKit User Manual V3 7 0 40 94    method the remaining pressure in the bottle is computed iteratively  A start pressure from  ideal gas e
20.  settings in the inputfile  These logged parameters can be  visualized in diverse ways using the next MMI menu              Visualization OE  amp                       1 000 2 000 3 000 4 000 5 000 6 000    000 8 000 9 000          22_STRUCTURE SCPOSITIONX     22_STRUCTURE SCPOSITIONY 22_STRUCTURE SCPOSITIONZ        Figure 4  MMI plot window with plotted simulation results    e Figures menu     O    O    O    The first menu entry can be used to locate a simulation output file of a  completed or still running simulation    The second entry opens a dialog box for selection of parameters from the  outputfile which are to be plotted over time together in one plot window  An  example of such a plot is given by Figure 4  Multiple such plot windows with  different parameter sets may be opened in parallel    The third menu entry opens a ground track plot window depicting the    OpenSimkit User Manual V3 7 0 18 94    spacecraft s position evolution over an earth map   see Figure 5        Figure 5  MMI spacecraft ground track plot over Earth map     Since V3 6 0 of OpenSimkit the plot windows of the MMI are automatically updated with  new parameter results written to the OSK result output file  So parameter values evolving  over time can be monitored     The plot granularity depends on the output stepsize selected for the simulator result    logging to the output file  The latter is an adjustable parameter in the simulation run input  file     OpenSimkit User Manual V3 7 0 19 94    8 S
21.  the decreasing partial pressure of the oxidizer approximately the overall mass of  oxidizer is kept in vapor state over the entire stage operations time     if extremely long  coast phases are excluded   This implies         0  11 22     The time derivative of the intrinsic energy of the gas volume in the oxidizer compartment  can be formulated as     U   ai  Myap Uyap T M reas U proas   1 1 23   From these two equations results   U   M si C    prgas L    m vap  y P a m prgas Cy ee T gas  1 1 24     The first law of thermodynamics formulated for the gas volume of the tank oxidizer  compartment thus reads     m h T Q    m C T    m C   M reas C  P pikas  Ta T P gas V eas  1 1 25     prgas     prgas in prgas     v  prgas  gas vap   v  vap    The generic gas equation rearranged to solve for the temperature is        VB  T gs 5  11 26   S R gas M gas   with   M gas 7 M yap T M prgas  1 1 27   The differentiation of equation 11 26 results in   4 Vo  R V as My   T    a gas D gas D En  gas gas D gas gas dd prgas   1 1  2 8     gas M gas R gas m gas R gas m gas    OpenSimKit User Manual V3 7 0 47 94    thereby keeping peas constant via pressure control  In this formula Rsa represents the  specific gas constant of the mixtrue from oxidizer vapor and pressurization gas  R    can be  computed from     m o oR  m  R  R    prgas     prgas vap       vap  1 1  29    m gas       Considering equation 11 22 the differentiation then leads to     R   m prgas R prgas   m prgas R prgas  m vap Rn   
22.  the main graphics window from where the  simulator can be commanded via mouse  amp  menu functions  Also result plot  amp  log sub   windows are provided here  In addition during run the MMI process logs certain progress  info into its start up ASCII terminal  See also the figure with MMI 8 console snapshots  above     Since Version 3 5 0 OpenSimKit in addition offers an interface to the astrodynamics  visualization toolkit Celestia  6  for displaying simulated spacecraft in 3D in Orbit  Details  on this functionality are given in Part Ill of this manual     OpenSimKit performs simulation of technical scientific systems which are modeled via  mathematical differential equation systems  In principle it is suited for simulation of a large  variety of systems  such as power plants  automobiles as well as for aerospace  applications like rockets and satellites           Environment            2222                Se ee W W W W W m m Ba m      ter  IH                     Line Based Data  Fs EM Numerical  Line Based IFs  Pwr  Y   gt   DEQ Solver        Physical thermal IFs ME    Physical mechanical IFs      gt             Figure 2  Components and Interactions  Example  Satellite Modeling  from  3      OpenSimKit provides both solving of initial value problems  e g  spacecraft orbit  propagation  as well as boundary value problems and their combination  e g  physics of  spacecraft propulsion systems or space station life support systems   The important  upgrade implemented in OpenSi
23.  time with millisecond  resolution    14 8 System time The time of the system  Normally this is local time   This is in the default Java time format  which is Unix  time with millisecond resolution    22 n Data The data size ranges from 0 to a maximum of 2027  octets    22 n 2 Checksum The CRC16 CCITT checksum of the header and data           Basically it is split into three parts  header  data  footer  The header has a length of 22  octets and contains the most basic information for the communication between the MMI  and the simulator  The packet type is used to distinguish TM from TC packets     OpenSimKit User Manual V3 7 0    73 94    Note   Currently only TM packets are used inside the simulator  The commands from the MMI to  the simulator are still simple strings  This will change in future OpenSimkit releases     The application ID is used to allow the definition of different kinds of packets which have  different data inside  Currently it is only possible to define 256 different TM and 256  different TC packets     Note    It is proposed that an additional field called context should be added to allow more  different packets to be defined  But this change will be discussed in the forum    The sequence counter is used to track the reception of packets  It shall be incremented by  one for every packet send  Each application ID shall have its own sequence counter  If the  maximum value of the sequence counter is reached it shall overflow to 0     Note    Currently the se
24.  you find a    listener lua    and a    talker lua    program  Start them  listener first  and all  you type into the listener will be echoed by the talker as soon as you press  lt CR gt          gt  lua talker lua  gt  lua listener lua   Attempting connection to host Binding to host     and port 8080    localhost  and port 8080    Waiting connection from talker on  Connected  Please type stuff  empty 0 0 0 0 8080      line to stop   Connected  Here is the stuff   whow  it seems to work whow  it seems to work                Configuring Celestia to visualize the OpenSimKit Rocket Stage     After Celestia  Lua and the socketlib are installed  Celestia must be customized manually  to visualize the OpenSimKit Rocket     MM    opt kde3 share celestia av Y    Name v Gr    e Datum    E data 37 Eintrage 2010 01 07 13 33  ES extras 7 Eintr  ge 2010 01 14 01 00     extras standard 5 Eintr  ge 2010 01 07 13 33  ES favicons 8 Eintr  ge 2010 01 07 13 33  ES fonts  37 Eintr  ge 2010 01 07 13 33  E models 68 Eintr  ge 2010 01 07 13 33     scripts 5 Eintr  ge 2010 01 07 13 33     shaders 44 Eintr  ge 2010 01 07 13 33     socket del 1 Eintrag 2010 01 14 00 08  ES splash 1 Eintrag 2010 01 07 13 33  ES textures 5 Eintr  ge 2010 01 07 13 33      bookmarks xml 3 3 KiB 2009 06 22 17 44  celestia cfg 13 9 KIB 2010 01 16 23 01    2  2  2  2  2  2  2  2  2  2  2  2                This comprises providing the Rocket geometry and configuring Celestia to invoke the  relevant Lua routines  They read posi
25. 0 57 94    Finally the matrices comprising different effects can be summarized to one transformation  matrix U     U 6 N P  11 57   Thus  the ECEF position can be obtained with  Rycer  U  Ryo  11 58     As the velocity is the derivative of the position  it can be calculated applying the product  rule    Vieh UV zert UR gcr  11 59   with     MO N P _d0 y    U  ii a N P  11 60     OpenSimKit User Manual V3 7 0 58 94    Part Ill    12 The OpenSimKit Guide Through Galaxy    As cited already in section 2 OpenSimKit provides an interface to Celestia  6  for  visualizing simulated spacecraft in Orbit in 3D  Setting up this interface requires a handful  of manual steps but it is manageable for people like Arthur Dent  so     Don t panic      Douglas Adams  8     12 1 Introduction to Celestia    Celestia is an astrodynamics software which models the entire solar system with all  planets  the moons  comets  major asteroids etc  It allows the user to place his viewpoint  at an arbitrary position in the solar system and watch bodies moving  The user may  accelerate simulated time or slow simulation down  Celestia also allows visualization of  man made objects  such as the International Space Station or other famous spacecraft        Figure 13  Celestia scene  Voyager 2 passing Neptune    This feature is used for visualizing objects simulated by OpenSimKit  Especially for this  purpose the Astris rocket upper stage geometric model was established     12 2 Concept of Interfacing Celestia f
26. 10 30000  will print an error  message  as the array starts at position 0   seta 02 Pipe qHFlow 9 20    OpenSimKit User Manual V3 7 0 33 94    9 3 10 Shutdown    shutdown    Stops the simulation and closes the simulator as well as the MMI  This command  is also available as a menu item  File Shutdown      9 3 11 Stop  stop    Stops a running simulation  This command is also available as a menu item   File Stop      OpenSimKit User Manual V3 7 0 34 94    10 De installing OpenSimKit    To de install OpenSimKit simply remove the entire OpenSimKit release directory from your  computer  i e  the   osk j X Y Z src directory  OpenSimKit does not create any files outside  this directory structure     OpenSimKit User Manual V3 7 0 35 94    Part Il    11 The Rocket Stage Model Library    This section provides an introduction to the physics implemented in the equipment models  of the rocket stage simulation library which is included in the OpenSimKit standard  distribution  This library models a rocket upper stage with a reingnitable engine powered  by N204 and MMH  The data also fit with sufficient precision for N204   Aerozine 50  oxidizer   fuel combinations as it was used by the former ELDO Astris stage  Part of the  models from this library are descendants from  1  ad were verified with data from the  ELDO Astris programme  The layout of the propulsion system is shown in Figure 6     co C1  C2 c4 C3     gt  f  gt    cs  y   lt  gt  Filter  Pa       Pressure  c8    Regulator    C12 
27. 20 000 4  17 500   15 000    12 500 7  10 000      7 500       5 000 4             0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375    time  s               20_ENGINE THRUST          Figure 11  Engine model reflecting non ideal oxidizer fluel mix ratios     11 12 2 2 Verification of c     all    olki 1    The current altitude of the simulation orbit is 600km  where the ambient pressure is almost  zero  So no effects of ambient pressure to the thrust coefficient c  can be noticed  The  value and change of cr becomes important in the lower altitudes  especially for first and  second stages of launch vehicles  For verification of these effects the orbit has been  changed to 30km to see the effects of cr     For a simulated altitude of 30km  cf was 1 8  ISP 300s and thrust 22200 N  Whereas for  100km  cr was 1 875  ISP 310 99 with a thrust of 23000 N  This value is pretty close to the  literature value   http   www astronautix com engines astris htm    which says the vacuum  ISP is 310  s  and thrust is 23000 N for the Astris engine     11 13 The Structure Model    The structure is modeled as a point mass with the according forces  engine thrust  gravity  acceleration  imposed to it  The according S C overall acceleration vector  the velocity and  position are integrated in ECI coordinates applying 4  order Runge Kutta Integrators     OpenSimKit User Manual V3 7 0    56 94    The velocity and position are converted from ECI to ECEE coordinate system by applying  source 
28. 22 222 EI A are 68  13 2 Using Netbeans Tai nennen AAA AE 68  13 3 How to add a new Dependency to OpenSimKit                        4444444ssnnnnn nennen 68  14 Targets of the Ant build xml Tie    69  14 1 Global Targets for both the Simulator and the MMI    sese 69  E L en ee ee 69  14 3 Packet Library Targets uni 70    OpenSimKit User Manual V3 7 0 6 94    14 5 SIMUISIOF R Te L a alle 71  13 0penSsimKilArchileelurfe a sie sods as ads la edo ais mada le ad uo ds ai aes ease ecg gt 72  A A T A S EEE INE EE 72  15 2 Model Libraries  uti A een 72  153 P  cket Library  arena  72  154 OSKRackekspeciliealon an nel abiadagutermectsheatyn 73  16 Developing Equipment Models in OpenSimKit                      uuussssssssennennnnnnnnnnennee nn 75  16 1 Prereguisitesz A A nennen 75  16 2 Writing Ar Java Clas T 75  16 3 Compiling the Java Glass  a ee 78  16 4 Modifying the Input Ale coat ereer 78  16 5  Analyzing the Output EIS  sans a a 82  LECoding Legs lT L sn naeeetetaecs 83  18 Using the OpenSimKit Logger     eeens eer ee eeeesssss renren ernn ennen nenes r nnen e eee 84  18 1 Logger Code Entries for Model Classes    sees 84  18 2 Logger Configuration for Simulation Runs    eee eee 85  TS EWG LU LA ne AR 86  Annexes  20 OpenSimKit History and Releases    sese 90  21 License  Trademark and Warranty Disclaimer    esse 94    OpenSimKit User Manual V3 7 0 7 94    1 Abbreviations    General Abbreviations    a m   cf   e g   i e   w r t     above mentioned  confer   example given   Latin 
29. An Academic Simulation Toolkit    e  OpenSimKit     Photo ESO       User Manual    Software Release  3 7 0 Java   Release date  2011 01 21   Editor  Jens Eickhoff   Authors  The OpenSimKit Team    www opensimkit org    Copyright Information    This Manual is published under Copyright of the OpenSimKit development Team   Distribution of the software and documentation is granted under the GNU Public License  Issue 3  Please also refer to section 21 of this manual     Authoring team    The following team members have contributed to this manual version 3 7 0     Editor  layout  didactic concept   OpenSimkit introduction   tank pressurization  controllers and valve models Jens Eickhoff    Infrastructure technical chapters Alexander Branat   Jens Eickhoff    MMI chapter Michael Fritz  Engine model chapter Mario Kobald  Spacecraft structure model chapter Michael Fritz   Ivan Kossev  Celestia interfacing recipe Jens Eickhoff     Rouven Witt    Contents    TADO Ts dd aaa nn Eee 8  2  IH LOQU CLONE 9  3 Hardware and Operating System Prerequisites             cccccccccccccccnnonnnncnnnnnnnnncnnnnnanancnnnn 11  4 S  ltware  Dependencies eenen see 11  Part     5 Downloading  amp  Installing OpenSimKit                  seeeeneeenennnnnnnen nennen nnnnnnnn nn 14  6 Building OpenSimKit Simulator and MMI Program                ccccceeeeeceeeeeeeeeeeeeeeeeeeeeeeeeetess 16  7 Quick Start IFO ATION au naar 16  7 1 Starting Simulation and Vsti e Movi ea ad eld 16  7 2 OPEN III EIA ia de 17   8 St
30. C wall  fl      And for the part in contact with gas phase   m ts  T  a O mail  gas   Wall  gas wait Wall  fl Well  gas   1 1 39     m Wall  gas C Wall  gas m Wall  gas C Wall  gas    OpenSimkit User Manual V3 7 0 49 94    The second term in addition considers the wall mass which comes into contact with the  gas per second due to sinking liquid level in the tank compartment     11 8 3 Thermodynamics of the Fuel Tank    The equation system for the fuel compartment of the tank is similar to that for the oxidzer  compartment  For the fuel however the gas phase can be approximated as to consist of  pure pressurization gas  since the vapor pressure of MMH or similar fuels is considerably  low  The derivative of the intrinsic energy of the gas phase thus is reflected by     U gas  m prgas u gas  u    gas M gas  1 1 40   With     u   c T H C T    gas v  gas    gas gas       v  prgas  gas    Even if the gas phase only is consisting of pressurant  for the terms describing gas inflow   pressure p  volume V  temperature 7 and mass m  the index prgas is used and for the  variables describing the state inside the tank the index gas is used  The same applies for  material properties such as gas constant     So the first law of thermodynamics for the gas phase of the fuel compartment is reflected  by     m prgas h prgas    in T Q gas  m prgas Cu prgas T wer  m gas C v  sd T gas T D gas 4 gas  1 1  4 1     From the generic gas equation       Peas er    11 42  m gas R   T T      via transform
31. High Pressure Bottle Model                   4 44 Henne 40  11 3 The Pipe Model a IO 41  11 3 1 Modeling the Pressure Dro  i a    222 22 2 eed eur ered ee 41  11 4 The Junction Model    sss sese 43  LS The Filter MOGe le een age eta 44  11 6 The Pressure Regulator Model    44  11 7 The Pipe Split MOL  299209 ZR 9 eee ZR YZ 9 ZR e Yd 9 ZR Y eed ZR YE 9 nated Baad EEEE dates 44  11 8 The Propellant Tank Model    sss 45  11 8 1 The Differential Equation SystemM      ooonooniicnnincniccconnnnconeconococonnancnrnrccnc nn 45  11 8 2 Thermodynamics of the Oxidizer Tank    47  11 8 3 Thermodynamics of the Fuel Tank    sese 50  11 8 4 Thermodynamics of the Tanks in Blowdown Mode                            51  141  9 The Flow Valve  Model  caida ida aia 52  11 10 The EngineController Model    52  11 11 The IntervalController Model    sees 52  11 12 The Engine Model  nat 53  11 1217 IBASICS sa  25822 53  11 12 1 1 Characteristic Velocity ee ee as ee 53  X I N M Thrust Factor Se air 54  11 12 2 Model   Verficali  n 2    Ra 55  111221 A re Vera ern 55  11 1222 NM CNCA ONO o Ei 56  11 13 The Structure Model acto ee ee an 56   Part Ill  12 The OpenSimKit Guide Through Galaxy    sese 60  12 1 Introduction to Gal  s ia iii a een 60  12 2 Concept of Interfacing Celestia from OpenSImKIL ee eee eee e eneen 60  12 3 Steps for the Infrastructure Sel  p   sta 61   Part IV  13 Developing Component Models for OpenSimKit                         uuuuossssesnnnneeenn nn 68  13 1 Using Eclipse JDT 33 2 2
32. S1StM S1StS S1StL   gt         l       lt entry model  00_HPBottle  variable  ptotal  format   6 6f   gt                        lt entry model  01_HPBottle  variable  ptotal  format   6 6f   gt        OpenSimKit User Manual V3 7 0 27 94              lt entry   lt entry   lt entry   lt entry   lt entry   lt entry   lt entry   lt entry   lt entry   lt entry   lt entry     lt entry        lt entry        lt  logOutpu    mode     mode     model    L  01_       mode           mode     model  model  model  model  model  model    model      22_S    22_S    22_S    22_S    22_S    22_S    22_S  L  22_S       mode        t gt     L  22_S    C EUC    C EUC    Lruc    Lruc    Lruc    Lruc    Lruc    Cruc       C EUC      00_HPBottle        HPBottle     ture   ture   ture   ture   ture   ture   ture     ture        ture     variable  mftotal  format   6 6     gt        variable  mftotal  format   6 6     gt       20_Engine  variable           20_Engine  variable      variabl    variabl  variabl  variabl  variabl  variabl  variabl    variabl        thrust  format   6 6     gt      alt  format   6 6     gt                 le  scVelocityX  format   6 6f   gt   e  scVelocityY  format   6 6f   gt   e  scVelocityZ  format   6 6f   gt   e  scPositionX  format   6 6f   gt   e  scPositionY  format   6 6f   gt   e  scPositionZ  format   6 6f   gt     e  scPosLat  format   6 6     gt        e  scPosLon  format   6 6     gt        variabl    e  scPosAlt  format   6 6     gt        OpenSimKit User Ma
33. X      0 5  5 Y  241 1  ms   22_STRUCTURE SCPOSITIONZ y      __QQ_ gt    gt EE5AAAAAAAA A A 22     Output y  24_ATTITUDEDYNAMICS SCQ1   m m   Usages  pSize    int DD   oSk 3 SIM  sim run  x OSK J  mmi run  x  24_ATTITUDEDYNAMICS SCQ2 AAA            z Al  24_ATTITUDEDYNAMICS 5CQ3 Konsole iienaa  e Resetting strings                    24_ATTITUDEDYNAMICS SCQ4 Console submitted command   24_ATTITUDEDYNAMICS SCPHI Resetting surings       777777777  Console submitted command   24_ATTITUDEDYNAMICS SCTHETA   ARMOR  aa  AA  24_ATTITUDEDYNAMICS SCPSI A Console submitted command     Create graph a        OSK J N Mm n x  a  Figure 10  Engine model behavior during throttling with ideal oxidizer fuel mix ratio     A first test has been done by letting the engine controller reduce the oxidizer and fuel  mass flow and therefore the thrust linearly from the maximum value at start to zero   Therefore the oxidizer to fuel ratio stays constant and the c  should also be constant as it  can be seen in the above picture     To show the nonlinear behavior of the engine with changing oxidizer to fuel ratio  the  engine controller has been set to only reduce the fuel mass flow  So the c  is nonlinear  decreasing from its maximum value at start with optimum oxidizer to fuel ratio  to lower  values as it can be seen in the following picture  The nonlinear decay can also be seen in  the thrust diagram     OpenSimKit User Manual V3 7 0 55 94                                                       G        
34. ach other     Unpacking the zip archive leads to the following substructure for binaries  libraries and  input files within the   osk j X Y Z src directory     osk j x y z src        bin       build       dependencies       janino 2_5_15          junit 4_6       osk j jat min       slf4j 1_5 6           src        tests       models       netbeans              pkt       woodstox 4_0_4    Root directory of the OSK J distribution     Location of the jar files of both the MMI  and the simulator              Location of the ant build script   build xml    Location of the dependencies needed to             compile the MMI and or the simulator        An embedded Java compiler needed by  logback     jfreechart 1_0_12    Location of the jfreechart and jcommon  jar file necessary for plotting graphs   Location of the JUnit jar file in version 4 6        logback _0_9_15    Logging back end used by OSK J    imum_1_0_0 Minimum version of JAT for OSK J   Contains only classes necessary for gravity  model    The logging interface used in OSK J           Location of the woodstox jar file in  version 4 0 4     Location of libraries needed by the  simulator and or MMI and or models     MMI source code directory   MMI unit test code directory     Location of the model libraries  Starting  with release 2 5 the simulator does not  include any simulation model classes   Instead it searches for jar files containing  model classes in this directory    Netbeans free form projects  One for each  modu
35. ar   Make sure you install version 5 1 or  higher     Now come the bit more clumsy steps  but this recipe should navigate the user properly  through the jungle even as a beginner   Installing the Lua socket library   Windows   Under Windows XP for Lua 5 1 or higher  the luasocket library from  12  is already  included in the Lua standard installation described in the paragraph above  This comprises  the according  dll files and  lua scripts establishing socket access        luasocket 2 0 2 lua 5 1 2 Win32 vc6    lua     amp  socket  ftp lua  http lua  smtp lua  tp  lua  url lua  itn12 lua  mime lua  socket lua   E mime          core dil     amp  socket     core dil      ua5 1 dll        ua5 1 exe  No additional steps are required for installation     Installing the Lua socket library   Linux   For some Linuxes     such as SuSE 11 2   the socket library is not included by default in the  Lua installation rpm  So the luasocket library has to be downloaded from  12  and manual  installation is required  The  tar gz archive has to be downloaded and stored into a  convenient work directory   e g      luainstallwork    Unpacking the archive will lead to a directory structure such as   luainstallwork luasocket 2 0 2     For other Linux variants     such as SuSE 11 3     a precompiled RPM packet is available  already from the Linux supplier s repositories  In such case this luasocket package just is  to be installed by the standard package manager of the Linux distribution and the re
36. ation and derivation the temperature gradient results as   3 m oe as T as V as  DE ee  11 43   l M gas an    For the volume increase of the gas phase in the fuel tank the same equation applies as for  the oxidizer compartment     Pe V nowt Zn  1 1 44     A    OpenSimKit User Manual V3 7 0 50 94    And in a similar approach as for the oxidizer the densitiy of liquid fuel as function of  temperature can be approximated by  1      p   C DT y  11 45   C and D again are constants  The density gradient thus can be expressed by   pp DT y  11 46     The first law for the liquid volume reduces to the same equation as 11 34  The heat  transfer coefficients again are resulting from 11 36 and 11 37  For the temperature  gradients of the tank walls again the formulas 11 38 and 11 39 apply  Therewith also for  the fuel tank a complete equation set is available which can be rearranged to the form of  equation 11 35     11 8 4 Thermodynamics of the Tanks in Blowdown Mode    The tank model supports computing the tank physics in blowdown mode when no more  pressurization gas is fed in from the high pressure bottles due to closed valves and the  rocket stage just is operated until the overall tank pressure has reduced to a certain  minimum needed for engine feed     Since the gas phases now do not reflect open but closed control volumes now  the first law  of thermodynamics changes to slightly different equation     UO  O ga Peas Y gas  11 47     Via rearrangement and insertion of U mc T mc T a
37. ature Sensor  At the end the following XML block is inserted replacing the existing  elements for the connection named  17_PureGas     Basically the Temperature Sensor is  inserted between the Models    16 Pipe and  17_Tank                                 lt connections gt    lt     Begin changes for TemperatureSensor test     gt    lt connection name  17_PureGas  class  org opensimkit ports PureGasPort    gt    lt from model  16_Pipe  port  outputPort   gt    lt to model  20_TemperatureSensor  port  inputPort   gt    lt  connection gt    lt connection name  17a_PureGas  class  org opensimkit ports PureGasPort    gt    lt from model  20_TemperatureSensor  port  outputPort   gt    lt to model  17_Tank  port  inputPort   gt    lt  connection gt    lt     End changes for TemperatureSensor test   gt    lt  connections gt           Finally the    logOutput    section has to be modified to print the TemperatureSensor s  measured temperature into the output file  At the end of the    logOutputL section the  following XML block is added  The attribute model must be the name of the Model  here     20 _TemperatureSensor     The attribute Variable needs the name of the variable to print  into the output file  In this case it is the variable    temperature     Note that the variable  written in this place needs at least to be annotated with  Readable in the source of the  Java class     OpenSimKit User Manual V3 7 0 80 94        lt     Begin changes for TemperatureSensor test     gt     
38. cketpropulsion PRegT1  name  08_PReg  gt    lt variable name  description   gt    lt variable name  length  unit  m  gt  1 lt  variable gt    lt variable name  mass  unit  kg m  gt 2 6 lt  variable gt      lt variable name  innerDiameter  unit  m  gt  014 lt  variable gt         lt variable name  specificHeatCapacity  gt 900 0 lt  variable gt         lt variable name  pcoeff  length  4  gt 24 10245  4462006  1 84912E 3 2 580329E 6              lt  variable gt               lt variable name  temperature  gt 300 0 lt  variable gt      lt  model gt              Each model definition has the tag    model     It has the two mandatory attributes    class    and     name     The attribute class needs the fully qualified name of the class from which this  model will be created  In this case it is    org opensimkit models rocketpropulsion PRegT 1      It means the class    PregT1    from the package    org opensimkit models rocketpropulsion      The fully qualified class name is necessary  because it is used by the OpenSimKit kernel  to instantiate an object of the class  The attribute    name    denotes the name of the Model   Each Model must have a unique name  In the example above the Model s name is     08_PReg     The manipulatable variables of the Model are written between the tags of     model     The variables with the names length  mass  innerDiameter  specificHeatCapacity   and temperature are scalar variables  They are written in the same way as in the source  code of the P
39. co        C14                   Pressure  Difference  Regulator    C15       Pressure  Regulator       C17  c21          C19 Flow Control Valve  Engine  Controller    C18       C20  Engine  Figure 6  Propulsion System Layout     Besides the component models of the pure propulsion system  the rocket stage model in  addition comprises a structure model and a space environment model to be able to  simulate rocket stage flight dynamics in space     11 1 The Helium Gas Model    Helium is used frequently as inert gas to pressurize propulsion system tanks which are  filled with hydrazine derivates and according oxidizers  since these substances are highly  reactive  However when using Helium as pressure gas its non idealness especially  concerning its expansion behaviour has to be considered to compute quantitatively proper  results  This can be achieved by reflecting in detail the variance of Helium s Joule Kelvin  coefficient as function of both pressure and temperature     OpenSimKit User Manual V3 7 0 38 94     3 f A    x     ei    K bar   y  lt 0             68        554 E E T  CEES FE aa DEIA  SERPS EG S    50  DEE RESET E          B se 108 158 2088 258 308 350 p  bar     Figure 7  Joule Kelvin coefficient of Helium as function of pressure and temperature    The Joule Kelvin coefficient of Helium is required to compute its specific enthalpy  In the  Helium gas model the JKC is modeled by a set of polynomes at 1 bar  20 bar  40 bar etc   up to 320 bar which model the JKC as fu
40. code which originally was implemeted as Matlab code at the Institute of Space  Systems  This code considers rotation  precession and nutation which are depicted in  Figure 12  Polar motion is disregarded because its effect is minor and can furthermore not  be predicted correctly        Figure 12  Earth s motion     In a first step  the UTC time which was committed to the method is converted both to UT1  and to TT  Time is needed in these formats for further calculations  Afterwards the  Greenwich Mean Sidereal Time is calculated by applying    GMST   GMST  J2000   0   86400 UTI yon  11 55     which refers to the Greenwich Mean Sidereal Time in J2000  Consequently  the trans   formation matrix comprising rotation effects can be calculated     cos GMST  sin GMST  0  O     sin GMST  cos GMST  0  11 56   0 0 il    In the next step specific angles are calculated by applying correlations  With these angles  and trigonometric functions  the transformation matrix P comprising precession effects is  determined     In the next step the longitude of the ascending node of the moon is calculated because it  has an enormous impact on the Earth s nutation  Therefrom both periodical change of the  position of the Earth s vernal equinox and periodical change of the obliquity of the ecliptic  can be determined  Together with the obliquity of the ecliptic at J2000 and trigonometric  functions  the transformation matrix N comprising nutation effects is calculated     OpenSimKit User Manual V3 7 
41. d file has to be executed to build the whole simulator like    described in the read me     16 4 Modifying the Input File    To use the TemperatureSensor inside the simulation  the configuration file describing the    OpenSimKit User Manual V3 7 0    simulation has to be adapted  The configuration file includes the model definition  the  mesh definition  the connections  and the logging definition     To show the functionality of the TemperatureSensor it is not necessary to create a sample  configuration file from scratch  It is easier to modify an existing configuration file  To do this  a copy of the file Rocket Stage Simulation xml with the name    Rocket Stage   Simulation_sensor xml   is created  At the end of the    models    section the lines below have  to be appended  The fully qualified name of the TemperatureSensor class is     org opensimkit models TemperatureSensor    and its name is chosen as     20 TemperatureSensor     As the TemperatureSensor does not have any variable  requiring initialisation  in other words no variable annotated by  Manipulatable  nothing  needs to be written in between the    model    tags     Rocket Stage Simulation xml   lt models gt         lt     Begin changes for TemperatureSensor test     gt         lt model name  20_TemperatureSensor   class  org opensimkit models TemperatureSensor  gt         lt  model gt    lt     End changes for TemperatureSensor test     gt      lt  models gt              Inside the TankPressurization_sensor xm
42. dencies  This is another step away from a    simple    simulator and  towards a simulation framework  This separation of the simulator and its models allows  users to simply share their model libraries and it makes OpenSimKit more flexible  The  default OpenSimKit models of a rocket propulsion system are now included in the file  osk j rocket propulsion jar in the    models    subdirectory of the OpenSimKit  distribution  Those model libraries can be developed  almost  independent from the  simulator  They only need the osk j sim jar as compile time dependency  because  the latter include the interfaces and base classes  which are needed to create an  OpenSimkit model     During start up the simulator is looking for jar files inside the models directory  Any jar file  found is included in the simulators classpath  This is done by the method  addModelLibrariesToClasspath   of the Class InteractiveMain  During the initialization of  the simulation when the XML input file is read  the Classloader is now able to find the  model classes and can load them into the Java Virtual Machine     15 3 Packet Library  Note     The following section describes work in progress  which means that in case of differences  between the documentation and the source  the source is true  Additionally not all  concepts described here are already fully implemented and tested     OpenSimKit User Manual V3 7 0 72 94    The Packet Library is the core of the communication of the MMI and simulator  The Packe
43. e       OpenSimKit User Manual V3 7 0 32 94     lt value gt  is the value the field should be set to     Examples   set 00 HPBottle mass 1000  set 00 HPBottle fluid test    9 3 9 SetA    seta  lt instance gt   lt field gt   lt position gt   lt value gt   Sets the value of an element of an one dimensional array      lt instance gt  is the name of the component instance you want to adress  in case a class is  instantiated more than once   It is case sensitive  With the supplied sample files there exist  20 components named    00 _HPBottle    to    19 FluidFlowValve     However  not all have  manipulatable variables  Use the help command to get a list of all available manipulatable  variables      lt field gt  is the name of the member variable of the instance of which you would like to get  its value  It is case sensitive  The following fields are in the instance    O2_ Pipe        innerDiameter double variable  length double variable  specificMass double variable  specificHeatCapacity double variable  surfaceRoughness double variable  temperatures Array of double variable  length 10   qHFlow Array of double variable  length 10   massPElem double variable  pin double variable  tin double variable  mfin double variable  pout double variable  tout double variable           lt position gt  is the position in the one dimensional array    lt value gt  the value of the element     Examples   seta 02 Pipe temperatures 0 300  seta 02 Pipe temperatures 9  100  seta 02 Pipe temperatures 
44. ed with a given value of 0 94     The isentropic exponent or ratio of specific heats kappa        of the combustion gases is  also a function of OF and has also been programmed as a polynomial from CEA   picture  below         Isentropenexponent   ber O F                   Kappa             Polynomisch  Kappa                              y    7E 07x     0 0001x     0 0034x    0 0324x     0 1493x    0 3251x    1 5018  R    0 9992                0 00 1 00 2 00 3 00 4 00 5 00 6 00 7 00 8 00             11 12 1 2 Thrust Factor c     The effect of altitude adaption of the nozzle is integrated with the thrust factor c   To  provide the ambient pressure a simple atmospheric model has been included    http   www grc nasa gov WWW K 12 airplane atmosmet html    With the formula for the  area ratio of the nozzle        A Pe  2k   pth      gt    E I l  11 52   with  2k k 1  T   kl IV  11 53        k 1    which assumes 1D isentropic adiabatic flow  the nozzle exit pressure p  is calculated  iteratively with the Newton method  With the exit pressure p   ambient pressure p  and  chamber pressure p  the thrust factor cs can be calculated for each time step        A    A  Pe          OpenSimkit User Manual V3 7 0 54 94    If the calculated nozzle exit pressure is to low  flow separation can occur  Then the value  for the thrust may no more valid  The criterion of Summerfield is used to check for flow  separation in the nozzle  pe  lt  0 4 p    In such case a LOG debug message is created as wa
45. ensitive  The following fields are in the instance  02 Pipe      innerDiameter double variable  length double variable    OpenSimKit User Manual V3 7 0 30 94    specificMass double variable  specificHeatCapacity double variable  surfaceRoughness double variable  temperatures Array of double variable  length 10   qHFlow Array of double variable  length 10   massPElem double variable  pin double variable  tin double variable  mfin double variable  pout double variable  tout double variable           lt position gt  is the position in the one dimensional array     Examples   geta 02 Pipe temperatures 0  geta 02 Pipe temperatures 9  geta 02 Pipe temperatures 10  will print an error message  as  the first array element is called 0   geta 02 Pipe qHFlow 9    9 3 5 Help  help  help  lt command name gt   help  lt component name gt   help  lt simulator information gt   The Help Command prints information about the simulator   help  Invoked without any parameter it prints a list of all available commands     help  lt command name gt   Prints a detailed help about the command     help  lt component name gt   Prints detailed information  Manipulatables  Readables   Callables  about the Component     help  lt simulator information gt   Prints specific global simulator information   Possible values are     Components  A list of the names of all Components inside the simulator as well as their  type     Manipulatables  A list of all Manipulatables inside the simulator ordered by classes as 
46. figurationFile path to config file  implemented in OpenSimKit  bat  sh  starting scripts     2 b  name the file logback xml or logback test xml and place it into the classpath    logback xml should be used for release settings  logback test xml has priority over  logback xml and can be used during development         lt configuration gt      lt root level  INFO  gt                                                                              lt appender ref ref  STDOUT INFO    gt     lt appender ref ref  STDOUT DEBUG    gt     lt appender ref ref  STDOUT DBGSHORT    gt     lt appender ref ref  STDERR WARN    gt     lt appender ref ref  STDERR ERR    gt     lt appender ref ref  ERRORLOG FILE    gt    lt  root gt         lt logger name  org opensimkit Kernel  level  DEBUG   gt               lt logger name  org opensimkit models rocketpropulsion FilterT1   level  TRACE   gt               lt  configuration gt        OpenSimKit User Manual V3 7 0 85 94    19 Literature     1      2      3      4      5      6      7      8      9     Eickhoff  Jens    Erstellung und Programmierung eines Rechenverfahrens zur  thermodynamischen Erfassung des Druckgas F  rdersystems der Ariane L5  Stufe und Berechnung des n  tigen Heliumbedarfs zur Treibstofff  rderung   Study Thesis  Institut f  r Thermodynamik der Luft  und Raumfahrt   Universit  t Stuttgart  Pfaffenwaldring 31  Stuttgart  Germany 1988     Eickhoff  Jens    Modulare Programmarchitektur f  r ein wissensbasiertes Simulationssystem  mi
47. he fluid flow from one inlets to two outlet flows  Neither  specific pressure drop effects nor heat transfer effects are considered     The model in backiteration steps receives the mass flow boundary conditions requested  from the components connected downstream the outlets and splits the inflow value in the  according ratio     not caring whether the overall inflow rate is sufficient  To assure this the  sum of the massflows requested at the outlets as boundary conditions is handed over to  the next upstrem inlet component     The overall iterative boundary condition solving method is described in  3      OpenSimKit User Manual V3 7 0 44 94    11 8 The Propellant Tank Model    The combined fuel oxidizer tank is modeled by means of the class TankT1  This model  includes a complete implementation of the tank physics DEQ system which models the  behaviour over time in both tank compartments  The thermodynamic effects modeled is  limited to medium energetic fuel oxidzer combinations  i e  hydrazine derivates as fuel and  nitrogen oxides as oxidizers  For high energetic fuel oxidizer combinations additional  physical effects of cryogenic fluids have to be considered  1      Please note that when looking into the sourcecode lots of variables can be found with  slightly cryptic names and 6 characters name length   all uppercase  This is a heritage  from the former FORTRAN77 implementation of the tank pressurization system in  1   The  following recipe should be sufficient to trace
48. iguration files to bring everything together     All components are available for both Linux and Windows platforms  The setup described  in the subsequent paragraphs works for both platforms  Differences only appear  considering the install directories of Celestia and Lua     12 3 Steps for the Infrastructure Setup    Installing OpenSimKit   At first a Celestia compliant OpenSimKit release has o be installed  i e  V3 5 0 or higher   Please refer to chapter 5 for the according steps     Installing Celestia    On a lot of Linux platforms  Celestia is already installed by default and no installation tasks  have to be performed explicitly  For the popular Linux implementations such as SuSE or  Ubuntu or RedHat precompiled packages are available for installation and do not require  Celestia builds from sourcecode  The same applies for all MS Windows Platforms from XP  onwards    In case your operating system does not include a preinstalled Celestia  the Celestia  homepage and installation root can be found in  7   Just follow the instructions to receive  the standard installation which nowadays is V1 6 0     Installing Lua   Lua by default is pnot reinstalled on Windows nor on Linux platforms  While on Windows  platforms you have to install it from the Lua root  10   on most Linux es there are packages    OpenSimKit User Manual V3 7 0 61 94    for Lua included in the distributions  e g  Ubuntu  SuSE   Use the according installation  tool and install Lua  via apt get  YaST or simil
49. inal double MAXTSTEP   10 0    private static final double MINTSTEP   0 001    private static final int TIMESTEP   1    private static final int REGULSTEP   0           After this part of necessary code follows the only member variable needed for the  TemperatureSensor  the temperature  Choose double as its type and make it private              private double temperature        Additionally  the temperature should be accessible so it can be printed into the result file or  inspected during run time  However  it should not be pre defined by the configuration file  or manipulated during run time  So it is annotated with  Readable         Readable private double temperature              Now the ports are defined         IsPort private Port lt PureGasDat gt  inputPort            IsPort private Port lt PureGasDat gt  outputPort        Next a constructor has to be written to allow for the correct instantiation of the  TemperatureSensor  If just the default constructor is used this class cannot be used as a  Model  As it is clearly visible  basically the parent class constructor is invoked with class   specific customizations        public TemperatureSensor final String name          super name  TYPE  SOLVER  MAXTSTEP  MINTSTEP  TIMESTEP  REGULSTEP             OpenSimkit User Manual V3 7 0 76 94    Finally  the temperature reading method has to be implemented  For this the  iterationStep   method of the base class is overridden         Override       public int iterationStep   throw
50. ins information about one provider subscriber table entry   Containing elements        Fehler  Referenz nicht gefunden  provider  subscriber                   Attributes    Attribute Type Required  Description    provider string yes Fully qualified name of the class from which this  connection will be created   name string  yes Unique name of the connection                   OpenSimKit User Manual V3 7 0 24 94       8 5 2 ProviderSubscriber Table Section Example  A providerSubscriber definition is shown below                     lt entry name  gravityAcceleration  gt    lt     Type   double 4     gt    lt provider model  23_Environment  variable  gravAcceleration   gt    lt subscriber model  22_Structure  variable  gravityAccel   gt    lt  entry gt        Note  Vectors like given gravity example are defined as double 4   The first vector element  contains the magnitude  the other 3 the normalized direction components in the  corresponding coordinate system     8 6 mesh  for mesh definitions     This element contains all information about the meshing of the models   Containing elements     mesh    Attributes        Attribute Type  Required Description  name string yes Unique name of the mesh     level string yes The level of the mesh     top    for the top level mesh and     sub    for the sub level meshes                             8 6 1 meshes    This element contains all information about the meshing of the models for the boundary  condition solver     Containing elements 
51. k j sim bat  inputfile xml   outputfile txt   Command line Linux       osk j sim sh  inputfile xml   outputfile txt     e The inputfile Rocket Stage Simulation xml is distributed together with the  OpenSimkit standard installation comprising the rocket simulation library as    OpenSimKit User Manual V3 7 0 16 94    example    e The outpuffile is the text file where the simulation will log its output data  The  selection of what results at which timesteps are to be logged can be specified in the  inputfile   details see later      After the simulation is up and running and is waiting for an MMI to connect  the MMI can  be started up by     Commandline Windows   osk j mmi bat 127 0 0 1  Commandline Linux       osk j mmi sh 127 0 0 1    7 2 OpenSimKit MMI    After the simulation has been started up according to chapter 7 1   e g  by     osk j sim sh Rocket Stage Simulation xml myOutFile txt  and after the simulation MMI has been started according to chapter 7 1   the simulation    computation and results visualization can be controlled via the MMI  Figure 4 depicts a  screenshot of the MMI main window              OSK Control Console   OA  amp   Eile Figures       E Cmd Window   RUN  Command successful   Run            E  Log Window    cO ptotal  2 7998820028015137E7  c8 tout  300 000061 4626333  c12 tout  300 0000614626333  c15 tout  300 0000614626333  c17 tin0  300 0000614626333  c17 tinl  300 00006122030317  c17 poxt  17 700000789469776  c17  GNwT  287 1499638033914          
52. ket upper stage as it is e g  used  for positioning satellites in highly inclined earth orbits  A flowchart of the system is given in  Figure 6  Details on this system and its models are given in section 11 of this manual     3 Hardware and Operating System Prerequisites    OpenSimkit was tested on Windows XP   Vista   7 and diverse Linux platforms  It needs at  least    e the JDK  Java Development Kit  1 5  preferably 1 6   now called Java 6  and  e Apache Ant 1 7 0  or higher      OpenSimkit installs into a user defined directory and does not install any Windows DLLs    Linux  so libraries or similar  Therefore complex package based installation techniques are  not required     4 Software Dependencies    From release 2 4 6 OpenSimKit onwards  now each OpenSimkit release comprises in its  installation  zip file all necessary dependencies which are required to run the distribution   Currently OpenSimkit has the following dependencies      e Woodstox 4 0 4   Woodstox is a Stax parser implementation which is needed  as the J2SE Runtime  Environment  JRE  1 5 does not include a Stax parser    e SLF4J 1 5 6   The Simple Logging Facade for Java or  SLF4J  is an abstraction for various  logging frameworks  OpenSimkit uses it together with Logback    e Logback 0 9 15     OpenSimKit User Manual V3 7 0 11 94    The back end used for logging inside OpenSimkit  It can be extensively configured   e Janino 2 5 15  Janino is an embedded Java compiler needed by logback   e Extracts from JAT
53. l more modifications are needed  First the     meshes    section needs to be modified  Inside the first mesh a reference to the  Temperature Sensor model has to be added  This is done by putting the Model name in an  element named    model     The Temperature Sensor has the name     20 _TemperatureSensor     It is added at the end just after the Model with the name     19 FluidFlowValve        Rocket Stage Simulation_sensor xml   lt meshes gt         lt mesh name  m0  level  top  gt    lt mesh gt mesh_1 lt  mesh gt     lt model gt 05_Pipe lt  model gt    lt model gt 06_Filter lt  model gt    lt model gt 07_Pipe lt  model gt    lt model gt 08_PReg lt  model gt    lt model gt 09_Pipe lt  model gt    lt model gt 10_Split lt  model gt    lt model gt 11_Pipe lt  model gt      lt model gt 12_PReg lt  model gt                     lt model gt 13_Pipe lt  model gt        OpenSimkit User Manual V3 7 0 79 94        lt model gt 14_Pipe lt  model gt     Vv     lt model gt 15_PReg lt  model gt      lt model gt 16_Pipe lt  model gt         lt model gt 17_Tank lt  model gt         lt model gt 18_FluidFlowValve lt  model gt                        lt model gt 19_FluidFlowValve lt  model gt      lt     Begin changes for TemperatureSensor test     gt            lt model gt 20_TemperatureSensor lt  model gt    lt     End changes for TemperatureSensor test     gt      lt  mesh gt         lt  meshes gt           Next the connections have to be modified to allow for a proper inclusion of the  Temper
54. le  mmi  pkt  rpr  sim                  OpenSimKit User Manual V3 7 0 14 94       sim          temp          work    tests    Packet Library source code directory        Packet Library unit test code directory     t propulsion system source code  directory    Rocket propulsion system unit test code  directory           Simulator source code directory        Simulator unit test code directory     Location of the temporarily created files  during compilation   Location of the simulator input files        For the beginner user  the   work and the   build subdirectories are of primary interest to  build and start up the software  Please see the following sections explaining software build    and startup     Since software version V3 3 example input files are provided to the user directly in the    work subdirectory  Furthermore from V3 3 due to distribution file size limits on the  hosting server  the software and the documentation are split into two downloads     From V3 5 onwards a third  optional download file is provided containing all elements for  the coupling of OpenSimKit to the astrodynamics visualization software Celestia  For more  details please refer to Part III of this manual     OpenSimKit User Manual V3 7 0 15 94    6 Building OpenSimKit Simulator and MMI Program    To compile OpenSimKit the program  Apache Ant  is needed  If it is not already present on  your system you can download it from http   ant apache org    Please note that the  OpenSimKit build system is
55. m prgas  gas      2   1 1  30   m gas m gas    The volume of the gas phase continuously increases during engine operation as oxidizer  fuid is consumed  Thereby two effects are to be considered  One is the volume increase  through direct oxidizer consumption by the engine  i e  reduction of mass of liquid oxidizer  in the compartment  The other effect is the change of oxidizer fluid density due to cold  pressurization gas flowing into the tank and the gas phase in the tank cooling down  accordingly and thus cooling the liquid oxidizer  Thus the volume change can be  formulated as     Val aut Zr  1 1 31     The density of the liquid oxidizer can be approximated by a polynomial expression like  py C DT   ET   11 32   with C  D and E being constants  Thus the density change results as   BT    D 2ET     11 33     The first law of thermodynamics for the liquid phase volume in the oxidizer compartment of  the tank can be expressed as     f    L  11 34     Mala    With the equations 11 19  11 28  11 30  11 31 and 11 34 thus 5 equations are available for  computation of the 5 variables     OpenSimkit User Manual V3 7 0 48 94    These can be brought into the form     A a Te     prgas prgas 7   gas    gas   Tiras     Tos  F  m Pos     gas prgas  gt     Pa  F        gas       11 35     It has to be noted that the heat fluxes cited in the above equations are sum ups from  several effects  E g  the heat flux imposed onto the gas phase in the tank adds up from  heat transferred to the gas 
56. mkit since Version 3 7 0 is to determine between physical  interaction of models based on real line or pipe interconnections and those which have no  direct connection    port     In the above system diagram there exist physical data lines  between the onboard computer and certain satellite equipment  Similarly there exist real  power lines between satellite equipment  the power control and distribution unit  PCDU  or  between PCDU and Battery and Solar Array     OpenSimkit User Manual V3 7 0 10 94    Such connections can be modeled via so called port connections which are strongly typed   However gravity is computed by the space environment model but there is no    plug     connection imposing it onto the spacecraft structure  Furthermore such abstract  parameters might be used by multiple client models     gravity might be required by several  models     To avoid defining fictive line connections between e g  environment model and structure   as in Simulink    OpenSimKit V3 7 0 and higher versions provide a so called provider  subscriber mechanism  Models computing abstract physical data provide these in  according input file table entries and models using them place a subscriber entry  To a  provided variable there might exist multiple subscribers  Models may use different local  variable names  Variable typechecking is assured     The system example provided together with the simulator infrastructure via a m  Website  represents a modeled re ignitable medium energetic roc
57. nction of temperature  The dependency of the  JKC at a certain temperature over pressure can be modeled as linear interpolation     The specific enthalpy of Helium at a reference pressure of 5 bar can be modeled as  polynome     h    19846 5 5732 967 T    2 42982T  3 332099  T   11 1     If the Helium state is characterized by another pressure  instead of the actual temperature   a reference temperature has to be inserted in the above equation  This reference  temperature is computed by the formula below and represents a state as if the gas were  expanded   compressed to the target pressure   considering its non idealness through the  JKC     T ep  T    u p    Prep   11 2     This reference temperature then can be entered in formula 11 1 to compute the specific  enthalpy of the Helium gas     Another topic is the computation of the non ideal behavior of Helium at high pressure  levels  The deviation from the ideal gas law can be reflected by a compressibility factor Z     p ZpRT  11 3     OpenSimKit User Manual V3 7 0 39 94    Where    Z 1 0 F xp  11 4     with pressure p is to be reflected in  bar  and    F 1 913688      8 520942   T   1 358845   T        4 595341     T   11 5     11 2 The High Pressure Bottle Model    The software class HPBottleT1 represents the high pressure bottles holding the pressurant  gas Helium for pressurizing the rocket fuel  and oxidizer tank  The temperature over time  is computed according to the first law of thermodynamics     qr QU MTdt _hmdt 
58. nd m 0 it results to be     PEN Q gas _ D gas V gas  sas Mm     m  C    gas   v   gas gas    v   gas     11 48     In this equation for the oxidizer compartment for C    a the value of the gas mixture from  oxidizer vapor and pressurization gas is to be used  For the fuel compartment the value of  the pure pressurization gas   The pressure gradient in the tank results from the differentiated generic gas equation    gt  m a R ak as m a R as    as  a  11 49     gas gas    Also here for the specific gas constant R here in case of the oxidizer compartment the    OpenSimkit User Manual V3 7 0 51 94    value for the mixture is to be applied and for the fuel compartment the value for the pure  pressurization gas     In blowdown mode the required derivatives to be computed are     Do V eas  Ta   With the equations 11 48  11 49  11 31 and 11 34 as well as with the formulas for the heat  transfers 11 36  11 37  11 38 and 11 39 for each tank compartment again a complete  equation set is available which can be rearranges into the form of equations 11 35    11 9 The Flow Valve Model    The FluidFlowValve is a simplistic representation of a flow control valve  lt has a reference  mass flow and a reference pressure loss and an analog control line port  Depending on the  analog signal on the control line  between 0 0 and 1 0  the valve sets the fluid flow and  pressure loss as linear interpolation accordingly  Non linearities are not considered yet     11 10 The EngineController Model    The
59. nsimkit org    For all code from other libraries included in OpenSimKit  like NASA s Java Astrodynamics  Toolkit  also the GPL applies with one exception    Due to inclusion of the Woodstox Stax parser the following license information is to be  considered in addition  This product includes software licensed under the Apache License  Version 2 0  http   www apache org licenses LICENSE 2 0      Publishing and use of this software program is done under the assumption that it will be  beneficial for the users  but WITHOUT ANY WARRANTY  even without any implicit  warranty on READYNESS FOR MARKETING or the APPLICABILITY FOR A SPECIFIC  PURPOSE  Details can be found in the GNU General Public License     OpenSimkit User Manual V3 7 0 94 94    
60. nual V3 7 0    28 94       9 OpenSimKit Command Reference    9 1 How to enter Commands    Enter your commands in the command window  named  Cmd Window   in the last empty  line and hit the enter key to send the command  The commands themselves are not case  sensitive  however  the arguments can be case sensitive     Note  A subset of the available commands are intuitively accessable via the MMI s  pulldown menus     9 2 Short Command Overview    These are all currently implemented simulator commands     call  lt instance gt   lt method gt   disconnect   get  lt instance gt   lt field gt    geta  lt instance gt   lt field gt   lt position gt   help   resume   run   set  lt instance gt   lt field gt   lt value gt   seta  lt instance gt   lt field gt   lt position gt   lt value gt   shutdown   stop    9 3 Extended Command Description  9 3 1 Call    call  lt instance gt   lt method gt     Calls a callable method inside the simulator  Currently only parameterless methods are  supported      lt instance gt  is the name of the component instance you want to address  in case a class is  instantiated more than once   It is case sensitive  Use the help command to get a list of all  available manipulatable variables      lt method gt  is the name of the method of the instance of which you would like to execute  It  is case sensitive     Examples   call cO init    OpenSimKit User Manual V3 7 0 29 94    9 3 2 Disconnect    disconnect    Disconnects the MMI from the simulator     9 3 3 Get
61. ocumentation  It is implicitly called by the target  mmi javadoc  to  avoid having inconsistent HTML files     mmi test  Executes the MMI unit tests     mmi clean    Cleans the temporary directories as well as the directories containing the jar files of the  MMI     OpenSimKit User Manual V3 7 0 69 94    mmi run  Executes the MMI application jar file     14 3 Packet Library Targets     pkt dist  Generates the Packet Library  This includes the jar file as well as the javadoc  documentation     pkt build  Creates the Packet Library jar file     pkt javadoc  Removes the old Packet Library javadoc documentation and creates a new one     pkt javadoc clean  Cleans the javadoc documentation  It is implicitly called by the target  pkt javadoc  to avoid  having inconsistent html files     pkt test  Executes the Packet Library unit tests     pkt clean  Cleans the temporary directories and deletes the jar file of the Packet Library     14 4 Rocket Propulsion System Targets     rpr dist  Generates the rocket propulsion system component library  This includes the jar file as  well as the javadoc documentation     rpr build  Creates the rocket propulsion system component library jar file     rpr javadoc  Removes the old rocket propulsion system javadoc documentation and creates a new one     rpr javadoc clean  Cleans the javadoc documentation  It is implicitly called by the target  rpr javadoc  to avoid  having inconsistent html files     rpr test  Executes the rocket propulsion system uni
62. ow com questions 147454 why is using a wild card with a java   import statement bad 147532   e No static imports   http   www javapractices com topic TopicAction do Id 195   e Only one return    e No singletons   http   code google com p google singleton   detector wiki WhySingletonsAreControversial  http   misko hevery com 2008 08 17 singletons are pathological liars   http   www xflex cn blog archive 2009 03 why singleton is bad and how to     avoid html  http   blogs msdn com scottdensmore archive 2004 05 25 140827 aspx             OpenSimKit User Manual V3 7 0 83 94    18 Using the OpenSimKit Logger    18 1 Logger Code Entries for Model Classes  1  add slf4j imports  2  create one static logger per class  named after the class   3  perform all output using the logger  do not use System out printin    4    use optimized syntax when dynamically assembling output messages  reasoning   string is not computed prior to logging call  but only if output is actually activated for  the specific logger   gt  performance optimization     5  Rules of writing a message  perform no formatting  do not add  Warning   Error   prefix or class method information  only pure message text  Perform Formatting  using the config file        import org slf4j Logger              import org slf4j LoggerFactory        public class MyClass      private static final Logger LOG   LoggerFactory getLogger  MyClass class      public void someMethod       LOG debug   a debugging message     LOG info   some o
63. phase from the outer tank wall  from the separation wall and  from the warmer liquid oxidizer phase     The required heat exchange coefficients are computed via Nu  elt equations  Thereby the  equation for free convection in spherical vessels is used for the heat transfer from the tank  walls to the gas phase  same as in high pressure bottle model      Nu   0 098 Gr  Pr      11 36     For the heat transfer between liquid and gas phase the heat transfer equation for a  horizontal plate being heated from below is applied     Nu 0 14 Gr Pr  11 37  d    The tank object distinguishes between outer and separation wall since the separation wall  is modeled as 2 layers with half of the real material thickness each  One transferring heat  into the oxidizer compartment and one into the fuel compartment  To avoid a coupling of  the oxidizer and fuel compartment DEQ systems and risking the overall DEQ set to  become stiff  see  3   no heat transfer cross the separation wall is considered  Since the  temperature ranges in both compartments anyhow are quite close to each other  1  the  resulting error definitely can be neglected     Finally the equations for the control volume tank wall itself have to be set up  Here the  convention is that heat transfers from wall to gaseous   liquid fluid are counted as positive  values  For any wall  outer or separation  and for the part in contact with the liquid phase  the following equation applies       O wall fl    T van     gt  11 38  en M wan  0 
64. put mass flow at the pipe s input port differ by less than 10   kg sec     Using the flow velocity derived by this iteration  the Reynolds number is computed and  then the friction factor 4 is to be computed     Ks      A  f  log Re  7  11 12     OpenSimKit User Manual V3 7 0 41 94                            IE E Na   S   100A   MN PF 4                              EL Er  A  20 z BR o ll rn zas ee           726  Nikuradse    f  1300 Galavics roje aa anale A re  o    gt      sandrauh   technisch rauh  Nau  15 o   30       un  12      Oo  rR RL 7 CEA  4 6 8 193 2 4 6 8   pe 2 4    8 105 2 4 6 8 405 2  Re  Gd    Figure 8  Moody Diagram  Pipe Lambda coefficient as function of Reynolds Number    Manually this could be done by interpolating in the Moody diagram  for computation  purposes an iterative solving of the Colebrook equation is performed     1 VA    2log    e D  3 714 2 51  RevA      or        zla PIs 25   11 13     A      AL Ur Heliun    U  d k 1 66  H Enanz2 007561          8 4 1 8 2 8 L    Figure 9  Flow friction coefficient for adiabatic Helium flow in pipe     OpenSimKit User Manual V3 7 0 42 94    This approach is based on assuming pipes with TEFLON inliner and covers the transition  range between laminar and entirely turbulent flow  Purely laminar flows thus are not  covered by this approach  but since pipe inflow fittings  elbow connectors etc  will lead to  at least partly turbulent flow conditions this implementation approach is valid     With the available fluid
65. quence counter is not used in OSK and   am not sure how to deal with the  inability of Java to have unsigned types  This means currently the sequence counter would  be between  128 and 127 instead of O and 255     The packet length tells the length of the packet including header and footer    The simulated time is used to track the time inside the simulation  This is necessary as  usually the simulation time is not the same as the local time  For easier handling with the  Java language it is 8 byte long     The system time is used to track the local time  This is necessary as usually the simulation  time is not the same as the local time  For easier handling with the Java language it is 8  byte long     The second part contains the user data  The definition of the data inside the packet and its  position shall be defined beforehand by the sender and receiver  For each pair of    packet  type    and    application ID    there shall at most be only one definition of the user data     Note    Realistically we need a database  could be Apache Derby based or    plain    XML  to easily  define the data inside the packets  Because now everything must be hard coded inside the  MMI and the simulator  Any volunteers     The third part called footer contains the check sum  Calculated from position O to position     22   n   2  In other words from the beginning of the packet to the end of the user data and  thus omitting the footer     OpenSimKit User Manual V3 7 0 74 94    16 Developing
66. reference pressure drop at a given reference mass flow can be specified in the input file     Heat transfer from filter housing to fluid is modeled via the same equations as for the  PipeT1 model  The filter however is modeled as one block and is not divided into  subsections as the pipes are     11 6 The Pressure Regulator Model    The PRegT1 class implements a model for dome pressure regulators  The output pressure  can be specified as polynomial dependent function of the input pressure via according  coefficients in the inputfile  The gas throttling from input pressure level down to output  pressure however again reflects real gas effects of the Helium fluid  i e  the temperature  increase during throttling is computed     Throttling first is computed as being adiabatic  and thus isenthalpic  and heat transfer from  regulator housing to pressure gas then is added in a subsequent step     Concerning the throttling the model first computes the Joule Kelvin coefficient y of Helium  corresponding to the input flow conditions  This computation has to be very precise since  at least at start of stage operations the Ap is rather significant and deviations in the JK   coefficient would lead to errorneous outlet temperatures  So the temperature after  throttling can be derived as being     Ta T OD   Pon   1 1 18     The heat transfer is computed in analogy to the method used for the PipeT1 and gas  FilterT1 models     11 7 The Pipe Split Model    The SplitT1 model serves to split t
67. regT1 class  The value of the variable must be compatible with the variable  type inside the Java class  It is also possible to write additional attributes to this XML tag   but they are currently ignored by the OpenSimKit XML parser  The variable pcoeff is an  one dimensional array  lt has the mandatory attribute    length    which denotes the length of  the array  The text of this tag includes the values delimited by at least one space     OpenSimKit User Manual V3 7 0 22 94    A second example         lt model class  org opensimkit models rocketpropulsion PipeTl name  02_Pipe  gt    lt variable name  description   gt    lt variable name  length  unit  m  gt 1 5 lt  variable gt    lt variable name  specificMass  unit  kg m  gt  6 lt  variable gt      lt variable name  innerDiameter  unit  m  gt  0085 lt  variable gt         lt variable name  specificHeatCapacity  gt 500 0 lt  variable gt         lt variable name  surfaceRoughness  unit  m  gt 1 E 6 lt  variable gt               lt variable name  temperatures  length  10  same  true  gt 300 0 lt  variable gt      lt  model gt           The important variable in this example is the temperatures variable  As it is visible by the  attribute    length    the temperatures variable is a one dimensional array  The interesting  thing to know is the    same    attribute  It denotes that all array values are the same and as  such there needs only one value to specified  The OpenSimKit XML parser automatically  initializes the array wi
68. rning by the model    Because of the ideal 1D flow with losses  an efficiency factor for cs is used with a constant  value of 0 99     11 12 2 Model Verification    11 12 2 1 Verification of c                                                                                                                                                                                                                                i B S  tor Run Debug Profile    Versioning Tools Window Help  ES b Bro m      5  gt     G ER e TA  lt  25 000  00_HPBOTTLE PTOTAL Y W b gt  E C    D1_HPBOTTLE PTOTAL 40 x     S  Engine java  x      EngineControllerjava x    22500  00_HPBOTTLE MFTOTAL 0 O 20 000  01_HPBOTTLE MFTOTAL  17 500  17_TANK MFINFPG    17_TANK MFINOPG ER EMIR TRTE A 15 000  17_TANK MFOUTFUEL E  12 500  17_TANK MFOUTOXIDIZER  18_FLUIDFLOWVALVE CONTROLVALUE 10 000  18_FLUIDFLOWVALVE MFIN eng  3    500  19_FLUIDFLOWVALVE CONTROLVALUE  19_FLUIDFLOWVALVE MFIN z SN  Y  20_ENGINE THRUST 98820028214943E7 2 2 500  9  20_ENGINE CSTAR 2990819525  9317669766707 0  20_ENGINE CF 2940716584267 0 250 500 750 1 000 1 250 1 500  22_STRUCTURE FORCEMAG 62366150216 time  s   5528582967817  22_STRUCTURE SCVELOCITYX 5     20_ENGINE THRUST     20_ENGINE CSTAR  22_STRUCTURE SCVELOCITYY  22_STRUCTURE SCVELOCITYZ   Krasi  22_STRUCTURE SCPOSITIONX   248 ti Math  pow  2   k 1     1   k 1      gt  Math  pow   k 1   k 1      0 5     22 STRUCTURE SCPOSITIONY 249 t2 Math  pow oldp    1 k    Math  pow  1 Math  pow oldp    k 1  
69. rom OpenSimKit    Interfacing Celestia from OpenSimKit is done by periodically supplying Celestia about  position and attitude data of the spacecraft as being computed in OpenSimKit  This is  done by writing the position and attitude information onto a socket in OpenSimkit and    OpenSimKit User Manual V3 7 0 60 94    making Celestia read from the socket  Subsequently the spacecraft geometry is visualized  by Celestia at scripted orbit position and in scripted attitude including proper illumination  depending on sun eclipse position etc     By default Celestia has fixed formulas for computing body movements along orbits and is  not prepared to be supplied with position   attitude from external  However since Celestia  V1 5 1 it provides the feature of writing extension plugins in a scripting language called  Lua  9   And Lua provides a socket interface library and thus permits interfacing to the  OpenSimkit simulator  This feature is called    scripted attitude    respectively    scripted orbit  position    in the Celestia documentation     To realize the visualization of the included Astris rocket model as OpenSimKit calculates  its position and attitude  the following is required     e Installed OpenSimKit V3 5 0 or higher  e Celestia 1 5 1 or higher     preferably 1 6 0 or higher  e Lua 5 1 or higher    e The Lua socket library 2 0 2 or higher  11   e Anda geometry model of the simulated spacecraft     e g  the Astris rocket stage  e and some Lua routines and Celestia conf
70. ructure of an OpenSimKit XML Input Elle    sese eee 20  8 1 OpensimKitG  nfigFile         r rl 20  A A A N De ri a ee 20  O MOI SR RN a ae 21  8 3 1 model  for model definition aee  21  8 3 2 Val ar loa 21  8 3 3 Model Section Example    sees 22  A O 23  O A tae aad Sea eas in ce ee ea e Gas 23  8 4 2 Connection Section Example    see 24   8 5 providerSubscriberTable                ccccccccccceeeeeeeeeeeeeeeeeeeecsseececeeeecauasseeeeeeeeeeeeeceeeeeeeeees 24  So ig  FEN 24  8 5 2 ProviderSubscriber Table Section Example    eee 25   8 6  mesh   for MOSK STING ONS  sad chs cts cha Keen 25  8 0 1 Meses  E E E a a a da 25  8 6 2 Mesh Section Example    eee eee 25   Bd NOG DUI aa totor tte 26  IA dr ed ci da ll 27  8 7 2 LogQutput Section Example      sss eee 27   9 OpenSimKit Command Reference    una sea lea 29  9 1 HOW to enter R ennn 29  9 2 Short Command Overview    eee eee eee 29  9 3 Extended Command Description                        00044444444400000n00Rnnn nennen nenn nennen nen 29  IB Cala daa oca 29  9 32  DISCOMMO e A ea en eh eh ee 30  EL me ma ee Dee ae A a a aed 30  O a EHLERS ee EHLERS EIFEL eee tree ner eee ee 30   9 SG AGNI sence Oacveuee RR e a occlu a E A EO EE EY 31  93 6 Resume aji 32  A a e ee ee e a E rT ee ER 32  A a Si ai a Rasa 32  II a re ee ee ae en u ae ee 33   9 210 SHULHOWN A re 34    OOO Dee ea ee Ll tn 34    19  De installing OpensimKii essen 35    Part Il   11 The Rocket Stage Model UDan 38  11 1 The Helium Gas Mode prin si A A A nd 38  11 2 The 
71. s IOException      PureGasDat indat   inputPort readFromPort        temperature   indat temperature     outputPort writeToPort  indat      return 0              The complete listing of the TemperatureSensor Model  TemperatureSensor java         package org opensimkit models     import java io IOException   import org opensimkit BaseModel     import org opensimkit ports PureGasDat        import org opensimkit manipulation Readable        public class TemperatureSensor extends BaseModel            private static final String TYPE  TemperatureSensor            private static final String SOLVER    none    private static final double MAXTSTEP   10 0   private static final double MINTSTEP   0 001           private static final int TIMESTEP   1                       private static final int REGULSTEP    ll  o          OpenSimKit User Manual V3 7 0 77 94              Readable private double temperature      IsPort private Port lt PureGasDat gt  inputPort      IsPort private Port lt PureGasDat gt  outputPort     public TemperatureSensor  final String name          super  name  TYPE  SOLVER  MAXTSTEP  MINTSTEP  TIMESTEP  REGULSTEP       Override       public int iterationStep   throws IOException      PureGasDat indat   inputPort readFromPort        temperature   indat temperature     outputPort writeToPort  indat      return 0           16 3 Compiling the Java Class    In current software releases it is necessary to compile the entire simulator to include the  new model  The Ant buil
72. s on the right  Enter a  Project  Name   for example  OSK J   and as  Project Folder  choose the one where you placed  your copy of the OSK J sources  The  Build Script Name   build xml  should be left alone   Click  Next  gt   to continue     13 3 How to add a new Dependency to OpenSimKit    To be described     OpenSimKit User Manual V3 7 0 68 94    14 Targets of the Ant build xml file    To build selected applications of OpenSimKit instead of the entire OpenSimKit suite  different distribution targets can be accessed individually  E g  for building the simulator  only after some code changes  the user can rebuild it by typing    ant sim dist    into the terminal console   presuming the terminal root directory is the   build subdirectory  of the OpenSimkit distribution     14 1 Global Targets for both the Simulator and the MMI     all  This target generates the MMI and the simulator distribution as well as the sample fluid  system component library  This includes the jar files as well as the javadoc documentation     clean  This target cleans the temporary directories as well as the directories containing the jar  files of the MMI  the simulator and the fluid system component library     14 2 MMI Targets     mmi dist  Generates the MMI distribution  This includes the jar file as well as the javadoc  documentation     mmi build  Creates the MMI jar file     mmi javadoc  Removes the old MMI javadoc documentation and creates a new one     mmi javadoc clean  Cleans the javadoc d
73. st of  this paragraph can be skipped     OpenSimkit User Manual V3 7 0 62 94       doc     5 etc     E samples      E src     E test  config  LICENSE  luasocket sin      mime vcproj  NEW  README  socket  vcproj    Go into the directory with a text console and initiate the make command  This will compile  some c sources from the   src subdirectory and install the binaries as well as a number  of  lua files from the   etc directory onto your computer  Having fulfilled these tasks you are  ready to run the application  However  some additional steps are provided below to verify  that the Lua sockets are properly installed and working     First the proper installation of the lua libraries into the relevant directories can be checked   Please note that on Linux the target hardware dependent files are stored in a different  subdirectory than the target hardware independent ones  So there should be a folder  structure like      usr local lib     core so     amp  socket  core so    For the target hardware independent files the structure should look like    usr local share         lua       5 1     amp  socket   ftp lua  http lua  smtp  lua  tp  lua  url  lua   Itn12 lua   mime lua   socket lua    OpenSimKit User Manual V3 7 0 63 94    The Linux download comes with several example files  Two of them can be used for an  intuitive and simple test  To verify that the sockets are properly working  start two text    consoles and navigate to   luainstallwork luasocket 2 0 2 samples    There
74. sualized by a geometry 3d file called Astris3 cmod and lua  files for orbit and attitude computation     The   for Celestia maindir comprises all stuff to be placed in the min directory   The structure is as follows       for Celestia maindir    5 lua    E socket   Itn12 lua  mime lua  socket lua   celestia cfg   luahooksocket lua   start cel    The figure shows the   lua directory which contains all the lua routines for the sockets  again  It is a copy of the installation from the socket library since Celestia wouldn t be able  to find them in the original installation location     Another important file is the start cel  It is a modification of the original start  cel  script coming with the Celestia installation  This file contains the settings that at the start   up Celestia sets view and focus to the initial position of the Rocket  See lines 25 40 of the  file for further details    The delivered celestia cfg is a modification of the original file  There is the new entry     LuaHook  luahooksocket lua     OpenSimKit User Manual V3 7 0 65 94    It tells Celestia that there are Lua extension scripts to be used and that the main Lua  routine is luahooksocket lua  luahooksocket lua generates the communication  socket instance in Lua and connects to socket 1520 which OpenSimKit writes the  spacecraft position and attitude information on  After the connection has been established   Celestia periodically reads the provided data to be used by the Rocket s attitude  lua  and orbi
75. t  Library consists of two parts  The interfaces in the package org opensimkit packet and one  sample implementation  named OSKPacket  in the package org opensimkit oskpacket   This separation is helpful to separate the interface from the implementation  If the  OpenSimKit kernel only uses the interfaces then it is possible to exchange the current  implementation  which is called OSKPacket  by a different   yet compatible     one     15 4 OSKPacket specification    After reading this section  please take also a look at the Packet Library javadoc     An OSKPacket is a binary chunk of data which contains either information from the  simulator to the MMI  this is called telemetry  TM   or information from the MMI to the  simulator  this is called telecommand  TC    An OSKPacket has the following structure one  octet is defined to be eight bits                                             Offset   Size Name Remarks   octets     octets    0 1 Packet type Identifies a packet as telemetry or telecommand  packet    1 1 Application ID  Used to address different applications  256 different  applications can be addressed    2 1 Sequence A sequence counter to have a facility to detect lost   counter packets  Each application shall have its own sequence  counter    4 2 Packet length  The packet length including header and footer   checksum   It can be equal to MAX_PACKET_SIZE at  most    6 8 Simulated The time of the simulation  This is in the default Java   time time format  which is Unix
76. t erweiterter Anwendbarkeit in der Entwicklung und Betriebs  berwachung  verfahrenstechnischer Anlagen    Dissertation der TU Hamburg Harburg    VDI Fortschrittsberichte  Reihe 20  Nr  196  VDI Verlag 1996  Germany  ISBN 3 18 319620 4    Eickhoff  Jens    Simulating Spacecraft Systems   Springer Verlag Berlin    Series  Springer Aerospace Technology  Vol  1   ISBN  978 3 642 01275 4       http   opensource gsfc nasa gov projects JAT JAT php  and    http   jat sourceforge net     G  Engeln Muellges  F Reutter   Formelsammlung zur numerischen Mathematik mit Standard FORTRAN 77   Programmen   5  Aufl    B I  Wissenschaftsverlag   Bibliographisches Institut  Mannheim Wien Zuerich  1986    Laurel  Chris    http   en wikipedia org wiki Celestia       http   www shatters net celestia     Adams  Douglas   The Hitchhikers Guide to the Galaxy   Pan Books  UK  1979    lerusalimschy  Roberto   Programming in Lua  Lua org  December 2003  ISBN 85 903798 1 7    OpenSimKit User Manual V3 7 0 86 94     10  http   www lua org     11  Nehab  Diego   LuaSocket   http   www tecgraf puc rio br  diego professional luasocket      12  http   luaforge net projects luasocket     OpenSimKit User Manual V3 7 0 87 94    Annexes    20 OpenSimKit History and Releases                                                    Release Date Changes  0 1988 Simulation of a rocket tank pressurization system in  FORTRAN7 7   see  01    Jens Eickhoff  1 0 1996 ObjectSim 2 0 3 from  02  being the predecessor of  OpenSimKit
77. t lua     Running OpenSimKit and Celestia     After the installationi s finished  OpenSimKit can be run with Celestia visualizing the  Rocket  Start the OpenSimKit simulator and MMI as usual  As soon as the simulation is  running  start Celestia    Enjoy the magnificent view from The Restaurant at the End of the Universe onto the flying  rocket stage        Status  Live from OpenSimKit          Folge Rocket   Geschwindigkeit  0 00000 m s FOV  26   58  45 9   1 00     Figure 14  Rocket stage over North America  Moon in the background     OpenSimKit User Manual V3 7 0 66 94    Part IV    13 Developing Component Models for OpenSimKit    The preferred method is to use the Eclipse Java Development Tools  JDT   Create a new  Java Project from existing source  Use the OpenSimKit directory in the source zip file as a  base  The class  org opensimkit InteractiveMain  is the main entry point for OSK J SIM   The class  org opensimkit console OSKConsole  is the main entry point for OSK J MMI     13 1 Using Eclipse JDT 3 3 2    Go to  File New Project New Java Project   Enter a project name  obviously you could use   OSK J  as project name   Under Contents check  Create project from existing source   and browse for the directory where you placed your copy of the OSK J sources  Click   Next  gt   to continue     13 2 Using Netbeans 6 1    Go to  File New Project  in the following dialog choose  Java  from the categories on the  left and  Java Project with Existing Sources  from the project
78. t of the results of  V2 6 0 the 1st OpenSimKit Developers Weekend   Mario Kobald  Artur Bohr  Universit  t Stuttgart  OSK J May 2009 Introduced named ports and reworked the XML  V2 6 5 input file   Alexander Branat  OSK J June 2009 Introduced logging into the simulator and the model  V2 6 7 library   Timm Pieper  OSK J July 2009 Release with fluid flow valves for engine fuel and  V2 7 0 oxidizer flow control as well as an engine controller  steering these flow valves  Entire system  thermodynamics revised to be robust against  engine shutoff  flows   0 0  and re ignition   Jens Eickhoff  OSK J August 2009 This release comprises essential results from the  V3 0 0 1st OpenSimKit Developers Weekend  It completes  the rocket simulation by a simplistic Structure  Model and includes the realistic Earth Gravity  model from the Java Astrodynamics Toolkit  JAT    This allows first orbit simulations around Earth  including delta V effects   Mario Kobald  Artur Bohr  Claas Ziemke   Universitat Stuttgart   Jens Eickhoff  OSK J September 2009 Further results from the 1st OpenSimKit  V3 1 0 Developers Weekend have been added  This  release comprises the plot visualization of  simulation results   Michael Fritz  Universitat Stuttgart  OSK J November 2009 First results from the 2nd OpenSimkit Developers  V3 2 0 Weekend have been added              Enhanced S C dynamics model computing  positions  amp  velocities now both in Earth centered  inertial frame coordinates  in Earth centered Earth 
79. t tests     OpenSimKit User Manual V3 7 0 70 94    rpr clean  Cleans the temporary directories and deletes the jar file of the rocket propulsion system     14 5 Simulator Targets     sim dist  Generates the simulator distribution  This includes the jar files as well as the javadoc  documentation     sim build  Creates the simulator jar files     sim  javadoc  Removes the old simulator javadoc documentation and creates a new one     sim javadoc clean  Cleans the javadoc documentation  It is implicitly called by the target  sim javadoc  to  avoid having inconsistent html files     sim test  Executes the simulator unit tests     sim clean  Cleans the temporary directories as well as the directories containing the jar files of the  simulator     sim run  Executes the simulator application jar file     OpenSimKit User Manual V3 7 0 71 94    15 OpenSimkit Architecture    This chapter describes the OpenSimKit architecture  the subsystems on which  OpenSimkit is founded as well as the general intentions during the design of OpenSimkit     15 1 Subsystem    OpenSimkit consists of the following subsystems   e core   commanding   components   manipulation   ports   steps   xml    15 2 Model Libraries    Since release 2 5  OpenSimKit no longer bundles any simulation models directly in the  osk j sim jar file  Instead it supports a concept of so called model libraries  Model  libraries are simple jar files containing the compiled class files of any number of models as  well as their depen
80. tegrated into the default simulation  At first a new Java  class is created with the name TemperatureSensor in the package org opensimkit models   If an IDE is used for development it is necessary to make sure that the new Java source  file is located in the package org opensimkit models  If a plain text editor is used the new  Java source file needs to be located in the directory    rpr src org opensimkit models     To  make this class an OpenSimKit Model it has to implement the Model interface  The Model  interface covers two basic methods  which are needed by the simulator kernel  Additionally  it acts as a marker interface for the manipulation subsystem to enable advanced  operations on models  To make this class an OpenSimKit Model it is possible to add     implement Model    at the class definition  Another possibility is to derive the  TemperatureSensor from the abstract base class BaseModel  which implements not only  Model  but also lot s of convenience members and methods for the current OpenSimkit  Model programming model           public class TemperatureSensor extends BaseModel         Currently a Model needs a set of specific code for interaction with the numerical solver   This includes a set of static member variables which can be different for each Model              OpenSimKit User Manual V3 7 0 75 94                                        private static final String TYPE    TemperatureSensor    private static final String SOLVER    none     private static f
81. tes    Attribute Type Required Description     class string yes Fully qualified name of the class from which this model  will be created    name string yes Unique name of the model                      8 3 2 variable    This element contains all information to initialise one model variable     Containing elements                    none   Attributes    Attribute Type Required Description   description string no Contains a description of this variable    length positive  no Specifies the size of the array  Necessary if this   integer variable is an array  The array counting starts with   zero    name string yes Unique name of the model    same boolean  no Specifies that all array elements are the same  This  avoids unnecessarily repeating the same value for  each element of an array                       OpenSimKit User Manual V3 7 0 21 94    state string no Used to describe if this variable is an input or output  variable                       unit string yes Contains the unit of the variable          8 3 3 Model Section Example  A model definition is shown here                                          lt model class  fully qualified Classname  name  name of this model  gt    lt variable name  variablel  gt value lt  variable gt    lt variable name  arrayVariablel  length  3  gt valuel value2 value3 lt  variable gt    lt variable name  arrayVariable2  length  4  same  true  gt value lt  variable gt     lt  model gt    An example         lt model class  org opensimkit model ro
82. th the correct values and frees the user from unnecessary writing ten  times the same value into the configuration file     8 4 connections  This element contains all information about the connections between the models   Containing elements   connection  Attributes   none    8 4 1 connection  This element contains all information about the initialisation of one model instance   Containing elements           Fehler  Referenz nicht gefunden  Fehler  Referenz nicht gefunden   Fehler  Referenz nicht gefunden    Attributes              Attribute Type Required Description       class string  yes Fully qualified name of the class from which this  connection will be created                    name string  yes Unique name of the connection        OpenSimKit User Manual V3 7 0 23 94          8 4 2 Connection Section Example    A connection definition is shown below        A connection definition is shown here    lt     Connection of Pipe to Filter     gt    lt connection name  05_PureGasDat  class  org opensimkit ports PureGasPort  gt      lt from model  05_Pipe  port  outputPort   gt         lt to model  06_Filter  port  inputPort   gt         lt  connection gt           8 5 providerSubscriberTable    This element contains all information about variable interchange between models which is  not subject to transfer via modeled real electrical connections  fluid pipes or similar     between the models   Containing elements     entry  Attributes   none   8 5 1 entry    This element conta
83. the individual user     This development lead to the current issue and the former C   version meanwhile is  deprecated and removed from the webpage  For historic milestones please also refer to  the web page and section 20   OpenSimkit is open source software and can be down   loaded for free from     www opensimkit org       For topics of license  warranty and trademark of OpenSimkit please refer to section 21     As being based on Java OpenSimkit runs on most computer platforms and a large variety  of operating systems  The development team always verifies proper functionality on MS  Windows and on 32Bit and 64 bit Linux systems  The current versions OpenSimKit  OSK   consist of two separate programs intercommunicating via 2 sockets     e the simulator osk j sim and  e the graphical man machine interface osk j mmi     B OSK Control Console            common triton    k j 3 1 0 srciwork   Befehisfenster   Konsole _ O X        Sitzung Bearbeiten Ansicht Lesez       en Einstellungen Hilfe                        Befehisfenster as     Befehisfenster    Figure 1  MMI console window  left  and simulator console   right  plus MMI main window     Both programs are started from ASCII consoles   independent of the operating system  used on the host computer  The simulator process during run reports certain progress    OpenSimkit User Manual V3 7 0 9 94    information  e g  actual time  to the ASCII console  but the simulator does not open up any  further graphics window  The MMI opens
84. tion and attitude data from the socket to which  OpenSimkit transmits them     For this purpose  a Celestia Files package can be downloaded from the OpenSimkit  webpage for OpenSimKit V3 5 0 or higher  This package contains all files required to  configure Celestia  Please note that for Linux you ll need to activate your shell or  filebrowser in administrators mode  sudo  to have the appropriate write permissions to the  Celestia main directory     The figure above shows the Celestia main directory as an example for a Linux   KDE  system  There are a number of files plus the    extras subdirectory to be mentioned  The  Celestia Files package from the OpenSimKit webpage contains two subdirectories  One of  them contains files to be placed inside the Celestia main directory  and the other one    OpenSimkit User Manual V3 7 0 64 94    contains files to be put into the Celestia   extras subdirectory  File installation can be  done just by copying the files from the OpenSimKit package into the according Celestia  locations        Celestia Files    E for Celestia extras dir    E for Celestia maindir    The   for Celestia extras dir directory comprises all files concerning the Rocket  model visualization  The substructure should appear as follows       8 for Celestia extras dir     amp  Rocket    E models  Astris3 cmod     amp  textures  attitude lua    Rocket ssc    The main files to be mentioned are the Rocket ssc telling Celestia that there is a  spacecraft called    Rocket    vi
85. tructure of an OpenSimKit XML Input File    The simulation input files consist of the following five sections     system  models  connections  meshes  logOutput     Which shall be described briefly on the following pages  To avoid this section to become  too theoretic  please in parallel have a look at one of the provided  xml input files included  in the    work    subdirectory     8 1 OpenSimKitConfigFile  The root element of an OpenSimKit XML configuration file   Containing elements     system  models  Fehler  Referenz nicht gefunden  meshes  logOutput  Attributes                                   Attribute Type Required Description  xmins string TBD TBD  xmins xsi string TBD TBD  xsi schemaLocation string TBD TBD   8 2 system    This element contains all information about the simulator setup   Containing elements   The section system of the input files consists of three subsections     e Sysdesc  e RunSettings  e SimulationCtrl    Attributes   TBD    OpenSimKit User Manual V3 7 0 20 94    8 3 models    The    models    section is used to specify the Models which are used in this particular  simulation  For each Model a separate subsection is created  This subsection contains  information for the particular Model     Containing elements     model  for model definitions     Attributes     none    8 3 1 model  for model definitions     This element contains all information about the initialisation of one model instance   Containing elements                 variable   Attribu
86. utput for the user     LOG warn  a warning message       LOG error   an error message                            LOG error   an exception will be raised     new java io IOException       System out println   some output      do not use this    LOG debug   Entry number     i     is     String valueOf  entry i       OG info   Entry number       i      good practice for 1 argument   LOG warn   Entry number     is      i  String value0f  entry i        good  practice for 2 arguments   LOG error   Value    was inserted between    and       new Object    newVal   below  above       good practice for  gt 2 arguments   when nr of    is higher than arguments  it is printed plainly  when nr of       is less than arguments  additional arguments are ignored                   OpenSimKit User Manual V3 7 0 84 94    18 2 Logger Configuration for Simulation Runs  If no custom configuration is provided  a default configuration is used   General logback default     e logging output to be directed on the console  e log level DEBUG  OpenSimkit default     e level INFO   e INFO output to console  stdout  and logfile  located at execution path   usually osk j src work    e WARN output to console  stderr    e ERROR output to console  stderr     Logging properties  level  destination and format  can be configured on a per class basis   inheritance through package hierarchy      1  Create a logback xml configuration file    2 a  use the following option when executing the program  java   Dlogback con
87. well  as their type     Readables  A list of all Readables inside the simulator ordered by classes as well as  their type     OpenSimKit User Manual V3 7 0 31 94    Callables  A list of all Callables inside the simulator ordered by classes     Version  Prints the version of the simulator   Examples    help   help get    help 00 HPBottle    help components    help manipulatables  help readables  help callables    help version       9 3 6 Resume    resume    Resumes a stopped simulation  This command is also available as a menu item  File   Resume      93 7 Run    run    Starts a simulation  This command is also available as a menu item  File Run      9 3 8 Set    set  lt instance gt   lt field gt   lt value gt   Sets the value of a manipulatable variable      lt instance gt  is the name of the component instance you want to adress  in case a class is  instantiated more than once   It is case sensitive  With the supplied sample files there exist  20 components named     00_HPBottle    to    19 FluidFlowValve     However  not all have  manipulatable variables  Use the help command to get a list of all available manipulatable  variables      lt field gt  is the name of the member variable of the instance of which you would like to get  its value  It is case sensitive  The following fields are in the instance    00_HPBottle        mass double variable  volume double variable  specificHeatCapacity double variable  ptotal double variable  ttotal double variable  fluid String variabl
88. xpansion is presumed  the compressibility factor is computed and the resulting  non ideal pressure is compared against the assumption  The pressure value is iteratively  corrected until the precision is better than 5x10       The adequate equation to model thermal heat transfer between pressure gas and bottle  wall is the one for free convection in sperical containments     Nu  11 10     With     Nu  0 098 Gr Pr   11 11     11 3 The Pipe Model    The PipeT1 model reflects a gas flow through a pipe  considering friction effects and heat  transfer from pipe wall to fluid  Considering heat transfer to environment the pipe is  modeled to be ideal adiabatic     11 3 1 Modeling the Pressure Drop    To compute the pressure drop first the flow velocity inside the pipe has to be identified   Therefore first the so called critical velocity of the flow is computed which depends on the  in flow gas temperature and is received via the input port of the pipe model  The flow  velocity is computed in an iterative way     e First a velocity is assumed  therefrom   using the critical velocity   the Laval number  is derived and then using the formulas for adiabatic gas expansion the pressure and  temperature of the gas are derived    e Then using the Helium gas model the gas density is computed  considering again  non ideal gas  And therewith the mass flow through the pipe can be identified    e Then the presumed input flow velocity is iteratively adapted until the derived mass  flow and the in
89. y  Solution of the DEQ system at time t    Y 1  f  t Y 1    Y n    4    11 20   Y n  f  t Y 1     Y n      OpenSimKit User Manual V3 7 0 45 94    where Y 1  to Y n  represent the values of the right side of the DEQs  i e  the  derivatives of the dependent variables  The integration of this DEQ system    Y t dt  Y    t  f Y  0  at  11 21     is performed by a class called DEgSys which is part of the simulator kernel package  not  the rocket propulsion library  This integrator also historically stems from  1  and uses a  Runge Kutta method of 4   5  order taken over with minor adaptations from  5   A detailed  algorithm description can be found in this cited literature  The variable list of the DEQ  system 11 21 is listed below     t Time   Y 1  Mass of pressurization gas in oxidizer tank compartment   Y 2  Temperature of gas phase in oxidizer tank compartment   Y 3  Volume of gas phase in oxidizer tank compartment   Y 4  Pressure in oxidizer tank compartment   Y 5  Temperature of liquid oxidizer   Y 6  Temperature of outer wall of oxidizer tank in contact with gas   Y 7  Temperature of outer wall of oxidizer tank in contact with liquid  Y 8  Temperature of separation wall of oxidizer tank in contact with gas  Y 9  Temperature of separation wall of oxidizer tank in contact with liquid  Y 10  Pressure in fuel tank   Y 11  Mass of pressurization gas in fuel tank   Y 12  Temperature of gas phase in fuel tank    Y 13  Temperature of liquid in fuel tank  Y 14  Volume of gas phase in
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Massive 41868/62/10  Star Micronics Printer TUP500 User's Manual  Überprüfung der heutigen Situation im Bereich des  UniVessel® SU Holder    Manual duplamatic furo redondo Rev  Page 1 Page 2 堀品をお買い上げのお報へ 本製品をお買い上げ頂き  Photoview  ER 56 S - Sono Apli  VDOUBLE 10 Manual do Usuário    Copyright © All rights reserved. 
   Failed to retrieve file