Main Content

OpenLoopEditor Properties

Access open-loop editor properties

Since R2025a

OpenLoopEditor properties control the appearance and behavior of a standalone open-loop editor created using the openloopeditor function. By changing property values, you can modify certain aspects of the editor.

ole = openloopeditor(parent,Plant=G);
ole.View.FrequencyUnit = "Hz";
ole.Compensator = C;

Plant

expand all

Fixed plant for which the compensator is being designed, specified as a SISO dynamic system model or an array of such systems.

Nominal plant model index, specified as a positive integer less than or equal to the number of plant models in Plant.

The open-loop editor plots the response of the nominal plant model with a thicker, darker line than the responses of the other models in Plant.

If Plant is a uss model, the editor plot shows responses for random samples from the model. Use NominalPlantIndex to select different random samples as the nominal model.

Compensator

expand all

Compensator, specified as a SISO dynamic system model and stored as a zpk object. You can modify the compensator gain, poles, and zeros either interactively using the open-loop editor or programmatically using

Compensator changed callback function, specified as one of these values.

  • Function handle.

  • Cell array in which the first element is a function handle. Subsequent elements in the cell array are input arguments to pass to the callback function.

  • Character vector containing a valid MATLAB® expression (not recommended). MATLAB evaluates this expression in the base workspace.

Use this callback function to perform calculations or update related plots or UI elements when the compensator value is changed such as after drag operations, after editor UI interactions, and after edits in the Compensator Editor.

The open-loop editor passes two arguments to the callback function. The first argument is the OpenLoopEditor object that generated the compensator-changed event. The second argument is a CompensatorChangedData object that contains event information.

This table describes the properties of the CompensatorChangedData object.

PropertyDescription
CompensatorNew compensator value, specified as a zpk object.
PreviousCompensator

Previous compensator value, specified as a zpk object.

SourceOpenLoopEditor object that called the callback function.
EventName'CompensatorChanged'

Compensator changing callback function, specified as one of these values.

  • Function handle.

  • Cell array in which the first element is a function handle. Subsequent elements in the cell array are input arguments to pass to the callback function.

  • Character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

Use this callback function to perform calculations or update related plots or UI elements when the compensator value is changing during a drag operation.

The open-loop editor passes two arguments to the callback function. The first argument is the OpenLoopEditor object that generated the compensator-changed event. The second argument is a CompensatorChangingData object that contains event information.

This table describes the properties of the CompensatorChangingData object.

PropertyDescription
CompensatorNew compensator value, specified as a zpk object.
SourceOpenLoopEditor object that called the callback function.
EventName'CompensatorChanging'

Editor View

expand all

Editor view type, specified as one of these values:

  • "bode" — Bode editor view

  • "nichols" — Nichols editor view

  • "rlocus" — Root locus editor view

Editor view configuration parameters, such as units, axis labels, and axis limits, specified as one of these objects:

To configure the editor appearance, modify the parameters of View using dot notation.

Interactivity

expand all

Editor visibility, specified as one of these logical on/off values:

  • "on", 1, or true — Display the editor.

  • "off", 0, or false — Hide the editor without deleting it. You can still access the properties of the editor when it is not visible.

The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.

Position

expand all

Editor size and location, excluding the margins for decorations such as axis labels and tick marks. Specify this property as a vector of form [left bottom width height].

Position units, specified as a value from the following table. To change the position of the editor in specific units, set the Units property before specifying the Position property. If you specify the Units and Position properties in a single command (using name-value pairs), be sure to specify Units before Position.

UnitsDescription
'normalized'Normalized with respect to the parent container, which is typically the figure, panel, or tab. The lower left corner of the container maps to (0,0), and the upper right corner maps to (1,1).
'inches'Inches
'centimeters'Centimeters
'characters'

Based on the default font of the graphics root object:

  • Character width = width of letter x.

  • Character height = distance between the baselines of two lines of text.

'points'Typography points. One point equals 1/72 inch.
'pixels'

On Windows® and Macintosh systems, the size of a pixel is 1/96th of an inch. This size is independent of your system resolution.

On Linux® systems, the size of a pixel is determined by your system resolution.

Layout options, specified as a GridLayoutOptions object. If the editor is not the child of a gridded layout, (for example it is a child of a figure or panel, then this property is empty and has no effect. Otherwise, you can position the position of the editor within the layout by configuring the layout options.

This code places editor object ole into row 2 of a gridded layout and makes the editor span columns 3 and 4.

ole.Layout.Row = 2;
ole.Layout.Column = [3 4];

Callbacks

expand all

Size change callback, specified as one of these values:

  • A function handle.

  • A cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

  • A character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

The SizeChangedFcn callback executes when:

  • The component becomes visible for the first time.

  • The component is visible while its size changes.

  • This component becomes visible for the first time after its size changes. This situation occurs when the size changes while the component is invisible, and then it becomes visible later.

Object creation function, specified as one of these values:

  • Function handle.

  • Cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

  • Character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

For more information about specifying a callback as a function handle, cell array, or character vector, see Callbacks in App Designer.

This property specifies a callback function to execute when MATLAB creates the object. MATLAB initializes all property values before executing the CreateFcn callback. If you do not specify the CreateFcn property, then MATLAB executes a default creation function.

Setting the CreateFcn property on an existing component has no effect.

If you specify this property as a function handle or cell array, you can access the object that is being created using the first argument of the callback function. Otherwise, use the gcbo function to access the object.

Object deletion function, specified as one of these values:

  • Function handle.

  • Cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

  • Character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

For more information about specifying a callback as a function handle, cell array, or character vector, see Callbacks in App Designer.

This property specifies a callback function to execute when MATLAB deletes the object. MATLAB executes the DeleteFcn callback before destroying the properties of the object. If you do not specify the DeleteFcn property, then MATLAB executes a default deletion function.

If you specify this property as a function handle or cell array, you can access the object that is being deleted using the first argument of the callback function. Otherwise, use the gcbo function to access the object.

Callback Execution Control

expand all

Callback interruption, specified as 'on' or 'off', or as numeric or logical 1 (true) or 0 (false). A value of 'on' is equivalent to true, and 'off' is equivalent to false. Thus, you can use the value of this property as a logical value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.

This property determines if a running callback can be interrupted. There are two callback states to consider:

  • The running callback is the currently executing callback.

  • The interrupting callback is a callback that tries to interrupt the running callback.

Whenever MATLAB invokes a callback, that callback attempts to interrupt the running callback (if one exists). The Interruptible property of the object owning the running callback determines if interruption is allowed.

  • A value of 'on' allows other callbacks to interrupt the object's callbacks. The interruption occurs at the next point where MATLAB processes the queue, such as when there is a drawnow, figure, uifigure, getframe, waitfor, or pause command.

    • If the running callback contains one of those commands, then MATLAB stops the execution of the callback at that point and executes the interrupting callback. MATLAB resumes executing the running callback when the interrupting callback completes.

    • If the running callback does not contain one of those commands, then MATLAB finishes executing the callback without interruption.

  • A value of 'off' blocks all interruption attempts. The BusyAction property of the object owning the interrupting callback determines if the interrupting callback is discarded or put into a queue.

Note

Callback interruption and execution behave differently in these situations:

  • If the interrupting callback is a DeleteFcn, CloseRequestFcn or SizeChangedFcn callback, then the interruption occurs regardless of the Interruptible property value.

  • If the running callback is currently executing the waitfor function, then the interruption occurs regardless of the Interruptible property value.

  • Timer objects execute according to schedule regardless of the Interruptible property value.

When an interruption occurs, MATLAB does not save the state of properties or the display. For example, the object returned by the gca or gcf command might change when another callback executes.

Callback queuing, specified as 'queue' or 'cancel'. The BusyAction property determines how MATLAB handles the execution of interrupting callbacks. There are two callback states to consider:

  • The running callback is the currently executing callback.

  • The interrupting callback is a callback that tries to interrupt the running callback.

Whenever MATLAB invokes a callback, that callback attempts to interrupt a running callback. The Interruptible property of the object owning the running callback determines if interruption is permitted. If interruption is not permitted, then the BusyAction property of the object owning the interrupting callback determines if it is discarded or put in the queue. These are possible values of the BusyAction property:

  • 'queue' — Puts the interrupting callback in a queue to be processed after the running callback finishes execution.

  • 'cancel' — Does not execute the interrupting callback.

Deletion status, returned as an on/off logical value of type matlab.lang.OnOffSwitchState.

MATLAB sets the BeingDeleted property to 'on' when the DeleteFcn callback begins execution. The BeingDeleted property remains set to 'on' until the component object no longer exists.

Check the value of the BeingDeleted property to verify that the object is not about to be deleted before querying or modifying it.

Parent/Child

expand all

Parent graphics container of the component, specified as a Figure, Panel, Tab, or GridLayout object.

UI component children, returned as an empty GraphicsPlaceholder array. Custom UI components have no children. Setting this property has no effect.

Visibility of the editor object handle in the list of children for its parent, specified as one of these values:

  • 'on' — Editor object handle is always visible.

  • 'off' — Editor object handle is invisible at all times. This option is useful for preventing unintended changes to the editor by another function. To temporarily hide the handle during the execution of that function, set the HandleVisibility to 'off'.

  • 'callback' — Editor object handle is visible from within callbacks or functions invoked by callbacks, but not from within functions invoked from the command line. This option blocks access to the object in the Command Window, but it allows callback functions to access it.

Identifiers

expand all

This property is read-only.

Type of UI component object, returned as 'openloopeditor'

Object identifier, specified as a character vector or string scalar. You can specify a unique Tag value to serve as an identifier for an object. When you need access to the object elsewhere in your code, you can use the findobj function to search for the object based on the Tag value.

User data, specified as any MATLAB array. For example, you can specify a scalar, vector, matrix, cell array, character array, table, or structure. Use this property to store arbitrary data on an object.

Version History

Introduced in R2025a