Quantcast

Documentation Center

  • Trial Software
  • Product Updates

addOpening

Add signal to list of openings for slLinearizer or slTuner interface

Syntax

  • addOpening(s,blk,port_num) example
  • addOpening(s,blk,port_num,bus_elem_name) example

Description

example

addOpening(s,pt) adds the specified point (signal) to the list of permanent openings for the slLinearizer or slTuner interface, s.

Use permanent openings to isolate a specific model component for the purposes of linearization and tuning. Suppose 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.

example

addOpening(s,blk,port_num) adds the signal at the specified output port of the specified block as a permanent opening for s.

example

addOpening(s,blk,port_num,bus_elem_name) adds the specified bus element as a permanent opening.

Examples

expand all

Add Opening Using Signal Name

Suppose you want to analyze only the inner-loop dynamics of the scdcascade model. Add the outer-loop feedback signal, y1m, as a permanent opening of an slLinearizer interface.

Open the scdcascade model.

mdl = 'scdcascade';
open_system(mdl);

Create an slLinearizer interface for the model.

sllin = slLinearizer('scdcascade');

Add the y1m signal as a permanent opening of sllin.

addOpening(sllin,'y1m');

Add Opening Using Block Path and Port Number

Suppose you want to analyze only the inner-loop dynamics of the scdcascade model. Add the outer-loop feedback signal, y1m, as a permanent opening of an slLinearizer interface.

Open the scdcascade model.

mdl = 'scdcascade';
open_system(mdl);

Create an slLinearizer interface for the model.

sllin = slLinearizer('scdcascade');

Add the y1m signal as a permanent opening of sllin.

addOpening(sllin,'scdcascade/Sum',1)

The y1m signal originates at the first (and only) port of the scdcascade/Sum block.

Add Bus Elements as Openings

Open the scdbusselection model.

mdl = 'scdbusselection';
open_system(mdl);

Create an slLinearizer interface for the model.

sllin = slLinearizer(mdl);

The COUNTERBUS signal of scdbusselection contains multiple bus elements. Add the upper_saturation_limit and lower_saturation_limit bus elements as openings to sllin.

blk = {'scdbusselection/COUNTERBUSCreator','scdbusselection/COUNTERBUSCreator'};
port_num = [1 1];
bus_elem_name = {'upper_saturation_limit','lower_saturation_limit'};

addOpening(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.

Input Arguments

expand all

s — Interface to Simulink® modelslLinearizer interface | slTuner interface

Interface to a Simulink model, specified as either an slLinearizer interface or an slTuner interface.

pt — Openingstring | cell array of strings | vector of linearization I/O objects

Opening to add to the list of permanent openings for s, specified as:

  • 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 strings — Specifies multiple signal identifiers. For example, pt = {'Motor/PID','Engine Model/1'}.

  • 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. However, the software ignores the I/O types and adds them both to the list of permanent openings for s.

blk — Block path identifying block where opening originatesstring (default) | cell array of strings

Block path identifying the block where the opening originates, specified as a string or cell array of strings.

Dimensions of blk:

  • For a single opening, specify blk as a string.

    For example, blk = 'scdcascade/C1'.

  • For multiple openings, specify blk as a cell array of strings. blk, port_num, and bus_elem_name (if specified) must have the same size.

    For example, blk = {'scdcascade/C1','scdcascade/Sum'}.

port_num — Port where opening originatespositive integer (default) | vector of positive integers

Port where the opening originates, specified as a positive integer or a vector of positive integers.

Dimensions of port_num:

  • For a single opening, specify port_num as a positive integer.

    For example, port_num = 1.

  • For multiple openings, specify port_num as a vector of positive integers. blk, port_num, and bus_elem_name (if specified) must have the same size.

    For example, port_num = [1 1].

bus_elem_name — Bus element namestring (default) | cell array of strings

Bus element name, specified as a string or cell array of strings.

Dimensions of bus_elem_name:

  • For a single opening, specify bus_elem_name as a string.

    For example, bus_elem_name = 'upper_saturation_limit'.

  • For multiple openings, specify bus_elem_name as a cell array of strings. blk, port_num, and bus_elem_name (if specified) must have the same size.

    For example, bus_elem_name = {'upper_saturation_limit','lower_saturation_limit'}.

More About

expand all

Permanent Openings

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 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 use getOpenings to programmatically obtain a list of all the permanent openings.

See Also

| | | | | |

Was this topic helpful?