tunableTF
Tunable transfer function with fixed number of poles and zeros
Syntax
blk = tunableTF(name,Nz,Np)
blk = tunableTF(name,Nz,Np,Ts)
blk = tunableTF(name,sys)
Description
Model object for creating tunable SISO transfer function models of fixed order.
tunableTF
lets you parameterize a transfer function of a given order
for parameter studies or for automatic tuning with tuning commands such as systune
or looptune
.
tunableTF
is part of the Control Design Block family of parametric models. Other
Control Design Blocks include tunablePID
, tunableSS
, and tunableGain
.
Construction
creates the parametric SISO transfer function: blk
= tunableTF(name
,Nz
,Np
)
$$blk=\frac{{a}_{m}{s}^{m}+{a}_{m1}{s}^{m1}+\dots +{a}_{1}s+{a}_{0}}{{s}^{n}+{b}_{n1}{s}^{n1}+\dots +{b}_{1}s+{b}_{0}}.$$
n =
Np
is the maximum number of poles of
blk
, and m =
Nz
is
the maximum number of zeros. The tunable parameters are the numerator and denominator
coefficients
a_{0}, ..., a_{m}
and
b_{0}, ..., b_{n–1}.
The leading coefficient of the denominator is fixed to 1.
creates a discretetime parametric transfer function with sample time
blk
= tunableTF(name
,Nz
,Np
,Ts
)Ts
.
uses the blk
= tunableTF(name
,sys
)tf
model sys
to set the
number of poles, number of zeros, sample time, and initial parameter values.
Input Arguments

Parametric transfer function 

Nonnegative integer specifying the number of zeros of the parametric transfer
function 

Nonnegative integer specifying the number of poles of the parametric transfer
function 

Scalar sample time. 


Properties

Parameterization of the numerator coefficients
a_{m}, ..., a_{0}
and the denominator coefficients
1,b_{n–1}, ..., b_{0}
of the tunable transfer function
The following fields of
 

Sample time. For continuoustime models, Changing this property does not discretize or resample the model. Default:  

Units for the time variable, the sample time
Changing this property has no effect on other properties, and
therefore changes the overall system behavior. Use Default:  

Input channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign input
names for multiinput models. For example, if sys.InputName = 'controls'; The input names automatically expand to You can use the shorthand notation Input channel names have several uses, including:
Default:  

Input channel units, specified as one of the following:
Use Default:  

Input channel groups. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; creates input groups named sys(:,'controls') Default: Struct with no fields  

Output channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign output
names for multioutput models. For example, if sys.OutputName = 'measurements'; The output names automatically expand to You can use the shorthand notation Output channel names have several uses, including:
Default:  

Output channel units, specified as one of the following:
Use Default:  

Output channel groups. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; creates output groups named sys('measurement',:) Default: Struct with no fields  

System name, specified as a character vector. For example, Default:  

Any text that you want to associate with the system, stored as a string or a cell array of
character vectors. The property stores whichever data type you
provide. For instance, if sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Default:  

Any type of data you want to associate with system, specified as any MATLAB^{®} data type. Default: 
Examples
Create a parametric SISO transfer function with two zeros, four poles, and at least one integrator.
A transfer function with an integrator includes a factor of 1/s. Therefore, to ensure that a parameterized transfer function has at least one integrator regardless of the parameter values, fix the lowestorder coefficient of the denominator to zero.
blk = tunableTF('tfblock',2,4); % two zeros, four poles blk.Denominator.Value(end) = 0; % set last denominator entry to zero blk.Denominator.Free(end) = 0; % fix it to zero
Create a parametric transfer function, and assign names to the input and output.
blk = tunableTF('tfblock',2,3); blk.InputName = {'error'}; % assign input name blk.OutputName = {'control'}; % assign output name
Tips
Compatibility Considerations
See Also
tunablePID
 tunablePID2
 tunableGain
 tunableSS
 systune
 looptune
 genss
 hinfstruct
(Robust Control Toolbox)