MATLAB Answers

0

how to solve the equation: xdot=AX+Bu; where u=sin(2t)

Asked by Ebraheem Menda on 28 Nov 2019 at 11:12
Latest activity Commented on by Ebraheem Menda on 4 Dec 2019 at 23:24
This is my system. I want to solve it using ode45.
I have solved this using ode45 but by keeping sin(2t)=0. the following is the code.
What changes i need to do to the following to solve my actual system.
function [y]= smc3()
clc
a=[0 1;-3 -4];
b=[0 1];
c=[1 0];
ic=[1 -2];
i=zeros(1,2);
[t y]=ode45(@smc4,[0 8],ic);
function [di]= smc4(~,i)
di = zeros(2,1); % a column vector
di(1) = a(1,1)*i(1)+a(1,2)*i(2)-b(1);
di(2) = a(2,1)*i(1)+a(2,2)*i(2)-b(2);
end
id=y(:,1);
iq=y(:,2);
plot(t,y(:,1),t,y(:,2));
end
Thanks in advance !!!!!

  1 Comment

Is there any other function to solve this If not possible with ode45.

Sign in to comment.

Products


Release

R2014b

1 Answer

Answer by David Goodmanson on 2 Dec 2019 at 7:53
 Accepted Answer

Hi Ebraheem,
ode45 is fine with explicit time dependence in the calculation of xdot:
[t, x] = ode45(@smc5,[0, 10],[1, -2])
plot(t,x)
grid on
function xdot = smc5(t,x)
xdot = [0 1;-3 -4]*x + [0; 1]*sin(2*t);
end

  1 Comment

Thank you verymuch Mr.David.You have shown me the simple way to write the code for my problem.
i will again comeback with few more questions.
Thank You.

Sign in to comment.