getValue
Current value of Generalized Model
Syntax
curval = getValue(M)
curval = getValue(M,blockvalues)
curval = getValue(M,Mref)
Description
returns the current value curval
= getValue(M
)curval
of the Generalized LTI model or Generalized matrix
M
. The current value is obtained by replacing all Control Design Blocks in M
by
their current value. (For uncertain blocks, the “current value” is the
nominal value of the block.)
uses the block values specified in the structure curval
= getValue(M
,blockvalues
)blockvalues
to
compute the current value. The field names and values of
blockvalues
specify the block names and corresponding values.
Blocks of M
not specified in blockvalues
are
replaced by their current values.
inherits block values from the generalized model curval
= getValue(M
,Mref
)Mref
. This syntax
is equivalent to curval
=
getValue(M
,Mref.Blocks
). Use this syntax to
evaluate the current value of M
using block values computed
elsewhere (for example, tuned values obtained with tuning commands such as systune
, looptune
, or the Robust Control Toolbox™ command hinfstruct
(Robust Control Toolbox)).
Input Arguments
| |
|
Structure specifying blocks of The field names of |
|
Generalized LTI model. If you provide |
Output Arguments
|
Numeric array or Numeric LTI
model representing the current value of If you do not specify a replacement value for a given Control Design Block
of |
Examples
Evaluate Model for Specified Values of its Blocks
This example shows how to replace a Control Design Block in a Generalized LTI
model with a specified replacement value using getValue
.
Consider the following closed-loop system:
The following code creates a genss
model of this system with and a tunable PI controller C.
G = zpk(1,[-1,-1,-1],1); C = tunablePID('C','pi'); Try = feedback(G*C,1)
The genss
model Try
has one Control Design
Block, C
. The block C
is initialized to
default values, and the model Try
has a current value that
depends on the current value of C
. Use
getValue
to evaluate C
and
Try
to examine the current values.
Evaluate
C
to obtain its current value.Cnow = getValue(C)
This command returns a numeric
pid
object whose coefficients reflect the current values of the tunable parameters inC
.Evaluate
Try
to obtain its current value.Tnow = getValue(Try)
This command returns a numeric model that is equivalent to
feedback(G*Cnow,1)
.
Access Values of Tuned Models and Blocks
Propagate changes in block values from one model to another using
getValue
.
This technique is useful for accessing values of models and blocks tuned with
tuning commands such as systune
, looptune
, or hinfstruct
(Robust Control Toolbox). For example, if you
have a closed-loop model of your control system T0
, with two
tunable blocks, C1
and C2
, you can tune it
using:
[T,fSoft] = systune(T0,SoftReqs);
You can then access the tuned values of C1
and
C2
, as well as any closed-loop model H
that depends on C1
and C2
, using the
following:
C1t = getValue(C1,T); C2t = getValue(C2,T); Ht = getValue(H,T);
Version History
Introduced in R2011b
See Also
genss
| replaceBlock
| systune
| looptune
| hinfstruct
(Robust Control Toolbox)