*SetGeneralStateEquation()
Specifies the type of states available and user defined subroutine expression for the general state equation.
Syntax
*SetGeneralStateEquation(varname, USER
, 'usr_sub'
[, system_type] )
Arguments
- varname
- The variable name of the general state equation.
- USER
- Keyword that indicates the next argument is a user defined expression that calls the subroutine.
- usr_sub
- The user defined expression that calls the subroutine.
- system_type
- The type of states in the general state equation.
Example
*SolverVariable( sv_1, "Input 1" )
*SetSolverVariable( sv_1, EXPR, `VX(1, 2, 3)`, OFF )
*SolverVariable( sv_2, "Input 2" )
*SetSolverVariable( sv_2, EXPR, `STEP(TIME, 0, 1, 5, 200)`, OFF )
*SolverVariable( sv_3, "Input 3" )
*SetSolverVariable( sv_3, LIN, 1+1, OFF )
*SolverArray( u_array, "Input Array", U, sv_1, sv_2, sv_3 )
*SolverArray( ic_array, "IC Array", IC )
*SetSolverArray( ic_array, VALUE, 4, 0.0,
3.4,
b_0.mass,
b_0.Izz )
*GeneralStateEquation( gse_0, "My Controller", 3,
u_array, ic_array )
*SetGeneralStateEquation(gse_0, USER, `USER(500,
{frc_cont.i.idstring},
{frc_cont.j.idstring})`
, CONTINUOUS
)
*SetContinuousStates( gse_0, 4, STATIC_HOLD )
*SetLocalUserDLL( gse_0, "mygsesubdll", "dll_xx",
"dll_xu",
"dll_yx",
"dll_yu" )
*ActionReactionForce(frc_cont, "Control Force", LOA,
b_0,
B_Ground,
p_cont,
P_Global_Origin )
*SetForce( frc_cont, EXPR, ARYVAL({gse_0.y_array.idstring}, 2)` )
Context
Comments
This statement is used to specify the function that calls the user subroutine and the type of state equation.
-
- CONTINUOUS
- The equation has continuous states only. The general state equation will be exported to MotionSolve and ADAMS. Any statements related to discrete states will be ignored.
-
- DISCRETE
- The equation has discrete states only. Not applicable for MotionSolve.
-
- SAMPLED
- The equation has both continuous and discrete states. Not applicable for MotionSolve.