Replace or update Control Design Blocks in Generalized LTI model
Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN)
Mnew = replaceBlock(M,blockvalues)
Mnew = replaceBlock(...,mode)
Mnew = replaceBlock(
the specified values
LTI model or a Generalized matrix.
If a specified
Replacement values for the corresponding blocks
The replacement value for a block can be any value compatible
with the size of the block, including a different Control Design Block,
a numeric matrix, or an LTI model. If any value is
Structure specifying blocks of
The field names of
String specifying the block replacement mode for an input array
When the input
Matrix or linear model or matrix where the specified blocks are replaced by the specified replacement values.
This example shows how to replace a tunable PID controller (
ltiblock.pid) in a Generalized LTI model
by a pure gain, a numeric PI controller, or the current value of the
Create a Generalized LTI model of the following system:
where the plant , and C is a tunable PID controller.
G = zpk(1,[-1,-1,-1],1); C = ltiblock.pid('C','pid'); Try = feedback(G*C,1)
C by a pure gain of 5.
T1 = replaceBlock(Try,'C',5);
T1 is a
C by a PI controller with
proportional gain of 5 and integral gain of 0.1.
C2 = pid(5,0.1); T2 = replaceBlock(Try,'C',C2);
T2 is a
ss model that
C by its current (nominal)
T3 = replaceBlock(Try,'C',);
T3 is a
ss model where
been replaced by
This example shows how to sample a parametric model of a second-order filter across a grid of parameter values using
Consider the second-order filter represented by:
Sample this filter at varying values of the damping constant and the natural frequency . Create a parametric model of the filter by using tunable elements for and .
wn = realp('wn',3); zeta = realp('zeta',0.8); F = tf(wn^2,[1 2*zeta*wn wn^2])
F = Generalized continuous-time state-space model with 1 outputs, 1 inputs, 2 states, and the following blocks: wn: Scalar parameter, 5 occurrences. zeta: Scalar parameter, 1 occurrences. Type "ss(F)" to see the current value, "get(F)" to see all properties, and "F.Blocks" to interact with the blocks.
F is a
genss model with two tunable Control Design Blocks, the
zeta. The blocks
zeta have initial values of 3 and 0.8, respectively.
F over a 2-by-3 grid of (
wnvals = [3;5]; zetavals = [0.6 0.8 1.0]; Fsample = replaceBlock(F,'wn',wnvals,'zeta',zetavals);
Fsample is a 2-by-3 array of state-space models. Each entry in the array is a state-space model that represents
F evaluated at the corresponding (
zeta) pair. For example,
wn = 5 and
zeta = 1.0.
Examine the step response of
The step response plots show the variation in the natural frequency and damping constant across the six models in the array
You can set the
SamplingGrid property of the model array to help keep track of which set of parameter values corresponds to which entry in the array. To do so, create a grid of parameter values that matches the dimensions of the array. Then, assign these values to
Fsample.SamplingGrid with the parameter names.
[wngrid,zetagrid] = ndgrid(wnvals,zetavals); Fsample.SamplingGrid = struct('wn',wngrid,'zeta',zetagrid);
When you display
Fsample, the parameter values in
Fsample.SamplingGrid are displayed along with the each transfer function in the array.
replaceBlock to perform parameter
studies by sampling Generalized LTI models across a grid of parameters,
or to evaluate tunable models for specific values of the tunable blocks.