*ControlSISO()
Defines a single-input, single-output, transfer function as a ratio of two polynomials in the Laplace domain when used with the associated ARRAY statements.
Syntax
*ControlSISO(siso_name,"siso_label")Arguments
- siso_name
- The variable name for the ControlSISO.
- siso_label
- The descriptive label for the ControlSISO.
Example
*BeginMdl(model5, "MBD Model" ) 
 *ControlSISO(siso_0, "ControlSISO 0" )
 *SolverVariable(sv_0, "Reference Speed" )
 *ActionReactionForce(frc_0, "Force 0", ROT, MODEL.b_0, 
 MODEL.B_Ground, MODEL.p_0, 
 Global_Frame )
 *SetSolverVariable(sv_0, 3)
 *SetForce(frc_0, 0, 0, '{MODEL.siso_0.OUTPUT}')
 *SetControlSISOCoeffs(siso_0, NUMER, 2, 10.00, 1.00, 
 DENOM, 2, 0.00, 1.00)
 *SetControlSISOInput(siso_0, '-WZ({MODEL.b_0.cm.idstring})
 +{sv_0.value}')
*EndMdl()Context
Properties
| Property | Returns Data Type | Description | 
|---|---|---|
| varname | string | The variable name of the ControlSISO. | 
| state | boolean | Control state (true or false). | 
| id | long integer | The ID of the entity when exported to the solver input deck. | 
| label | string | The descriptive label of the ControlSISO. | 
| input | real | The input of the ControlSISO. | 
| output | real | The output of the ControlSISO. | 
| u_var | The implicit solver variable. | 
Comments
The *ControlSISO() statement can be used to insert a controller directly within the MDL model, which the solver includes directly. For controllers such as Proportional-Derivative, this prevents the need for co-simulation or for the creation of direct differential equations.