LTPDA Toolbox™ | contents | ![]() ![]() |
Built-in models enable to build fast predefined models to use later in simulations.
The constructor can be called using either of the following syntax:
>> system = ssm(plist('built-in', '<model name>')) >> system = ssm(plist('built-in', '<model number>'))
If the user does not know the model name/number, then he may use the following call to see the list of all models :
>> system = ssm(plist('built-in', ''))
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 :
>> system = ssm(plist('built-in', 'standard_system_params')) M: running ssm/ssm M: running ssmFromBuiltinSystem M: looking for models in C:\Documents and Settings\Adrien.IFR-NB01\My Documents\MATLAB2008\LTPDA_SSM_MODELS\ltp_ssm_models M: looking for models in C:\Users\Adrien.IFR-NB01\My Documents\MATLAB2008\ltpda_toolbox\ltpda\classes\@ssm\..\..\m\built_in_models M: running buildParamPlist M: running ssm/ssm M: running ssm/ssm M: running fromStruct M: running ssm/ssm M: running validate M: running validate M: running display ------ ssm/1 ------- amats: { [2x2] } [1x1] mmats: { [2x2] } [1x1] bmats: { [2x1] [2x2] } [1x2] cmats: { [1x2] } [1x1] dmats: { [] [1x2] } [1x2] timestep: 0 inputs: [1x2 ssmblock] 1 : U | Fu [kg m s^(-2)] 2 : N | Fn [kg m s^(-2)], On [m] states: [1x1 ssmblock] 1 : standard test system | x [m], xdot [m s^(-1)] outputs: [1x1 ssmblock] 1 : Y | y [m] params: (empty-plist) [1x1 plist] version: $Id: ssm_build_built_in_content.html,v 1.4 2012/01/19 13:28:16 ingo Exp $-->$Id: ssm_build_built_in_content.html,v 1.4 2012/01/19 13:28:16 ingo Exp $ Ninputs: 2 inputsizes: [1 2] Noutputs: 1 outputsizes: 1 Nstates: 1 statesizes: 2 Nparams: 0 isnumerical: true hist: ssm.hist [1x1 history] procinfo: (empty-plist) [1x1 plist] plotinfo: (empty-plist) [1x1 plist] name: standard_system_params description: standard spring-mass-dashpot test system mdlfile: UUID: 4415784d-79d9-408d-9b82-3f39ace0d518
There are two options:
NAME and DESCRIPTION allow to set the object's name and description in the constructor
DIM allows to reduce the model to 3, 2 or 1 dimension. Lower dimension models are built using the 3D model and deleting inputs/states/outputs. The consequence is that parameters that affect primarily the 3D model may still remain in the 1D model in the „params“ field, but also in the matrices if they have a small effect on the 1D dynamics.
WITHPARAMS allows to keep selected parameters symbolic, to modify their value later. However current issues with MuPad make the use of multiple symbolic systems complicated, as the symbolic parameters are global variable with problematic side effects. The keyword 'ALL' returns the system with all its parameters symbolic.
>> system = ssm(plist('built-in', 'standard_system_params', 'withparams', {'D'})) >> system = ssm(plist('built-in', 'standard_system_params', 'withparams', 'ALL')) >> sys = ssm(plist('built-in', 'standard_system_params', 'setnames', {'W'}, 'setvalues', 0.2*i ));
Trying sys.isStable with the first and the third system shows a different result, the negative stiffness making the latter unstable.
SETNAMES and SETVALUES allow to set the value for parameters, including those which are not kept symbolic. The first field is a cell array of strings, the second is a double array of the corresponding values.
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.
![]() |
Building from scratch | Modifying systems | ![]() |
©LTP Team