New script
This commit is contained in:
parent
3a4ff4d359
commit
6192cbdd3b
1 changed files with 38 additions and 3 deletions
41
identificationScript.m
Executable file → Normal file
41
identificationScript.m
Executable file → Normal file
|
|
@ -55,6 +55,11 @@ data = iddata(Y0,U0,Te,'Frequency',w0); %Ici peut-etre changer avec f
|
|||
Hn4sid_fd = n4sid(data,ordre);
|
||||
y2 = lsim(ss(Hn4sid_fd), un, tn);
|
||||
|
||||
%% Fonction de transfert
|
||||
[num, den] = ss2tf(Hn4sid_fd.a, Hn4sid_fd.b, Hn4sid_fd.c, Hn4sid_fd.d)
|
||||
system_tf = tf(num, den)
|
||||
|
||||
|
||||
%%% Identification via Loewner
|
||||
wid = 2*pi*f0(f0<BP(end)/2);
|
||||
wRange = 1:floor(length(wid)/2)*2;
|
||||
|
|
@ -117,6 +122,7 @@ Gb = tf([Kb], [1 0 0])
|
|||
|
||||
figure()
|
||||
bode(Gb)
|
||||
%margin(Gb)
|
||||
title('Bode système rail')
|
||||
|
||||
Cb = tf([a*T 1], [T, 1])*Kp; %Correcteur d'avance de phase
|
||||
|
|
@ -132,9 +138,38 @@ Hc = d2c(H);
|
|||
Lbo = Cb*Hc*Gb;
|
||||
Lbf = Lbo / (1+Lbo);
|
||||
Margin = allmargin(Lbf);
|
||||
h=bodeplot(Lbf);
|
||||
margin(Lbf);
|
||||
title({'Marge de phase et gain pour le système complet','Gm= Inf Pm =-40.6 deg (at 5.97rad/s)'});
|
||||
SysO=bodeplot(Lbo);
|
||||
margin(Lbo);
|
||||
title({'Marge de phase et gain pour le système complet BO','Gm= Inf Pm =-40.6 deg (at 5.97rad/s)'});
|
||||
|
||||
%% Reponse du système entier
|
||||
var3.time = [0:Te:1000*Te]';
|
||||
var3.signals.values = zeros(1, 1001)'
|
||||
var3.signals.dimensions= 1 ;
|
||||
var3.signals.values(1:150) = 0;
|
||||
var3.signals.values(151:350) = -20;
|
||||
var3.signals.values(351:550) = 10;
|
||||
var3.signals.values(551:700) = -30;
|
||||
var3.signals.values(701:1000) = 0;
|
||||
|
||||
Tf = var3.time(end);
|
||||
|
||||
|
||||
load simout4_vals.mat;
|
||||
load simout3_vals.mat;
|
||||
pos_sortie2 = simout4.signals.values;
|
||||
pos_entre = var3.signals.values(1:928,:);
|
||||
commande4 = simout3.signals.values + 5; % Ajout de offset, car à plat la tension vaut +5V
|
||||
Tf3 = var3.time(1:length(simout3.signals.values),:);
|
||||
figure()
|
||||
hold on;
|
||||
Tf2 = var3.time(1:length(simout4.signals.values),:);
|
||||
|
||||
plot(Tf2,pos_entre);
|
||||
plot(Tf2,pos_sortie2);
|
||||
plot(Tf3,commande4);
|
||||
legend('Position d entrée','Position de sortie','Commande en tension')
|
||||
title("Reponse du système entièr");
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue