Main Content

sdo.requirements.PhasePlaneEllipse Class

Namespace: sdo.requirements
Superclasses:

Impose elliptic bound on phase plane trajectory of two signals

Description

Use the sdo.requirements.PhasePlaneEllipse object to impose an elliptic bound on the phase plane trajectory of two signals in a Simulink® model. The phase plane trajectory is a plot of the two signals against each other. You specify the radii, center, and rotation of the bounding ellipse. You also specify whether you require the trajectory of the two signals to lie inside or outside the ellipse.

The following image shows the bounding ellipse and an example of the phase plane trajectory of two signals.

The X-Y plane is the phase plane defined by the two signals. rx and ry are the radii of the bounding ellipse along the x and y axes, and θR is the rotation of the ellipse about the center. The ellipse center is at (x0,y0). In the image, the phase plane trajectory of the signals lies within the bounding ellipse for all time-points t1 to tn.

You can use the object as an input to your cost function, and use the evalRequirement command in the cost function to evaluate whether your test signals satisfy the specified requirement. You can then use the cost function and sdo.optimize to perform parameter estimation or response optimization, subject to the satisfaction of the specified requirement. If you are performing sensitivity analysis, after you generate parameter samples, you can use the cost function and sdo.evaluate to evaluate the requirement for each generated sample.

Construction

ellipse_req = sdo.requirements.PhasePlaneEllipse creates an sdo.requirements.PhasePlaneEllipse requirement object and assigns default values to its properties. Use dot notation to customize the properties.

Use the evalRequirement command to evaluate whether test signals satisfy the specified requirement.

ellipse_req = sdo.requirements.PhasePlaneEllipse(Name=Value) specifies one or more properties using name-value arguments. For example, ellipse_req = sdo.requirements.PhasePlaneEllipse(Type=">=") creates an sdo.requirements.PhasePlaneEllipse object and specifies the Type property as an outer bound.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes. For example, ellipse_req = sdo.requirements.PhasePlaneEllipse("Type",">=") creates an sdo.requirements.PhasePlaneEllipse object and specifies the Type property as an outer bound.

Properties

expand all

Location of center of bounding ellipse, specified as a 1-by-2 array with real finite values. The elements of the array specify x0 and y0, the x and y coordinates of the center location. To completely characterize the ellipse, also specify the Radius and Rotation properties of the ellipse. To see the equation of the ellipse, see Description.

Example: [1.5,-1]

Data Types: double

Requirement description, specified as a character vector.

Example: 'Requirement 1 for myModel.'

Data Types: char

Method for requirement evaluation using the evalRequirement command, specified as one of the following:

  • 'Maximum' — The evalRequirement command computes the signed minimum distance of each point in the phase plane trajectory to the bounding ellipse and returns a scalar that is the maximum of these distances.

  • 'Residuals' — The evalRequirement command returns a column vector with the signed minimum distance of each point in the phase plane trajectory to the bounding ellipse. Use this method instead of 'Maximum' to see the distance of all of the trajectory points to the phase plane ellipse.

Data Types: char

Name of requirement, specified as a character vector.

Example: 'Requirement1'

Data Types: char

Radii of ellipse, specified as a 1-by-2 array with real positive finite values. The elements of the array specify rx and ry, the x-axis and y-axis radii, before any rotation about the ellipse center. To completely characterize the ellipse, also specify the Center and Rotation properties of the ellipse. To see the equation of the ellipse, see Description.

Data Types: double

Angle of rotation θR of ellipse about center in radians, specified as a real finite scalar. The angle of rotation is specified from the x-axis. To completely characterize the ellipse, also specify the Center and Radius properties of the ellipse. To see the equation of the ellipse, see Description.

Example: 'Requirement 1 for myModel.'

Data Types: double

Type of bound, specified as one of the following:

  • '<=' — Ellipse is an upper bound. The phase plane trajectory of the two signals should lie inside or on the ellipse.

  • '>=' — Ellipse is a lower bound. The phase plane trajectory of the two signals should lie outside or on the ellipse.

Methods

copyCopy design requirement
getGet design requirement property values
setSet design requirement property values
evalRequirementEvaluate design requirement

Copy Semantics

Handle. To learn how handle classes affect copy operations, see Copying Objects.

Examples

collapse all

Create a requirement object with default properties.

Requirement = sdo.requirements.PhasePlaneEllipse;

The requirement object specifies the bounding ellipse as an upper bound with center located at [0,0], and no rotation. The x-axis radius of the ellipse is 1 and the y-axis radius is 0.5.

Specify the location of the center of the ellipse.

Requirement.Center = [1,0]
Requirement = 
  PhasePlaneEllipse with properties:

         Radius: [1 0.5000]
         Center: [1 0]
       Rotation: 0
           Type: '<='
         Method: 'Maximum'
           Name: ''
    Description: ''

You can now use the evalRequirement command to evaluate whether test signals satisfy the requirement.

Create a requirement object, and specify the bounding ellipse as a lower bound. Use default values for the location of the center, radii, and rotation of the bounding ellipse.

Requirement = sdo.requirements.PhasePlaneEllipse('Type','>=');

The requirement object specifies that the phase plane trajectory of test signals should lie outside the ellipse.

Version History

Introduced in R2016b