TuningGoal.WeightedPassivity class
Package: TuningGoal
Frequencyweighted passivity constraint
Description
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
.
Construction
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 Arguments

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: 
Properties

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: 
Examples
Tips
Use
viewGoal
to visualize this tuning goal. For enforcing passivity withIPX = 0
andOPX = 0
,viewGoal
plots the relative passivity indices as a function of frequency (seepassiveplot
). 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
orOPX
,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
toOutput
, evaluated with loops opened at the points identified inOpenings
. The transmission zeros of H + I are the stabilized dynamics for this tuning goal. TheMinDecay
andMaxRadius
options ofsystuneOptions
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, usesystuneOptions
to change these defaults.
Algorithms
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.
See Also
looptune
 systune
 systune
(for slTuner)
(Simulink Control Design)  looptune (for slTuner)
(Simulink Control Design)  viewGoal
 evalGoal
 TuningGoal.Passivity
 slTuner
(Simulink Control Design)  getPassiveIndex
 passiveplot