When you compute an operating point based on input, output, or state specifications, the Simulink® Control Design™ software indicates whether the specifications were successfully met during the trimming process. If the trimming was unsuccessful, to determine the specifications that could not be met, you must validate your trimmed operating point against the original specifications.
When you compute an operating point using Steady State Manager, the software creates an operating point report object and highlights any operating point values that violate the constraints in the specification.
For example, consider the scdairframeTRIM
model. Open the
model and set the speed and incidence angle parameters.
sys = 'scdairframeTRIM';
open_system(sys)
alpha_ini = -0.21;
v_ini = 933;
To open the Steady State Manager, in the Simulink model window, in the Apps gallery, click Steady State Manager.
Create a trim specification for the model. On the Steady State tab, click Trim Specification.
In the spec1 document, specify which states are known and which are at steady state.
To trim the model, on the Specification tab, click
Trim
. The software generates an operating point report and,
in the corresponding report1 document, highlights any
constraint violations.
The optimization search could not find an operating point that satisfies the specifications. As highlighted in Steady State Manager, the three states specified to be at steady state are not. The highlighted state values violate the specified constraints by more than the tolerance value specified on the Report tab, in the Validation Tolerance field. For steady-state conditions, the dx Minimum and dx Maximum constraints are both zero; that is, the rate of change for each state is zero. In the trimmed operating point, the Actual dx values violate these constraints.
For this model, specifying the second position state to be at steady state overconstrains the system, making a steady-state solution impossible.
To remove this steady-state constraint, update the specification. In the spec1 document, in the Steady State column, clear the corresponding row.
On the Specification tab, click
Trim
. The software trims the model and opens a corresponding
reports tab.
You can also validate an existing operating point against a set of
specifications. For example, to check if the model initial conditions
satisfy the requirements in spec1
, first create an
operating point based on the model initial conditions. On the
Steady State tab, click Operating
Point. The software creates an operating point and opens a
corresponding op1 document.
To validate this operating point against the specifications in
spec1
, on the Operating Point
tab, under Validate Against, select
spec1
.
The software creates an operating point report and opens a corresponding report3 tab.
The model initial conditions do not satisfy the operating point specifications.
When you compute an operating point using Model Linearizer, the software does not highlight constraint violations. Instead, you must inspect the operating point report information for any violations.
If you trim the model from the preceding Steady State Manager example using the same specifications in the Model Linearizer, the software creates an operating point in the Data Browser, in the Linear Analysis Workspace.
To check whether the operating point satisfies the specified constraints, in the Data Browser, in the Linear Analysis Workspace, double-click the operating point.
In the Edit dialog box, for the three steady-state specifications, the trimmed state values in the Actual dx column violate the zero Desired dx values.
When you compute an operating point at the command line, the findop
function outputs an operating point report to the Command Window by default. You can also return the operating point report as an output argument. For more information, see findop
. To validate your operating point against the specifications, you must check whether the operating point values satisfy the constraints.
For example, open the scdairframeTRIM
model and set the model parameters.
sys = 'scdairframeTRIM';
open_system(sys)
alpha_ini = -0.21;
v_ini = 933;
Create an operating point specification object, and specify which states are known and which are at steady state.
opspec = operspec(sys); opspec.States(1).Known = [1;1]; opspec.States(1).SteadyState = [0;1]; opspec.States(3).Known = [1;1]; opspec.States(3).SteadyState = [0;1]; opspec.States(2).Known = 1; opspec.States(2).SteadyState = 0; opspec.States(4).Known = 0; opspec.States(4).SteadyState = 1;
Trim the model.
op = findop(sys,opspec);
Operating point search report: --------------------------------- Operating point search report for the Model scdairframeTRIM. (Time-Varying Components Evaluated at time t=0) Could not find a solution that satisfies all constraints. Relax the constraints to find a feasible solution. States: ---------- (1.) scdairframeTRIM/Airframe Model/EOM/ Equations of Motion (Body Axes)/Position x: 0 dx: 913 x: -3.05e+03 dx: -194 (0) (2.) scdairframeTRIM/Airframe Model/EOM/ Equations of Motion (Body Axes)/Theta x: 0 dx: 0 (3.) scdairframeTRIM/Airframe Model/EOM/ Equations of Motion (Body Axes)/U,w x: 913 dx: 25.3 x: -194 dx: 273 (0) (4.) scdairframeTRIM/Airframe Model/EOM/ Equations of Motion (Body Axes)/q x: 0 dx: 31.2 (0) Inputs: ---------- (1.) scdairframeTRIM/delta u: 0 [-Inf Inf] Outputs: ---------- (1.) scdairframeTRIM/alpha y: -0.21 [-Inf Inf] (2.) scdairframeTRIM/V y: 933 [-Inf Inf] (3.) scdairframeTRIM/q y: 0 [-Inf Inf] (4.) scdairframeTRIM/az y: 263 [-Inf Inf] (5.) scdairframeTRIM/gamma y: 0.21 [-Inf Inf]
In the operating point search report, the dx
values for the specified steady states have zero constraints, as indicated by the 0
value in parentheses. The optimization search did not find a steady-state operating point, since all three of these states violate the constraints.