# Tfsiso

Model ElementTfsiso is an abstract modeling element that defines a linear, time invariant dynamic system in the Laplace domain.

Tfsiso

## Description

SISO stands for Single Input Single Output. Such a dynamic system is characterized by a transfer function.In practice, the transfer function is often characterized by experiments followed by curve fitting. Modeling applications of this element include actuators (electrical, hydraulic, and pneumatic), vibration isolators (bushings and shock absorbers), and controllers (PID).

## Attribute Summary

Name Property Modifiable by command? Designable?
id Int ()
label Str () Yes
numerator Double (count=0) Yes FD Only
denominator Double (count=0) Yes FD Only
x Reference ("Array") Yes
y Reference ("Array") Yes
u Reference ("Array") Yes
static_hold Bool () Yes
active Bool () Yes

## Usage

Tfsiso (x=objArray, u= objArray, y= objArray, numerator=list, denominator=list, optional_attributes)

## Attributes

x
Reference to an Array object of type X.
Specifies the ARRAY used to store the states x of this TFSISO. You can use the ARYVAL() function with the ID of this Array to access the states in a MotionSolve expression. You can also use this ID in SYSFNC and SYSARY to access the state values from a user subroutine.
This attribute is mandatory.
u
Reference to an Array object of type U.
Specifies the ARRAY used to store the input u of this TFSISO. You can use the ARYVAL() function with this ID to access the states in a MotionSolve expression. You can also use this ID in SYSFNC and SYSARY to access the input values from a user subroutine.
y
Reference to an Array object of type Y.
Specifies the ARRAY used to store the output, y, of this TFSISO. You can use the ARYVAL() function with the ID of this array to access the states in a MotionSolve expression. You can also use this ID in SYSFNC and SYSARY to access the output values from a user subroutine.
This attribute is mandatory.
numerator
List of Doubles.
Specifies the list of coefficients, in the ascending powers of "s", of the numerator polynomial of the transfer function.
This attribute is mandatory.
denominator
List of Doubles.
Specifies the list of coefficients, in the ascending powers of "s", of the denominator polynomial of the transfer function.
This attribute is mandatory.
Note: Normally the number of denominator coefficients > the number of numerator coefficients.
id
Integer
Specifies the element identification number. This number must be unique among all the Tfsiso objects in the model.
This attribute is optional. MotionSolve will automatically create an ID when one is not specified.
Range of values: id > 0
label
String
Specifies the name of the Surface object.
This attribute is optional. When not specified, MotionSolve will create a label for you.
static hold
Boolean
Specifies whether the value of the dynamic state is kept fixed or not during static equilibrium and quasi static solutions.
• True implies that the value of the dynamic state is kept constant during static and quasi-static solutions.
• False implies that the value of the dynamic state is allowed to change during static equilibrium or quasi-static solutions.
This attribute is optional. When not specified it defaults to False.

## Example

1. Define a 3rd order, low pass Butterworth filter.

A low-pass filter is a transfer function that passes signals with a frequency lower than a certain cutoff frequency and attenuates signals with frequencies higher than the cutoff frequency.

A Butterworth filter is a type of signal processing filter designed to have as flat a frequency response as possible when the input has a frequency less than the cut-off frequency (the pass band). The signal attenuates rapidly when the input frequency is larger than the cutoff frequency (the stop band).

The 3rd order Butterworth filter has the following transfer function:(1)
$\text{H(s)=}\frac{\text{1}}{{\text{1+2s+2s}}^{\text{2}}{\text{+s}}^{\text{3}}}$
For these parameters, a Tfsiso describing the 3rd order Butterworth filter may be defined as follows:
# Define the X, U arrays
x1 = Array (type="X", size=3)
y1 = Array (type="Y", size=1)

# Define the input signal
v1 = Variable (function="0.5*3.123*VM(21,11)**2")
u1 = Array(type="U", size=1, variables=[v1])

# Now define the 3rd order Butterworth low-pass filter coefficients
num = [1]
den = [1, 2, 2, 1]
tf = Tfsiso (label="Butterworth order-3", x=x1, u=u1,  y=y1, numerator=num, denominator=den)