Tunable transfer function with fixed number of poles and zeros
blk = tunableTF(name,Nz,Np)
blk = tunableTF(name,Nz,Np,Ts)
blk = tunableTF(name,sys)
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
.
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.

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. 



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: 
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
genss
 hinfstruct
 looptune
 systune
 tunableGain
 tunablePID
 tunablePID2
 tunableSS