Using expm of matlab to plot state responses

Click For Summary
The discussion centers on using MATLAB's expm function to plot the zero input response of a nonlinear state space model. The problem involves linearizing the system at an equilibrium point and finding the response with given initial conditions. There is confusion regarding the appropriateness of using expm for this task, as it typically exponentiates matrices rather than directly addressing initial conditions. The MATLAB code provided demonstrates an alternative approach using the initial function to generate the state response plot. The conversation emphasizes the importance of understanding matrix exponentials in the context of solving ordinary differential equations analytically.
shuh
Messages
9
Reaction score
0

Homework Statement


The state space model of a nonlinear system is x'_1(t) = 2x^2_2(t) - 50 x'_2(t) = -x_1(t) - 3x_2(t) + u(t) where x_1(t) and x_2(t) are the states, and u(t) is the input. The output of the system is x_2(t).

Find the zero input response (u(t) = 0) of this system linearized at the equilibrium point (-15, 5) with initial states (-14.5, 5). Use Matlab (expm.m) to plot these state responses from 0 to 5s.

Homework Equations



State Space Modeling, Matlab

The Attempt at a Solution



The bold part is where I have an issue with this problem. Generally, if you want to find response to initial conditions, you use initial function, not expm. Expm simply takes a matrix and exponentiates it.

Anyways, MATLAB code for generating response to initial condition is:

//State Matrix
A = [ 0 20 ; -1 -3]
B = [0 ; 1]
C = [0 1]
D = 0
x0 = [ -14.5 ; 5]

sys = ss(A,B,C,d)
initial(sys, x0)

And you get a beautiful plot looking like the following:

image.png


How, and especially why on Earth would you use expm function to generate such plot?
 
Physics news on Phys.org
Do you know what a matrix exponential is, and how it can be used to solve a system of linear, constant coefficient first order equations? If not, then either look in your textbook or google it. Even the Wikipedia page on the matrix exponential has some applications that should help here.

Why would you do this? Because it will give you an idea of one way to solve such a system of ODEs analytically. Numerically, I do not know what the 'initial' command in MATLAB does (might just numerically integrate the equations - probably doesn't do the matrix exponential). I would think that anyone who learns about state space analysis should learn about matrix exponentials at some point. Perhaps that is the real reason 'why' you would do this - so you learn more than just how to use a few Matlab commands.

enjoy,

jason
 

Similar threads

Replies
3
Views
4K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K