Package: TuningGoal
Noise amplification constraint for control system tuning
Use the TuningGoal.Variance
object to specify
a tuning requirement that limits the noise amplification from specified
inputs to outputs. The noise amplification is defined as either:
The square root of the output variance, for a unitvariance whitenoise input
The rootmeansquare of the output, for a unitvariance whitenoise input
The H_{2} norm of the transfer function from the specified inputs to outputs, which equals the total energy of the impulse response
These definitions are different interpretations of the same
quantity. TuningGoal.Variance
imposes the same limit
on these quantities.
You can use the TuningGoal.Variance
requirement
for control system tuning with tuning commands, such as systune
or looptune
.
Specifying this requirement allows you to tune the system response
to whitenoise inputs. For stochastic inputs with a nonuniform spectrum
(colored noise), use TuningGoal.WeightedVariance
instead.
After you create a requirement object, you can further configure the tuning requirement by setting Properties of the object.
creates
a tuning requirement. This tuning requirement limits the noise amplification
of the transfer function from Req
= TuningGoal.Variance(inputname
,outputname
,maxamp
)inputname
to outputname
to
the scalar value maxamp
.
When you tune a control system in discrete time, this requirement
assumes that the physical plant and noise process are continuous.
To ensure that continuoustime and discretetime tuning give consistent
results, maxamp
is interpreted as a constraint
on the continuoustime H_{2} norm.
If the plant and noise processes are truly discrete and you want to
constrain the discretetime H_{2} norm
instead, multiply maxamp
by $$\sqrt{{T}_{s}}$$. T_{s} is
the sample time of the model you are tuning.

Input signals for the requirement, specified as a string or as a cell array of strings, for multipleinput requirements. If you are using the requirement to tune a Simulink^{®} model
of a control system, then
If you are using the requirement to tune a generalized statespace
(
For example, if you are tuning a control system model, If
For more information about analysis points in control system models, see Marking Signals of Interest for Control System Analysis and Design. 

Output signals for the requirement, specified as a string or as a cell array of strings, for multipleoutput requirements. If you are using the requirement to tune a Simulink model
of a control system, then
If you are using the requirement to tune a generalized statespace
(
For example, if you are tuning a control system model, If
For more information about analysis points in control system models, see Marking Signals of Interest for Control System Analysis and Design. 

Maximum noise amplification from When you tune a control system in discrete time, this requirement
assumes that the physical plant and noise process are continuous,
and interprets 

Maximum noise amplification, specified as a positive scalar
value. This property specifies the maximum value of the output variance
at the signals specified in 

Input signal scaling, specified as a vector of positive real values. Use this property to specify the relative amplitude of each
entry in vectorvalued input signals when the choice of units results
in a mix of small and large signals. This information is used to scale
the closedloop transfer function from Suppose T(s) is the closedloop
transfer function from The default value, Default: 

Output signal scaling, specified as a vector of positive real values. Use this property to specify the relative amplitude of each
entry in vectorvalued output signals when the choice of units results
in a mix of small and large signals. This information is used to scale
the closedloop transfer function from Suppose T(s) is the closedloop
transfer function from The default value, Default: 

Input signal names, specified as a cell array of strings. These
strings specify the names of the inputs of the transfer function that
the tuning requirement constrains. The initial value of the 

Output signal names, specified as a cell array of strings. These
strings specify the names of the outputs of the transfer function
that the tuning requirement constrains. The initial value of the 

Models to which the tuning requirement applies, specified as a vector of indices. Use the Req.Models = 2:4; When Default: 

Feedback loops to open when evaluating the requirement, specified as a cell array of strings that identify loopopening locations. The tuning requirement is evaluated against the openloop configuration created by opening feedback loops at the locations you identify. If you are using the requirement to tune a Simulink model
of a control system, then If you are using the requirement to tune a generalized statespace
( Default: 

Name of the requirement object, specified as a string. For example, if Req.Name = 'LoopReq'; Default: 
When you use this requirement to tune a continuoustime control
system, systune
attempts to enforce zero feedthrough
(D = 0) on the transfer that the requirement constrains.
Zero feedthrough is imposed because the H_{2} norm,
and therefore the value of the tuning goal (see Algorithms), is infinite for continuoustime systems with
nonzero feedthrough.
systune
enforces zero feedthrough by fixing
to zero all tunable parameters that contribute to the feedthrough
term. systune
returns an error when fixing these
tunable parameters is insufficient to enforce zero feedthrough. In
such cases, you must modify the requirement or the control structure,
or manually fix some tunable parameters of your system to values that
eliminate the feedthrough term.
When the constrained transfer function has several tunable blocks in series, the software's approach of zeroing all parameters that contribute to the overall feedthrough might be conservative. In that case, it is sufficient to zero the feedthrough term of one of the blocks. If you want to control which block has feedthrough fixed to zero, you can manually fix the feedthrough of the tuned block of your choice.
To fix parameters of tunable blocks to specified values, use
the Value
and Free
properties
of the block parametrization. For example, consider a tuned statespace
block:
C = ltiblock.ss('C',1,2,3);
To enforce zero feedthrough on this block, set its D matrix value to zero, and fix the parameter.
C.d.Value = 0; C.d.Free = false;
For more information on fixing parameter values, see the Control
Design Block reference pages, such as ltiblock.ss
.
When you tune a control system using a TuningGoal
object
to specify a tuning requirement, the software converts the requirement
into a normalized scalar value f(x).
The vector x is the vector of free (tunable) parameters
in the control system. The software then adjusts the parameter values
to minimize f(x) or to drive f(x)
below 1 if the tuning requirement is a hard constraint.
For the TuningGoal.Variance
requirement, f(x)
is given by:
$$f\left(x\right)={\Vert \frac{1}{\text{MaxAmplification}}T\left(s,x\right)\Vert}_{2}.$$
T(s,x)
is the closedloop transfer function from Input
to Output
. $${\Vert \text{\hspace{0.17em}}\cdot \text{\hspace{0.17em}}\Vert}_{2}$$ denotes
the H_{2} norm (see norm
).
For tuning discretetime control systems, f(x) is given by:
$$f\left(x\right)={\Vert \frac{1}{\text{MaxAmplification}\sqrt{{T}_{s}}}T\left(z,x\right)\Vert}_{2}.$$
T_{s} is the sample time of the discretetime transfer function T(z,x).