Building from built-in models


Built-in models enable to build fast predefined models to use later in simulations.

Using existing built-in models

The constructor can be called using either of the following syntax:

sys = ssm(plist('built-in', '<model name>'));
If the user does not know the model name, then he may use the following call to see the list of all models:

ssm.getBuiltInModels

This way the numbers and names are displayed in an error message.

Note that the numbers may change if a new model is added, and using the name is highly recommended.


The LTPDA includes one mass-spring model which can be generated:


sys = ssm(plist('built-in', 'SMD'))
M:   running buildParamPlist
M:   running buildParamPlist
M:   running update_struct
M:   running validate
M:   running validate
M:   running display
------ ssm/1 -------
      amats: {  [2 x2 ]  }  [1x1]
      bmats: {  [2 x1 ]   [2 x2 ]  }  [1x2]
      cmats: {  [1 x2 ]  }  [1x1]
      dmats: { [0]  [1 x2 ]  }  [1x2]
   timestep: 0
     inputs:  [1x2 ssmblock]
         1 : CMD | f [kg m s^(-2)]
         2 : DIST_SMD | f [kg m s^(-2)], s [m]
     states:  [1x1 ssmblock]
         1 : SMD | x [m], xdot [m s^(-1)]
    outputs:  [1x1 ssmblock]
         1 : SMD | obs [m]
  numparams: (SMD_W=0.20000000000000001, SMD_C=0.5, SMD_S1=0, SMD_S2=0, SMD_B=1, SMD_D1=0)
     params: (empty-plist)
    Ninputs: 2
 inputsizes: [1 2]
   Noutputs: 1
outputsizes: 1
    Nstates: 1
 statesizes: 2
 Nnumparams: 6
    Nparams: 0
isnumerical: true
       hist: ssm.hist 
   procinfo: []
   plotinfo: []
       name: SPRINGMASSDAMPER
description: standard spring-mass-damper test system
       UUID: 888a56bc-f736-4d4b-b557-1521134770a6
--------------------

Options for the built-in constructor

There are two options:

How to make your own built-in model?

The model must exist as a function mfile in the built-in folders defined in the LTPDA preferences panel. The file name must be “ssm_model_<model name>.m” .

A good template to start writing a file should be “ssm_model_standard_system_params.m”. The model should support all the options above, and the use of the ssm “structure“ constructor is recommended because it does not increment the history.





©LTP Team