PID model for MIMO system
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Andrei Rotaru
le 2 Juil 2024
Commenté : Andrei Rotaru
le 2 Juil 2024
Hi! Does anyone know how to make a PID controller (Matlab, Simulink) for the model from this article: https://ethz.ch/content/dam/ethz/special-interest/mavt/dynamic-systems-n-control/idsc-dam/Research_DAndrea/Cubli/Cubli_IROS2012.pdf
0 commentaires
Réponse acceptée
Sam Chak
le 2 Juil 2024
Since the Cubli system is underactuated and you seek to use only a PID Controller, you must select which output you would like to control. This is necessary because PID control design generally works for single-input, single-output (SISO) systems.
Once a stabilizing PID controller is successfully designed, it can then be implemented on the multi-input, multi-output (MIMO) system. However, there is no guarantee that the other two outputs will be stable as well. Nevertheless, since the second output depends on the first output, if the first output is stable, the second output will also be stable.
%% Parameters
l = 0.085;
lb = 0.075;
mb = 0.419;
mw = 0.204;
Ib = 3.34e-3;
Iw = 0.57e-3;
Cb = 1.02e-3;
Cw = 0.05e-3;
Km = 25.1e-3;
g = 9.81;
%% State-space model
A = [0 1 0
(mb*lb + mw*l)*g/(Ib + mw*l^2), -Cb/(Ib + mw*l^2), Cw/(Ib + mw*l^2)
-(mb*lb + mw*l)*g/(Ib + mw*l^2), Cb/(Ib + mw*l^2), -Cw*(Ib + Iw + mw*l^2)/(Iw*(Ib + mw*l^2))];
B = [0
- Km/(Ib + mw*l^2)
Km*(Ib + Iw + mw*l^2)/(Iw*(Ib + mw*l^2))];
C = [1 0 0];
sys = ss(A, B, C, 0*C*B);
%% Transfer function model
Gp = tf(sys)
%% PID Controller
Gc = pidtune(Gp, 'PIDF')
%% Closed-loop transfer function
Gcl = minreal(feedback(Gc*Gp, 1))
sys = ss(Gcl);
op = findop(sys, y=1)
%% Response to Custom Step Input
opt = RespConfig;
opt.InputOffset = 0;
opt.Amplitude = op.u;
step(Gcl, opt), grid on
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Numeric Linear Time-Invariant Models dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!