2015-08-29 2 views
0

Я основал свое решение от примера, предоставленного Matlab - solving a third order differential equation.Как решить дифференциальное уравнение третьего порядка с использованием ode23 в MATLAB и построить ответ на шаг

Проблема заключается в том, что я должен решить дифференциальное уравнение третьего порядка, y '' '+ 3y' '+ 2y' + y = 4u, используя решатель ode23 и построим ответ на шаг. Вот что я до сих пор.

function dy = diffuy(t, y) 
%Split uy into variables in equation 
%y'''+3y''+2y'+y=4u 
%Have to take third order equation and convert to 1st order 
%y0 = y 
%y1 = y0' 
%y2 = y1' 
%y3 = y2' 

%y0' = y1 
%y1' = y2 
%y2' = y3 
%y3' = y''' = -3*y2-2*y1-y0+4*u 
%Assume that y(0)= 0, y'(0)=0, y''(0)=0, no initial conditions 
u = @(t) heaviside(t); 

dy = zeros(4,1); 
dy(1) = y(2); 
dy(2) = y(3); 
dy(3) = y(4); 
dy(4) = -3*y(3)-2*y(2)-y(1)+4*u(t); 
end 

В моем главном файле, у меня есть код:

[T, Y]=ode23(@diffuy,[0 20],[0 0 0 0]); 
figure(1) 
plot(T,Y(:,1)) 


A=[0 1 0;0 0 1; -1 -2 -3] 
B=[0;0;4] 
C=[1 0 0] 
D=[0] 

sys4=ss(A,B,C,D) 
figure(2) 
step(sys4) 

Проблема, которую я имею, что переходная характеристика производится с использованием пространства состояний представления команд в MATLAB не соответствуют шаг ответ, созданный ode23, поэтому я предположил, что неправильно решил дифференциальное уравнение. Любые советы или комментарии будут очень полезны.

Шаг Ответ команд сс: enter image description here

Шаг Ответ от использования ode23:

enter image description here

+0

Ваше решение кажется разумным, однако я не знаком с 'ss' и друзьями. Вы уверены, что вводите одну и ту же систему в 'ss' для проверки? –

+0

Я уверен, что я вошел в ту же систему. Думаю, мне просто нужно подождать кого-то, кто знаком с космическим пространством. Спасибо anyways :) – azumakazuma

+0

Кажется [вы правы] (http://lpsa.swarthmore.edu/Representations/SysRepTransformations/TF2SS.html#Transfer_Function) :) –

ответ

3

Я не знаю, как связан вопрос получил правильный ответ, потому что вы на самом деле решение уравнение четвертого порядка с использованием их методологии. Код правой руки, указанный в пакете ODE, должен содержать только n записей для n проблема с регистрацией.

В вашем случае, замена переменных

Change of variables matrix

результатов в системе третьего порядка

Third order system equation

с начальными условиями

Initial conditions equation.

Изменение diffuy в

function dy = diffuy(t, y)   
    dy = zeros(3,1); 
    dy(1) = y(2); 
    dy(2) = y(3); 
    dy(3) = -3*y(3)-2*y(2)-y(1)+4*u(t); 
end 

дает решение, которое соответствует модели пространства состояний.

+1

o Вау, я думаю, вам всегда нужно перекрестно проверять ответы, даже если они встают на голосование. Большое спасибо, это было полезно. – azumakazuma

Смежные вопросы