*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.