Я основал свое решение от примера, предоставленного 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, поэтому я предположил, что неправильно решил дифференциальное уравнение. Любые советы или комментарии будут очень полезны.
Шаг Ответ от использования ode23:
Ваше решение кажется разумным, однако я не знаком с 'ss' и друзьями. Вы уверены, что вводите одну и ту же систему в 'ss' для проверки? –
Я уверен, что я вошел в ту же систему. Думаю, мне просто нужно подождать кого-то, кто знаком с космическим пространством. Спасибо anyways :) – azumakazuma
Кажется [вы правы] (http://lpsa.swarthmore.edu/Representations/SysRepTransformations/TF2SS.html#Transfer_Function) :) –