*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.
Data type: varname
siso_label
The descriptive label for the ControlSISO.
Data type: label

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

*BeginMDL()

*DefineAnalysis()

*DefineSystem()

Properties

Table 1.
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.