Compute operating point for nonlinear ARX model


[X,U] = findop(SYS,'steady',InputLevel,OutputLevel)
[X,U] = findop(SYS,SPEC)
[X,U] = findop(SYS,'snapshot',T,UIN,X0)
[X,U,REPORT] = findop(...)


[X,U] = findop(SYS,'steady',InputLevel,OutputLevel) computes operating-point state values, X, and input values, U, from steady-state specifications for an idnlarx model. For more information about the states of an idnlarx model, see Definition of idnlarx States.

[X,U] = findop(SYS,SPEC) computes the equilibrium operating point using the specifications in the object SPEC. Whereas the previous command only lets you specify the input and output level, SPEC provides additional specification for computing the steady-state operating point.

[X,U] = findop(SYS,'snapshot',T,UIN,X0) computes the operating point at a simulation snapshot of time T using the specified input and initial state values.

[X,U,REPORT] = findop(...) creates a structure, REPORT, containing information about the algorithm for computing an operating point.

findop(SYS,...,PVPairs) specifies property-value pairs for setting algorithm options.

Input Arguments

  • SYS: idnlarx (nonlinear ARX) model.

  • 'steady': Computes operating point using steady-state input and output levels.

  • 'snapshot': Computes operating point at simulating snapshot of model SYS at time T.

  • InputLevel: Steady-state input level for computing operating point. Use NaN when the value is unknown.

  • OutputLevel: Steady-state output level for computing the operating point. Use NaN when the value is unknown.

  • SPEC: Operating point specifications object. Use SPEC = OPERSPEC(SYS) to construct the SPEC object for model SYS. Then, configure SPEC options, such as signal bounds, known values, and initial guesses. See operspec(idnlarx) for more information.

  • T: Simulation snapshot time at which to compute the operating point.

  • UIN: Input for simulating the model. UIN is a double matrix or an iddata object. The number of input channels in UIN must match the number of SYS inputs.

  • X0: Initial states for model simulation.

    Default: Zero.

  • PVPairs: Property-value pairs for customizing the model Algorithm property fields, such as SearchMethod, MaxSize, and Tolerance.

Output Arguments

  • X: Operating point state values.

  • U: Operating point input value.

  • REPORT: Structure containing the following fields:

    • SearchMethod: String indicating the value of the SearchMethod property of MODEL.Algorithm.

    • WhyStop: String describing why the estimation stopped.

    • Iterations: Number of estimation iterations.

    • FinalCost: Final value of the sum of squared errors that the algorithm minimizes.

    • FirstOrderOptimality: Measure of the gradient of the search direction at the final parameter values when the search algorithm terminates. It is equal to the -norm of the gradient vector.

    • SignalLevels: Structure containing fields Input and Output, which are the input and output signal levels of the operating point.


In this example, you compute the operating point of an idnlarx model for a steady-state input level of 1.

  1. Estimate an idnlarx model from sample data iddata2.

    load iddata2;
    M = nlarx(z2,[4 3 2],'wavenet');
  2. Compute the steady-state operating point for an input level of 1.

    x0 = findop(M,'steady',1,NaN)

More About

expand all


findop computes the operating point from steady-state operating point specifications or at a simulation snapshot.

Computing the Operating Point from Steady-State Specifications

You specify to compute the steady-state operating point by calling findop in either of the following ways:

[X,U] = findop(SYS,'steady',InputLevel,OutputLevel)
[X,U] = findop(SYS,SPEC)

When you use the syntax [X,U] = findop(SYS,'steady',InputLevel,OutputLevel), the algorithm assumes the following operating-point specifications:

  • All finite input values are fixed values. Any NaN values specify an unknown input signal with the initial guess of 0.

  • All finite output values are initial guess values. Any NaN values specify an unknown output signal with the initial guess of 0.

  • The minimum and maximum bounds have default values (-/+ Inf) for both Input and Output properties in the specification object.

Using the syntax [X,U] = findop(SYS,SPEC), you can specify additional information, such as the minimum and maximum constraints on the input/output signals and whether certain inputs are known (fixed).

To compute the states, X, and the input, U, of the steady-state operating point, findop uses the algorithm specified in the SearchMethod property of MODEL.Algorithm to minimize the norm of the error e(t) = y(t)-f(x(t), u(t)), where f is the nonlinearity estimator, x(t) are the model states, and u(t) is the input.

The algorithm uses the following independent variables for minimization:

  • Unknown (unspecified) inputs

  • Output signals

Because the states of a nonlinear ARX (idnlarx) model are delayed samples of the input and output variables, the values of all the states are the constant values of the corresponding steady-state inputs and outputs. For more information about the definition of nonlinear ARX model states, see Definition of idnlarx States.

Computing the Operating Point at a Simulation Snapshot

When you use the syntax [X,U] = findop(SYS,'snapshot',T,UIN,X0), the algorithm simulates the model output until the snapshot time, T. At the snapshot time, the algorithm passes the input and output samples to the data2state command to map these values to the current state vector.

    Note:   For snapshot-based computations, findop does not perform numerical optimization.

Was this topic helpful?