Solve state space equation by ODE45

Babak · Mar 11, 2022 · 2.1K views
Question
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 PhD Expert
Answered Sep 16, 2026

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)

100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!