# State-Space Models

*State-space models* are models that use state variables to describe a system by a set of first-order differential or difference equations, rather than by one or more *n*th-order differential or difference equations. If the set of first-order differential equation is linear in the state and input variables, the model is referred to as a *linear* state space model.

**Note**

Generally, the System Identification Toolbox™ documentation refers to linear state space models simply as state-space models. You can also identify nonlinear state space models using grey-box and neural state-space objects. For more information, see Available Nonlinear Models.

The linear state-space model structure is a good choice for quick estimation because it requires you to specify only one parameter, the *model order* *n*. The model order is an integer equal to the dimension of *x*(*t*) and relates to, but is not necessarily equal to, the number of delayed inputs and outputs used in the corresponding linear difference equation. State variables *x*(*t*) can be reconstructed from the measured input/output data, but are not themselves measured during an experiment.

Defining a parameterized state-space model in continuous time is often easier than in discrete time because physical laws are most often described in terms of differential equations. In continuous time, the linear state-space description has the following form:

$$\begin{array}{l}\dot{x}(t)=Fx(t)+Gu(t)+\tilde{K}w(t)\\ y(t)=Hx(t)+Du(t)+w(t)\\ x(0)=x0\end{array}$$

The matrices * F*,

*G*,

*H*, and

*D*contain elements with physical significance—for example, material constants.

*K*contains the disturbance matrix.

*x0*specifies the initial states.

You can estimate a continuous-time state-space model using both time-domain and frequency-domain data.

The discrete-time linear state-space model structure is often written in the *innovations form*, which describes noise:

$$\begin{array}{l}x(kT+T)=Ax(kT)+Bu(kT)+Ke(kT)\\ y(kT)=Cx(kT)+Du(kT)+e(kT)\\ x(0)=x0\end{array}$$

Here, *T* is the sample time, *u*(*kT*) is the input at the time instant *kT*, and *y*(*kT*) is the output at the time instant *kT*.

You cannot estimate a discrete-time state-space model using continuous-time frequency-domain data.

For more information, see What Are State-Space Models?

## Apps

System Identification | Identify models of dynamic systems from measured data |

## Live Editor Tasks

Estimate State-Space Model | Estimate state-space model using time or frequency data in the Live Editor |

## Functions

## Topics

### State-Space Model Basics

**What Are State-Space Models?**

*State-space models*are models that use state variables to describe a system by a set of first-order differential or difference equations, rather than by one or more*n*th-order differential or difference equations.**State-Space Model Estimation Methods**

Choose between noniterative subspace methods, iterative methods that use prediction error minimization algorithm, and noniterative methods.**Estimate State-Space Model With Order Selection**

Select a model order for a state-space model structure in the app and at the command line.**State-Space Realizations**

A state-space model can be expressed in an infinite number of realizations. Common forms, sometimes called canonical forms, include modal, companion, observable, and controllable forms.**Data Supported by State-Space Models**

You can use time-domain and frequency-domain data that is real or complex and has single or multiple outputs.

### Estimate State-Space Models

**Estimate State-Space Models in System Identification App**

Use the app to specify model configuration options and estimation options for model estimation.**Estimate State-Space Models at the Command Line**

Perform black-box or structured estimation.**Estimate State-Space Models with Canonical Parameterization**

*Canonical parameterization*represents a state-space system in a reduced parameter form where many elements of*A*,*B*and*C*matrices are fixed to zeros and ones.**Estimate State-Space Equivalent of ARMAX and OE Models**

This example shows how to estimate ARMAX and OE-form models using the state-space estimation approach.**Estimate State-Space Models with Free-Parameterization**

*Free Parameterization*is the default; the estimation routines adjust all the parameters of the state-space matrices.**Use State-Space Estimation to Reduce Model Order**

Reduce the order of a Simulink^{®}model by linearizing the model and estimating a lower order model that retains model dynamics.**System Identification Using Eigensystem Realization Algorithm (ERA)**

Estimate state-space model from impulse response data using Eigensystem Realization Algorithm (ERA).

### Structured Estimation, Innovations Form

**Estimate State-Space Models with Structured Parameterization**

*Structured parameterization*lets you exclude specific parameters from estimation by setting these parameters to specific values.**Identifying State-Space Models with Separate Process and Measurement Noise Descriptions**

An identified linear model is used to simulate and predict system outputs for given input and noise signals.

### Set State-Space model Options

**Supported State-Space Parameterizations**

System Identification Toolbox software supports various parameterization combinations that determine which parameters are estimated and which parameters remain fixed to specific values.**Specifying Initial States for Iterative Estimation Algorithms**

When you estimate state-space models, you can specify how the algorithm treats initial states.