idgrey
Linear ODE (grey-box model) with identifiable parameters
Description
An idgrey model represents a linear system as a continuous-time
or discrete-time state-space model with identifiable (estimable) coefficients. Use an
idgrey model when you want to capture complex relationships, constraints,
and prior knowledge that structured state-space (idss) models cannot encapsulate. To create an idgrey model, you
must know explicitly the system of equations (ordinary differential or difference equations)
that govern the system dynamics.
An idgrey model allows you to incorporate conditions such as the following:
Parameter constraints that the
idss/ssestframework cannot handle, such as linear or equality constraints on parameters, or prior knowledge about the variance of the states, inputs, outputs, or any combination of the three, that you want to include as known informationA linear model of an arbitrary form, such as a transfer function or polynomial model, with parameter constraints such as a known DC gain, limits on pole locations, a shared denominator across multiple inputs, or nonzero input/output delays in MIMO models
Differential or difference equations with known and unknown coefficients
In these and similar cases, you can create an ODE (ordinary differential or difference equation) function in MATLAB® that implements a state-space realization of the linear model and that specifies constraints and prior knowledge.
A simple example of creating an ODE for idgrey uses the following
equations to describe motor dynamics.
In these equations, τ is the single estimable parameter and G represents the known static gain.
These equations fit the state-space form:
For this case, both the A and B matrices contain the
estimable parameter τ, and B also includes the known
gain G. You can write a MATLAB function that accepts τ and G as input
arguments and returns the state-space matrices A, B, and
C as its output arguments. For example, you can code a function
motorFcn as
follows.
function [A,B,C] = motorFcn(tau,G) % ODE function for computing state-space matrices as functions of parameters A = [0 1; 0 -1/tau]; B = [0; G/tau]; C = eye(2);
After creating a function such as motorFcn, create an
idgrey model by specifying that function as the value of its
odefun input argument, as the following command
shows.
sys = idgrey(@motorFcn,tau0,'c',G)tau0 is the initial guess for the parameter τ and
G specifies the fixed constant. Additionally, 'c'
indicates to idgrey that odefun returns matrices
corresponding to a continuous-time system. For more information, see
function_type. For an executable example that creates an idgrey model from these motor
dynamics equations, see Create Grey-Box Model with Estimable Parameters.
More generally, the following equations describe state-space forms for continuous-time and discrete-time systems.
A state-space model of a system with input vector u, output vector y, and disturbance e, takes the following form in continuous time:
In discrete time, the state-space model takes the form:
Your MATLAB ODE function incorporates the user-defined parameters into the
A, B, C, and D
matrices that the function returns. The associated idgrey model references
this function, and the estimation functions greyest and pem use these matrix definitions when estimating
the parameters.
For more information on creating an ODE function for idgrey, see
Estimate Linear Grey-Box Models.
Creation
Create an idgrey model using the idgrey command. To
do so, write a MATLAB function that returns the A, B,
C, and D matrices for given values of the estimable
parameters and sample time. You can pass additional input arguments, such as a time constant
or gain, that are not parameters but that the ODE uses in the expressions for the output
arguments.
In addition to the A, B, C, and
D matrices, your MATLAB function can return the K matrix if you want the
K values to be functions of your input parameters. Your function can also
return the initial state vector x0. However, the alternative and
recommended approach for parameterizing x0 is to use the
InitialState estimation option of greyestOptions.
Note that you can write your ODE function to represent either the continuous time dynamics
or the discrete-time dynamics regardless of the nature of the idgrey model
itself. For example, you can specify a discrete-time idgrey model
(sys.Ts>0) that uses a continuous-time parameterization of the ODE
function. Similarly, you can specify a discrete-time parameterization of the ODE function and
use it with a continuous-time idgrey model (sys.Ts=0). The
idgrey input argument fcn_type informs
the idgrey model what type of parameterization the ODE function uses. For more information,
see Estimate Linear Grey-Box Models.
Use the estimating functions pem or greyest to obtain estimated values for the unknown parameters of an
idgrey model. Unlike other estimation functions such as ssest, which can create a new model object, greyest can estimate parameters only for an idgrey model that
already exists and is specified as an input argument. You can access estimated parameters
using sys.Structures.Parameters, where sys is an
idgrey model.
You can convert an idgrey model into other dynamic systems, such as
idpoly, idss, tf, or
ss. You cannot
convert a dynamic system into an idgrey model.
Syntax
Description
creates a linear grey-box model sys = idgrey(odefun,parameters,fcn_type)sys with identifiable parameters.
odefun specifies the user-defined function that relates the model
parameters parameters to their state-space representation.
fcn_type specifies whether the model is parameterized in
continuous-time, discrete-time, or both.
specifies additional arguments sys = idgrey(odefun,parameters,fcn_type,extra_args)extra_args that
odefun requires.
specifies the sample time sys = idgrey(odefun,parameters,fcn_type,extra_args,Ts)Ts.
incorporates additional options specified by one or more name-value arguments.sys = idgrey(odefun,parameters,fcn_type,extra_args,Ts,Name,Value)
Input Arguments
Properties
Object Functions
For information about functions that are applicable to an idgrey object,
see Linear Grey-Box Models.
Examples
Version History
Introduced before R2006a