how can add PI to ode45?

9 visualizzazioni (ultimi 30 giorni)
karim_karimo
karim_karimo il 15 Ago 2022
Commentato: Sam Chak il 18 Ago 2022
hi
I have an system controled by PI control in simulink i can design it but in code when add PI control I can't do it
where my system is shown in next figure
any help

Risposta accettata

Sam Chak
Sam Chak il 16 Ago 2022
Modificato: Sam Chak il 16 Ago 2022
Here are the mathematical preliminaries for constructing the PI in ODE form.
[t, x] = ode45(@system, [0 10], [0; 0]);
plot(t, x(:,1), 'linewidth', 1.5)
grid on, xlabel('t'), ylabel('y(t)'), ylim([-0.2 1.2])
function dxdt = system(t, x)
dxdt = zeros(2, 1);
% construction of PI
r = 1; % reference signal
e = r - x(1); % error signal (based on Simulink)
Kp = 1/3; % proportional gain (user's Kp is 1)
Ki = - 1/3; % integral gain (user's Ki is 2)
u = Kp*e + Ki*x(2); % the PI thing (user's PI gains cause overshoot)
% the dynamics
A = 1;
B = 3;
dxdt(1) = A*x(1) + B*u; % the system
dxdt(2) = e; % for integral action
end
  3 Commenti
karim_karimo
karim_karimo il 17 Ago 2022
Modificato: karim_karimo il 17 Ago 2022
thank you
can I use integral instead using the second state
Sam Chak
Sam Chak il 18 Ago 2022
The integral command requires the mathematical function.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by