Package: TuningGoal
Frequencyweighted passivity constraint
A system is passive if all its I/O trajectories (u(t),y(t)) satisfy:
$${\int}_{0}^{T}y{\left(t\right)}^{T}u\left(t\right)dt}>0,$$
for all T > 0. TuningGoal.WeightedPassivity
enforces
the passivity of the transfer function:
$$H\left(s\right)={W}_{L}\left(s\right)T\left(s\right){W}_{R}\left(s\right),$$
where T_{s} is a closedloop
response in the control system being tuned. W_{L} and W_{R} are
weighting functions used to emphasize particular frequency bands.
Use TuningGoal.WeightedPassivity
with control system
tuning commands such as systune
.
creates
a tuning goal for enforcing passivity of the transfer function:Req
= TuningGoal.WeightedPassivity(inputname
,outputname
,WL,WR
)
$$H\left(s\right)={W}_{L}\left(s\right)T\left(s\right){W}_{R}\left(s\right),$$
where T_{s} is the closedloop
transfer function from the specified inputs to the specified outputs.
The weights WL
and WR
can
be matrices or LTI models.
By default, the tuning goal enforces passivity of the weighted
transfer function H. You can also enforce input
and output passivity indices, with a specified excess or shortage
of passivity. (See getPassiveIndex
for
more information about passivity indices.) To do so, set the IPX
and OPX
properties
of the tuning goal. See Weighted Passivity and Input Passivity.

Input signals for the tuning goal, specified as a character vector or, for multipleinput tuning goals, a cell array of character vectors.
For more information about analysis points in control system models, see Mark Signals of Interest for Control System Analysis and Design. 

Output signals for the tuning goal, specified as a character vector or, for multipleoutput tuning goals, a cell array of character vectors.
For more information about analysis points in control system models, see Mark Signals of Interest for Control System Analysis and Design. 

Input and output weighting functions, specified as scalars, matrices, or SISO or MIMO numeric LTI models. The functions $$H\left(s\right)={W}_{L}\left(s\right)T\left(s\right){W}_{R}\left(s\right),$$ where T(s) is the transfer
function from
If If you are tuning in discrete time (that is, using a A value of Default: 

Frequencyweighting function for the output channels of the
transfer function to constrain, specified as a scalar, a matrix, or
a SISO or MIMO numeric LTI model. The initial value of this property
is set by the 

Frequencyweighting function for the input channels of the transfer
function to constrain, specified as a scalar, a matrix, or a SISO
or MIMO numeric LTI model. The initial value of this property is set
by the 

Target passivity at the inputs listed in $${\int}_{0}^{T}y{\left(t\right)}^{T}u\left(t\right)dt}>\nu {\displaystyle {\int}_{0}^{T}u{\left(t\right)}^{T}u\left(t\right)dt},$$ for all T > 0. By default, the tuning goal enforces strict passivity of the
weighted transfer function. To enforce an input passivity index with
a specified excess or shortage of passivity, set the
See Weighted Passivity and Input Passivity for an example. See Default: 0 

Target passivity at the outputs listed in $${\int}_{0}^{T}y{\left(t\right)}^{T}u\left(t\right)dt}>\rho {\displaystyle {\int}_{0}^{T}y{\left(t\right)}^{T}y\left(t\right)dt},$$ for all T > 0. By default, the tuning goal enforces strict passivity of the
weighted transfer function. To enforce an output passivity index with
a specified excess or shortage of passivity, set the
See Weighted Passivity and Input Passivity for an example. See Default: 0 

Frequency band in which tuning goal is enforced, specified as
a row vector of the form Set the Req.Focus = [1,100]; Default: 

Input signal names, specified as a cell array of character vectors.
The input signal names specify the input locations for determining
passivity, initially populated by the 

Output signal names, specified as a cell array of character
vectors. The output signal names specify the output locations for
determining passivity, initially populated by the 

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

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

Name of the tuning goal, specified as a character vector. For example, if Req.Name = 'LoopReq'; Default: 
Use viewGoal
to
visualize this tuning goal. For enforcing passivity with IPX
= 0
and OPX = 0
, viewGoal
plots
the relative passivity indices as a function of frequency (see passiveplot
). These are the singular
values of $$\left(IH\left(j\omega \right)\right){\left(IH\left(j\omega \right)\right)}^{1}$$.
The weighted transfer function H is passive when
the largest singular value is less than 1 at all frequencies.
For nonzero IPX
or OPX
, viewGoal
plots
the relative index as described in Algorithms.
This tuning goal imposes an implicit minimumphase constraint
on the transfer function H + I,
where H is the weighted closedloop transfer function
from Input
to Output
, evaluated
with loops opened at the points identified in Openings
.
The transmission zeros of H + I are
the stabilized dynamics for this tuning goal.
The MinDecay
and MaxRadius
options
of systuneOptions
control the bounds on these
implicitly constrained dynamics. If the optimization fails to meet
the default bounds, or if the default bounds conflict with other requirements,
use systuneOptions
to change
these defaults.
When you tune a control system using a TuningGoal
,
the software converts the tuning goal into a normalized scalar value f(x),
where 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 goal is a hard constraint.
For TuningGoal.WeightedPassivity
, for a closedloop
transfer function T(s,x)
from inputname
to outputname
,
and the weighted transfer function H(s,x) = WL*T(s,x)*WR
, f(x)
is given by:
$$f\left(x\right)=\frac{R}{1+R/{R}_{\mathrm{max}}},\text{\hspace{1em}}{R}_{\mathrm{max}}={10}^{6}.$$
R is the relative sector index (see getSectorIndex
) of [H(s,x);I]
,
for the sector represented by:
$$Q=\left(\begin{array}{cc}2\rho & I\\ I& 2\nu \end{array}\right),$$
using the values of the OPX
and IPX
properties
for ρ and ν, respectively. R_{max} is
fixed at 10^{6}, included to avoid numerical
errors for very large R.
looptune
 systune
 systune
(for slTuner)
(Simulink Control Design)  looptune (for slTuner)
(Simulink Control Design)  viewGoal
 evalGoal
 TuningGoal.Passivity
 slTuner
(Simulink Control Design)  getPassiveIndex
 passiveplot