Main Content

sdo.requirements.OpenLoopGainPhase

Nichols response bound

Description

Specify piecewise-linear bounds on the Nichols (gain-phase) response of a linear system. You can then optimize the model response to meet these bounds using sdo.optimize.

You can specify an upper or lower bound, include multiple linear edges, and extend the bounds to + or –inf.

You must have Simulink® Control Design™ software to specify open-loop gain and phase requirements.

Creation

Description

olgainphase_req = sdo.requirements.OpenLoopGainPhase creates a sdo.requirements.OpenLoopGainPhase object and assigns default values to its properties.

example

olgainphase_req = sdo.requirements.OpenLoopGainPhase(Name,Value) specifies one or more properties using name-value arguments. For example, olgainphase_req = sdo.requirements.OpenLoopGainPhase(PhaseUnits="rad") creates an sdo.requirements.OpenLoopGainPhase object and specifies the PhaseUnits property as radians.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes. For example, olgainphase_req = sdo.requirements.OpenLoopGainPhase("PhaseUnits","rad") creates an sdo.requirements.OpenLoopGainPhase object and specifies the PhaseUnits property as radians.

Properties

expand all

Gain values for a piecewise linear bound, specified as a matrix indicating the start and end values in decibels for all the edges in the piecewise-linear bound. The property must be an n-by-2 matrix of finite doubles, where each row specifies the start and end gain values of an edge. The number of rows must match the number of rows of the BoundPhases property.

Use set to set this and the BoundPhases properties simultaneously.

Phase values for a piecewise-linear bound, specified as a matrix indicating the start and end values in degrees for all the edges in the piecewise-linear bound. The property must be an n-by-2 matrix of finite doubles, where each row specifies the start and end phase values of an edge. The number of rows must match the number of rows of the BoundGains property.

Use set to set this and the BoundGains properties simultaneously.

Requirement description, specified as a character vector.

Example: 'Requirement on signal 1'

Magnitude units of the requirement, specified as either "db" (decibels) or "abs" (absolute units). The OpenLoopGainPhase object stores the value as a character vector.

Requirement name, specified as a character vector.

Extend bound in a negative or positive frequency direction, specified as a 1-by-2 logical vector of true or false. If true, the first or last edge of the piecewise linear bound is extended in the negative or positive direction, respectively. Extended bounds go to –inf and +inf, respectively.

Use this property to bound signals that extend beyond the frequency values specified by the BoundFrequencies property.

Phase units of the requirement, specified as either "deg" (degrees) or "rad" (radians). The OpenLoopGainPhase object stores the value as a character vector.

Gain and phase requirement type, specified as one of the following and stored as a character vector:

  • ">=" — Lower bound

  • "<=" — Upper bound

Object Functions

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

Examples

collapse all

Construct an open-loop gain and phase object, and specify gain and phase requirements.

r = sdo.requirements.OpenLoopGainPhase;
set(r,'BoundPhases',[-120 -120; -120 -150; -150 -180],...
      'BoundGains',[20 0; 0 -20; -20 -20]);

Alternatively, you can specify the gain and phase requirements during construction.

r = sdo.requirements.OpenLoopGainPhase('BoundPhases',...
		[-120 -120; -120 -150; -150 -180],'BoundGains',...
		[20 0; 0 -20; -20 -20]);

Alternatives

Use getbounds to get the bounds specified in a Check Nichols Characteristics (Simulink Control Design) block.

Version History

Introduced in R2010b