Add signal to list of analysis points for slLinearizer
or slTuner
interface
addPoint(
adds
the specified point to the list of analysis points for the s
,pt
)slLinearizer
or slTuner
interface, s
.
Analysis points are model signals that can be used as input,
output, or loop-opening locations for analysis and tuning purposes.
You use analysis points as inputs to the linearization commands of s
: getIOTransfer
, getLoopTransfer
, getSensitivity
,
and getCompSensitivity
. As inputs to the linearization
commands, analysis points can specify any open- or closed-loop transfer
function in a model. You can also use analysis points to specify tuning
goals for systune
.
Open the scdcascade
model.
mdl = 'scdcascade';
open_system(mdl);
Create an slLinearizer
interface for the model.
sllin = slLinearizer(mdl);
Add u1
and y1
as analysis points for sllin
.
addPoint(sllin,{'u1','y1'});
View the currently defined analysis points within sllin
.
sllin
slLinearizer linearization interface for "scdcascade": 2 Analysis points: -------------------------- Point 1: - Block: scdcascade/C1 - Port: 1 - Signal Name: u1 Point 2: - Block: scdcascade/G1 - Port: 1 - Signal Name: y1 No permanent openings. Use the addOpening command to add new permanent openings. Properties with dot notation get/set access: Parameters : [] OperatingPoints : [] (model initial condition will be used.) BlockSubstitutions : [] Options : [1x1 linearize.LinearizeOptions]
Suppose you want to linearize the magball model and obtain a transfer function from the reference input to the plant output. Add the signals originating at the Desired Height
and Magnetic Ball Plant
blocks as analysis points to an slLinearizer
interface.
Open the magball
model.
mdl = 'magball';
open_system(mdl);
Create an slLinearizer
interface for the model.
sllin = slLinearizer(mdl);
Add the signals originating at the Design Height
and Magnetic Ball Plant
blocks as analysis points of sllin
. Both signals originate at the first (and only) port of the respective blocks.
blk = {'magball/Desired Height','magball/Magnetic Ball Plant'}; port_num = [1 1]; addPoint(sllin,blk,port_num);
Open the scdbusselection
model.
mdl = 'scdbusselection';
open_system(mdl);
Create an slLinearizer
interface model.
sllin = slLinearizer(mdl);
The COUNTERBUS
signal of scdbusselection
contains multiple bus elements. Add the upper_saturation_limit
and data
bus elements as analysis points to sllin
. When adding elements within a nested bus structure, use dot notation to access the elements of the nested bus, for example limits.upper_saturation_limit
.
blk = {'scdbusselection/COUNTERBUSCreator','scdbusselection/COUNTERBUSCreator'}; port_num = [1 1]; bus_elem_name = {'limits.upper_saturation_limit','data'}; addPoint(sllin,blk,port_num,bus_elem_name);
Both bus elements originate at the first (and only) port of the scdbusselection/COUNTERBUSCreator
block. Therefore, blk
and port_num
repeat the same element twice.
s
— Interface to Simulink® modelslLinearizer
interface | slTuner
interfaceInterface to a Simulink model, specified as either an slLinearizer
interface or an slTuner
interface.
pt
— Analysis pointAnalysis point to add to the list of analysis points for s
,
specified as:
Character vector or string — Signal identifier that can be any of the following:
Signal name, for example 'torque'
Block path for a block with a single output port,
for example 'Motor/PID'
Path to block and port originating the signal, for
example 'Engine Model/1'
or 'Engine Model/torque'
Cell array of character vectors or string array — Specifies multiple signal identifiers.
Vector of linearization I/O objects — Use linio
to create pt
.
For example:
pt(1) = linio('scdcascade/setpoint',1) pt(2) = linio('scdcascade/Sum',1,'output')
Here, pt(1)
specifies an input, and pt(2)
specifies
an output. The interface adds all the signals specified by pt
and
ignores the I/O types. The interface also adds all 'loopbreak'
type
signals as permanent openings.
blk
— Block path identifying block where analysis point originatesBlock path identifying the block where the analysis point originates, specified as a:
Character vector or string to specify a single point,
for example blk = 'scdcascade/C1'
.
Cell array of character vectors or string array to
specify multiple points, for example blk = {'scdcascade/C1','scdcascade/Sum'}
.
blk
, port_num
, and bus_elem_name
(if
specified) must have the same size.
port_num
— Port where analysis point originatesPort where the analysis point originates, specified as a:
Positive integer to specify a single point, for example port_num
= 1
.
Vector of positive integers to specify multiple points,
for example port_num = [1 1]
.
blk
, port_num
, and bus_elem_name
(if
specified) must have the same size.
bus_elem_name
— Bus element nameBus element name, specified as a:
Character vector or string to specify a single point,
for example bus_elem_name = 'data'
.
Cell array of character vectors or string array to
specify multiple points, for example bus_elem_name = {'limits.upper_saturation_limit','data'}
.
blk
, port_num
, and bus_elem_name
(if
specified) must have the same size.
Analysis points, used
by the slLinearizer
and slTuner
interfaces,
identify locations within a model that are relevant for linear analysis
and control system tuning. You use analysis points as inputs to the
linearization commands, such as getIOTransfer
, getLoopTransfer
, getSensitivity
, and getCompSensitivity
. As inputs to the
linearization commands, analysis points can specify any open-loop
or closed-loop transfer function in a model. You can also use analysis
points to specify design requirements when tuning control systems
using commands such as systune
.
Location refers to a specific block output port within a model or to a bus element in such an output port. For convenience, you can use the name of the signal that originates from this port to refer to an analysis point.
You can add analysis points to an slLinearizer
or slTuner
interface, s
,
when you create the interface. For example:
s = slLinearizer('scdcascade',{'u1','y1'});
Alternatively, you can use the addPoint
command.
To view all the analysis points of s
, type s
at
the command prompt to display the interface contents. For each analysis
point of s
, the display includes the block name
and port number and the name of the signal that originates at this
point. You can also programmatically obtain a list of all the analysis
points using getPoints
.
For more information about how you can use analysis points, see Mark Signals of Interest for Control System Analysis and Design and Mark Signals of Interest for Batch Linearization.
Permanent openings,
used by the slLinearizer
and slTuner
interfaces,
identify locations within a model where the software breaks the signal
flow. The software enforces these openings for linearization and tuning.
Use permanent openings to isolate a specific model component. Suppose
that you have a large-scale model capturing aircraft dynamics and
you want to perform linear analysis on the airframe only. You can
use permanent openings to exclude all other components of the model.
Another example is when you have cascaded loops within your model
and you want to analyze a specific loop.
Location refers to a specific block output port within a model. For convenience, you can use the name of the signal that originates from this port to refer to an opening.
You can add permanent openings to an slLinearizer
or slTuner
interface, s
,
when you create the interface or by using the addOpening
command. To remove a location
from the list of permanent openings, use the removeOpening
command.
To view all the openings of s
, type s
at
the command prompt to display the interface contents. For each permanent
opening of s
, the display includes the block name
and port number and the name of the signal that originates at this
location. You can also programmatically obtain a list of all the permanent
loop openings using getOpenings
.
addOpening
| linio
| removeAllPoints
| removePoint
| slLinearizer
| slTuner
You have a modified version of this example. Do you want to open this example with your edits?