cours-m1-eea/424-Systeme_Non_Lineaires/TP2/plot_things.m

135 lines
2.8 KiB
Mathematica
Raw Permalink Normal View History

2019-04-30 11:18:37 +02:00
sys = ss(A-B*K,B(:,2),C(2,:),D)
H = tf(sys)
bode(H)
% margin(H)
% Avec le correcteur intégral :
Ti = 5e-4
CI = tf(1,[-Ti 0]); % négatif pour avoir une phase >180
%bode(H,CI*H,'grid')
% fig =figure();
% margin(CI*H)
% grid on;
% saveas(fig,"manip_5marge.png");
%%
close all;
sim('Grue_NL_corrNL')
fig= figure()
plot(Dc)
hold on
plot(simout.Time, simout.Data(:,1));
xlabel('temps (s)');
grid on;
title('Vérification de la planification de trajectoire');
legend('d_c','d');
fig2= figure()
plot(Rc)
hold on
plot(simout.Time, simout.Data(:,2));
xlabel('temps (s)');
grid on;
title('Vérification de la planification de trajectoire');
legend('r_c','r');
%%
close all
figure()
for e = [1 10 100]
ed = omega0/e; er= omega0/e;
sim('Grue_NL_corrNL')
hold on
subplot(311)
hold on
plot(simout.Time, simout.Data(:,1),"DisplayName",sprintf("\\epsilon_r=\\epsilon_d= \\omega_0/%d",e));
subplot(312)
hold on
plot(simout.Time, simout.Data(:,2),"DisplayName",sprintf("\\epsilon_r=\\epsilon_d= \\omega_0/%d",e));
subplot(313)
hold on
plot(simout.Time, simout.Data(:,3),"DisplayName",sprintf("\\epsilon_r=\\epsilon_d= \\omega_0/%d",e));
end
xlabel('temps (s)');
subplot(311)
title("choix de l'échelle temps");
ylabel('d'); grid on;
subplot(312)
ylabel('r'); grid on;
subplot(313)
ylabel('\theta'); grid on;
%%
close all
e = 100;
ed = omega0/e; er= omega0/e;
figure()
for m = [300 500 700]
c0 =m*g*b;
sim('Grue_NL_corrNL')
hold on
subplot(311)
hold on
plot(simout.Time, simout.Data(:,1),"DisplayName",sprintf("m = %d",m));
subplot(312)
hold on
plot(simout.Time, simout.Data(:,2),"DisplayName",sprintf("m = %d",m));
subplot(313)
hold on
plot(simout.Time, simout.Data(:,3),"DisplayName",sprintf("m = %d",m));
end
xlabel('temps (s)');
subplot(311)
title("");
ylabel('d'); grid on;
subplot(312)
ylabel('r'); grid on;
subplot(313)
ylabel('\theta'); grid on;
m = 500;
%%
close all
e = 10;
ed = omega0/e; er= omega0/e;
figure()
for kc = [0.5 1 1.5]
Cr= Cr*kc
sim('Grue_NL_corrNL')
hold on
subplot(311)
hold on
plot(simout.Time, simout.Data(:,1),"DisplayName",sprintf("Cr = %f",Cr));
subplot(312)
hold on
plot(simout.Time, simout.Data(:,2),"DisplayName",sprintf("Cr = %f",Cr));
subplot(313)
hold on
plot(simout.Time, simout.Data(:,3),"DisplayName",sprintf("Cr = %f",Cr));
end
xlabel('temps (s)');
subplot(311)
title("");
ylabel('d'); grid on;
subplot(312)
ylabel('r'); grid on;
subplot(313)
ylabel('\theta'); grid on;
%%
close all;
sim('Grue_NL_corrNL')
fig= figure()
hold on
plot(simout.Time, complates.Data(:,1));
plot(simout.Time, complates.Data(:,2));
plot(simout.Time, sortieplates.Data(:,2));
plot(simout.Time, sortieplates.Data(:,1));
xlabel('temps (s)');
grid on;
title('Vérification de la planification de trajectoire, sortie plates');
legend('x_c','z_c','x','z');
%%