Solve state space equation by ODE45

Illustration
Babak - 2022-03-11T11:06:53+00:00
Question: Solve state space equation by ODE45

Hello everybody. I am new to state space representation. please help me to solve this question.   I have state space equation for IM motor like this:   xdot=A.x+B.u --> and their dimensions are : [50,1]=[50,50]*[50,1]+[50,50]*[50,1]   I have calculated A & B and I need to get xdot. (there are no C & D)   1- how should I write my function? (I don't use Simulink)   2- I used my solver like this:   >> [t,y] = ode45(@sys, tspan, zeros(50,1));  

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

In order to solve an ODE using ode45, you need to first define the function to describe the complete dynamics. In the linear state space system you provided, the definition of u is missing. In general, u can be designed as a linear feedback control law, such as u = Kx, where K is a 50-by-50 matrix. Let me give you a simpler example here. Suppose we have A = [0 1; -2 3]; B = [0;1]; K = [-1 -1]; Then, the system function can be constructed as:

 

 

function  dx = sys(t, x)
   A = [0 1; -2 3]; B = [0;1]; K = [-1 -1]; 
   u = K*x
   dx = A*x + B*u;
end

Please save the above function in an MATLAB file and name is as sys.m

Then, in a separate MATLAB script file or in the command window, you can simulate the system by executing the following

>> tspan = [0 10];
>> iniCon = [1;-1]
>> [t, y] = ode45(@sys, tspan, iniCon);

If you would like to show the simulation result in a figure, try executing >> plot(t,y)


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!