How to deal with the time response of first order system?
27 views (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
Sam Chak
on 21 Apr 2022
@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:
More Answers (0)
See Also
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!