How to deal with the time response of first order system?

조회 수: 10 (최근 30일)
Cola
Cola 2022년 4월 21일
댓글: Cola 2022년 4월 21일
There is a system of differential equations:
x'=ax+by,
y'=cx+dy,
where tau*a'+a=a*. I used to deal with the time response tau in simulink.
Now how to deal with the time response of first order system in matlab by code? Is there a way to solve the problem? Thank you.

채택된 답변

Sam Chak
Sam Chak 2022년 4월 21일
@Cola, let's correct your Simulink model first.
The ODE is given by
which can be rearranged into
Integrating both sides and is obtained:
Technically it means that the signal after the integrator block (1/s) is , and that is the output of the system.
To obtain , you need to properly get the integrand, a function that is to be integrated:
So you should perform the subtraction first, and then it multiply with using the Gain block. The signal from the Gain block is fed into the Integrator block (1/s).
If , then the MATLAB code looks something like this:
tau = 1;
% 1st-order Ordinary differential equation
fcn = @(t, x) [(1 - x)/tau];
tspan = [0 10];
init = 0; % initial condition
% Runge-Kutta Dormand-Prince 4/5 solver
[t, x] = ode45(fcn, tspan, init);
plot(t, x)
grid on
xlabel('t')
ylabel('a(t)')
title('Time response of the system')
Result:
  댓글 수: 1
Cola
Cola 2022년 4월 21일
@Sam Chak Thank you very much. Your answer is so good and detailed. Thus we can deal with the problem by solving the ODE.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Discontinuities에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by