State space representation in MATLAB is a mathematical model of a physical system represented in terms of state variables and their relationships, allowing for analysis and control design.
Here’s a simple example of creating a state-space model in MATLAB:
% Define system matrices
A = [0 1; -2 -3]; % State matrix
B = [0; 1]; % Input matrix
C = [1 0]; % Output matrix
D = 0; % Direct transmission matrix
% Create state-space system
sys = ss(A, B, C, D);
% Display the state-space system
disp(sys);
Understanding State Space Representation
What is State Space?
State space is a mathematical representation used to model physical systems. It emphasizes the system's state variables, which encapsulate all the information necessary to describe the system's behavior at any given time. In the state space framework:
- State Variables: These are variables that describe the status of the system, essentially capturing the conditions necessary for the future behavior of the system.
- Input: This is the external influence or control applied to the system.
- Output: This represents the response of the system based on the state and input.
One of the key advantages of state space representation is its capability to handle complex, multi-input multi-output (MIMO) systems, allowing for a more comprehensive analysis as compared to traditional transfer function representations.
Advantages of State Space Representation
State space representation offers several advantages over other forms of system representation:
- Handling Non-Linear Systems: While traditional methods often struggle with non-linearities, state space provides a unified framework for such systems.
- Ease of Implementation: Designing state feedback controllers is more straightforward in state space since the system dynamics and output equations are explicitly given.
- Time Domain Analysis: State space allows for comprehensive analysis in the time domain, offering insights into the behavior over time rather than just at a steady state.

Fundamentals of State Space Models
Components of a State Space Model
A typical state space model consists of four matrices:
-
State Matrix (A): This matrix defines the relationship among state variables and their dynamics. It dictates how the states evolve over time based on current states and inputs.
-
Input Matrix (B): This matrix determines how the input influences the state variables. It connects the input signal to the system's dynamics.
-
Output Matrix (C): This matrix links the state variables to the output, defining what part of the state contributes to the output measurement.
-
Feedthrough (D) Matrix: This matrix represents direct influence from the input to the output, though often set to zero in many systems as they do not exhibit direct input-output relationships.
Formulating State Space Models
The general form of a state space model is given by the equations:
\[ \dot{x} = Ax + Bu \]
\[ y = Cx + Du \]
Where:
- \( x \) is the state vector,
- \( u \) is the input vector,
- \( y \) is the output vector.
Example: Deriving State Space Model from a Mechanical System
Consider a simple mass-spring system where a mass \( m \) is connected to a spring with spring constant \( k \) and damping coefficient \( b \). The governing equations can be derived based on Newton's second law and Hooke's law, resulting in a state space model comprised of the matrices \( A \), \( B \), \( C \), and \( D \).

Implementing State Space in MATLAB
Basic Syntax of the State Space Function
In MATLAB, the `ss` function is used to create state space models. The syntax is simple:
sys = ss(A, B, C, D)
This command initializes a state space system defined by the matrices \( A \), \( B \), \( C \), and \( D \).
Creating a State Space Model in MATLAB
Example: Simple Mass-Spring System
Let's create a state space representation of a mass-spring-damper system. The first step is to define the matrices:
m = 1; % mass (kg)
k = 10; % spring constant (N/m)
b = 2; % damping coefficient (Ns/m)
A = [0 1; -k/m -b/m]; % Define A matrix
B = [0; 1/m]; % Define B matrix
C = [1 0]; % Define C matrix
D = 0; % Define D matrix
sys = ss(A, B, C, D); % Create state space object
In this code snippet:
- Matrix \( A \) describes the system dynamics.
- Matrix \( B \) connects the input (force) to the state.
- Matrix \( C \) defines the output (position) related to the state.
Simulating the State Space System
Using `step` and `lsim` Functions
You can simulate the response of state space systems using MATLAB’s built-in functions like `step` and `lsim`.
Step Response Example
To observe the step response of the system, you can use the following command:
step(sys); % Generate step response
This generates a plot showing how the output of the system reacts over time when subjected to a unit step input.
Using `lsim` for Custom Inputs
For simulating responses to arbitrary inputs, `lsim` is the function to use. Here’s how to simulate the response to a step input:
t = 0:0.01:5; % Time vector
u = ones(size(t)); % Input signal (step input)
lsim(sys, u, t); % Simulate response to the input
This example defines a time vector from 0 to 5 seconds and generates a step input using a vector of ones. The response of the system is then simulated and displayed.

Analyzing State Space Models
Stability Analysis
Stability is crucial in control systems, dictating whether a system will respond to disturbances and return to equilibrium. In state space, the stability of a system can often be assessed using the eigenvalues of the state matrix \( A \).
- If all the eigenvalues have negative real parts, the system is considered stable.
MATLAB allows you to determine the eigenvalues easily with the command:
eigenvalues = eig(A); % Calculate eigenvalues of A
Controllability and Observability
Controllability Matrix
The controllability of a system refers to the ability to drive the state to any desired position using appropriate inputs. The controllability matrix is given by:
Co = ctrb(A, B);
To check if the system is controllable, verify if the matrix \( Co \) has full rank (i.e., the number of linearly independent rows equals the number of states).
Observability Matrix
Observability indicates whether the state can be determined by the output. The observability matrix is defined as:
Ob = obsv(A, C);
Similar to controllability, check the matrix \( Ob \) for full rank to ensure that all states can be observed from the output.

Design Techniques Using State Space
State Feedback Control
State feedback is a vital tool in control engineering, where the control input \( u \) is derived based on the current state \( x \) of the system. The feedback law can be structured as:
\[ u = -Kx \]
where \( K \) is the feedback gain matrix. To design \( K \), the pole placement method can be employed in MATLAB:
desired_poles = [-2 -3]; % Define desired pole locations
K = place(A, B, desired_poles); % Pole placement method
This command calculates a gain matrix \( K \) that places the poles of the closed-loop system at specified locations, thus ensuring desired performance.
Observer Design
Observers are necessary when not all state variables can be directly measured. The Luenberger Observer is a popular design that can be expressed mathematically as:
\[ \dot{\hat{x}} = Ax + Bu + L(y - C\hat{x}) \]
where \( \hat{x} \) is the estimated state and \( L \) is the observer gain. Designing the observer in MATLAB involves ensuring the observer dynamics are stable:
L = place(A', C', desired_observer_poles)'; % Designing observer gains
Advanced Topics in State Space
Time-Variant State Space Systems
Time-variant systems have parameters that change over time, complicating the state space representation. Each instance of the system must be modeled independently or with time-varying matrices \( A(t) \) and \( B(t) \).
Nonlinear State Space Representation
The realm of nonlinear control encompasses more complex representations where the dynamics can be described as nonlinear functions of the state and input. MATLAB provides tools for simulating nonlinear systems, enabling researchers and engineers to design robust controls in non-standard scenarios.

Conclusion
In conclusion, state space representation in MATLAB is a powerful technique that provides numerous advantages for modeling and controlling dynamic systems. Understanding the fundamentals of state space models, implementing them in MATLAB, and applying analytical techniques such as stability analysis, controllability, and observability, are all essential skills for anyone involved in control engineering.
Explore both the basic and advanced features of MATLAB for state space representation, and leverage the tools available to enhance your designs further. By mastering these concepts and commands, you can significantly elevate your capabilities in modeling and controlling complex systems effectively.