Documentation

writeBlockValue

Update block values in Simulink model

Syntax

writeBlockValue(st)
writeBlockValue(st,blockid)
writeBlockValue(st,m)

Description

example

writeBlockValue(st) writes tuned parameter values from the slTuner interface, st, to the Simulink® model that st describes. Use this command, for example, to validate parameters of a control system that you tuned using systune or looptune.

writeBlockValue skips blocks that cannot represent their tuned value in a straightforward and lossless manner. For example, suppose you tune an user defined Subsystem or S-Function block. writeBlockValue will skip this block because there is no clear way to map the tuned value to a Subsystem or S-Function block. Similarly, if you parameterize a Gain block as a second-order transfer function, writeBlockValue will skip this block, unless the transfer function value is a static gain.

writeBlockValue(st,blockid) only updates the block or blocks referenced by blockid.

writeBlockValue(st,m) writes tuned parameter values from a generalized model, m, to the Simulink model described by the slTuner interface, st.

Examples

collapse all

Create an slTuner interface for the model.

st = slTuner('scdcascade',{'C1','C2'});

Specify the tuning goals and necessary analysis points.

tg1 = TuningGoal.StepTracking('r','y1m',5);

addPoint(st,{'r','y1m'});

tg2 = TuningGoal.Poles();
tg2.MaxFrequency = 10;

Tune the controller.

[sttuned,fSoft] = systune(st,[tg1 tg2]);
Final: Soft = 1.28, Hard = -Inf, Iterations = 37

After validating the tuning results, update the model to use the tuned controller values.

writeBlockValue(sttuned);

Input Arguments

collapse all

Interface for tuning control systems modeled in Simulink, specified as an slTuner interface.

Blocks to update with tuned values, specified as a:

  • Character vector or string, to update one block.

  • Cell array of character vectors or string array, to update multiple blocks.

The blocks in blockid must be in the TunedBlocks property of the slTuner interface st. You can specify a full block path, or any portion of the block path that uniquely identifies the block among the other tuned blocks of st.

Example: blk = {'scdcascade/C1','scdcascade/C2'}

Example: "C1"

Tuned control system, specified as a generalized state-space model (genss).

Typically, m is the output of a tuning function like systune, looptune, or hinfstruct. The model m must have some tunable parameters in common with st. For example, m can be a generalized model that you obtained by linearizing your Simulink model, and then tuned to meet some design requirements.

Introduced in R2014a

Was this topic helpful?