How Tuned Simulink Blocks Are Parameterized
Blocks with Predefined Parameterization
When you tune a Simulink® model, either with Control System Tuner or at the command line
through an slTuner
(Simulink Control Design) interface, the software
automatically assigns a predefined parameterization to certain Simulink blocks. For example, for a PID Controller block set to the PI
controller type, the software automatically assigns the parameterization Kp +
Ki/s, where Kp and
Ki are the tunable parameters. For blocks that
have a predefined parameterization, you can write tuned values back to the Simulink model for validating the tuned controller.
Blocks that have a predefined parameterization include the following:
Simulink Library | Blocks with Predefined Parameterization |
---|---|
Math Operations | Gain (Simulink) |
Continuous |
|
Discrete |
|
Lookup Tables |
|
Control System Toolbox | |
Discretizing (Model Discretizer Blocks) |
|
Simulink Extras/Additional Linear | State-Space (with initial outputs) |
Scalar Expansion
The following tunable blocks support scalar expansion:
Discrete Filter
Gain
1-D Lookup Table, 2-D Lookup Table, n-D Lookup Table
PID Controller, PID Controller (2DOF)
Scalar expansion means that the block parameters can be scalar values even when the
input and output signals are vectors. For example, you can use a Gain block
to implement y = k*u
with scalar k
and vector
u
and y
. To do so, you set the
Multiplication mode of the block to
Element-wise(K.*u)
, and set the gain value to the scalar
k
.
When a tunable block uses scalar expansion, its default parameterization uses tunable
scalars. For example, in the y = k*u
Gain block, the software parameterizes the scalar k
as a
tunable real scalar (realp
of size [1 1]
). If
instead you want to tune different gain values for each channel, replace the scalar gain
k
by a N-by-1
gain vector in the block dialog,
where N
is the number of channels, the length of the vectors
u
and y
. The software then parameterizes the gain
as a realp
of size [N 1]
.
Blocks Without Predefined Parameterization
You can specify blocks for tuning that do not have a predefined parameterization. When you do so, the software assigns a state-space parameterization to such blocks based upon the block linearization. For blocks that do not have a predefined parameterization, the software cannot write tuned values back to the block, because there is no clear mapping between the tuned parameters and the block. To validate a tuned control system that contains such blocks, you can specify a block linearization in your model using the value of the tuned parameterization. (See Specify Block Linearization Using MATLAB Expression (Simulink Control Design) for more information about specifying block linearization.)
View and Change Block Parameterization
You can view and edit the current parameterization of every block you designate for tuning.
In Control System Tuner, see View and Change Block Parameterization in Control System Tuner.
At the command line, use
getBlockParam
(Simulink Control Design) to view the current block parameterization. UsesetBlockParam
(Simulink Control Design) to change the block parameterization.