finalisation TP2 424
|
@ -5,7 +5,6 @@
|
||||||
clear, clc,
|
clear, clc,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%% Param<EFBFBD>tres :
|
%% Param<EFBFBD>tres :
|
||||||
m = 500; %kg
|
m = 500; %kg
|
||||||
Mc = 5000; %kg
|
Mc = 5000; %kg
|
||||||
|
@ -63,19 +62,6 @@ B_1 =B(:,1);
|
||||||
|
|
||||||
eta = -1/(C_1*(A-B*K)^-1*B_1);
|
eta = -1/(C_1*(A-B*K)^-1*B_1);
|
||||||
|
|
||||||
%%
|
|
||||||
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");
|
|
||||||
|
|
||||||
%% pretty figure
|
%% pretty figure
|
||||||
% plot(simout)
|
% plot(simout)
|
||||||
|
@ -84,37 +70,21 @@ saveas(fig,"manip_5marge.png");
|
||||||
%% Commande grand gain
|
%% Commande grand gain
|
||||||
Deltat= 10
|
Deltat= 10
|
||||||
Dini = 0;
|
Dini = 0;
|
||||||
Rini = 10;
|
|
||||||
Dfin = 20;
|
Dfin = 20;
|
||||||
Rfin = 5;
|
R = 15;
|
||||||
ed = omega0/10;
|
Rini = 15;
|
||||||
|
Rfin = 15;
|
||||||
|
ed = omega0/100;
|
||||||
er = ed;
|
er = ed;
|
||||||
|
|
||||||
coeff_phi = [6/Deltat^5 -15/Deltat^4 10/Deltat^3 0 0 0]
|
coeff_phi = [6/Deltat^5 -15/Deltat^4 10/Deltat^3 0 0 0]
|
||||||
|
coeff_phi2 = [-20/Deltat^7 70/Deltat^6 -84/Deltat^5 35/Deltat^4 0 0 0 0]
|
||||||
|
|
||||||
|
|
||||||
%%
|
zh = 1;
|
||||||
close all;
|
|
||||||
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');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
xh = (Dini+sqrt((Rini-zh)/(Rfin-zh))*Dfin)/(1+sqrt((Rini-zh)/(Rfin-zh)));
|
||||||
|
a = (Rini-zh)/(Dini-xh)^2;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -357,15 +357,16 @@ En considérant $\epsilon_d \ll 1 $ et $\epsilon_r <<1 $ on a $\tau_d \simeq \ep
|
||||||
\paragraph{Prépa.9}
|
\paragraph{Prépa.9}
|
||||||
On doit prendre $\epsilon_d$ et $\epsilon_r$ suffisamment petit devant la pulsation du sytème $\omega_0$, pour avoir une commande qui puisse compenser suffisament vite les oscillations du système.
|
On doit prendre $\epsilon_d$ et $\epsilon_r$ suffisamment petit devant la pulsation du sytème $\omega_0$, pour avoir une commande qui puisse compenser suffisament vite les oscillations du système.
|
||||||
\paragraph{Manip.9}
|
\paragraph{Manip.9}
|
||||||
On réalise la commande suivante :
|
La commande est réalisé comme sur la figure \ref{fig:schemNL}. On
|
||||||
\begin{figure}[ht]
|
obtient alors les sorties de la figure \ref{fig:pours_traj}
|
||||||
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.9\textwidth]{boucleNL.png}
|
\includegraphics[width=0.9\textwidth]{boucleNL.png}
|
||||||
\caption{Élaboration de la commande pour la porsuite de trajectoire}
|
\caption{Élaboration de la commande pour la porsuite de trajectoire}
|
||||||
\label{fig:label}
|
\label{fig:schemNL}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{subfigure}{0.5\textwidth}
|
\begin{subfigure}{0.5\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
@ -382,17 +383,39 @@ On réalise la commande suivante :
|
||||||
\caption{Commande en poursuite de trajectoire}
|
\caption{Commande en poursuite de trajectoire}
|
||||||
\label{fig:pours_traj}
|
\label{fig:pours_traj}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
sur la figure \ref{fig:pours_traj} on remarque que la poursuite est plutot bien respecté pour $d$, mais celle sur $r$ conduit à un écart final non nul.
|
sur la figure \ref{fig:pours_traj} on remarque que la poursuite est
|
||||||
|
plutot bien respecté pour $d$, mais celle sur $r$ conduit à un écart
|
||||||
|
final non nul , cela est d'autant plus vrai si $\epsilon_d=\epsilon_r$ devient grand comme sur la figure \ref{fig:eps}.
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{eps_choix}
|
||||||
|
\caption{Influence de $\epsilon$ sur la trajectoire réelle}
|
||||||
|
\label{fig:eps}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\paragraph{Manip.10}
|
\paragraph{Manip.10}
|
||||||
|
On fait varier la masse dans la synthèse de l'asservissement, en ayant choisi
|
||||||
|
$\epsilon_d=\epsilon_r= \omega_0/100$.
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{m_choix}
|
||||||
|
\caption{Robustesse face à une pertubation de la masse}
|
||||||
|
\label{fig:m_choix}
|
||||||
|
\end{figure}
|
||||||
|
On remarque qu'une variation de 200kg n'entraine qu'un écart d'une 30aine de
|
||||||
|
centimètre avec la consigne ce qui est largement acceptable.
|
||||||
|
|
||||||
|
|
||||||
\paragraph{Manip.11}
|
\paragraph{Manip.11}
|
||||||
\paragraph{Manip.12}
|
En étudiant des variation sur $C_r$ et $C_d$ on ne remarque aucun changement
|
||||||
\paragraph{Manip.13}
|
pour $\epsilon = \omega_0/100$ ou $\epsilon = \omega_0/10$.
|
||||||
|
|
||||||
|
La commande suivant le modèle précédement décrit est donc très robuste
|
||||||
|
aux pertubations , tant que sa dynamique est rapide devant celle du système.
|
||||||
|
|
||||||
\subsection{Platitude}
|
\subsection{Platitude}
|
||||||
\paragraph{Prépa.10}
|
\paragraph{Prépa.10}
|
||||||
Pour montrer que le systeme est plat, ayant pour sortie plates $(x, z),$ il faut montrer que les états,$d, r, \theta$ et les commandes $F, C$ ne dépendent que des sorties $x, z$ et de leurs derivées.
|
On montre d'abords que le système est plat pour les sorties $(x, z),$
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\left\{
|
\left\{
|
||||||
\begin{aligned}
|
\begin{aligned}
|
||||||
|
@ -465,25 +488,25 @@ Ce qui se transpose aux coordonnées:
|
||||||
On pose donc :
|
On pose donc :
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\begin{aligned}
|
\begin{aligned}
|
||||||
x_{c}(t) &=(1-\alpha(t)) D_{i n i}+\alpha(t) D_{f i n} \\
|
x_{c}(t) &=(1-\phi_2(t)) D_{i n i}+\phi_2(t) D_{f i n} \\
|
||||||
z_{c}(t) &=(1-\alpha(t)) R_{i n i}+\alpha(t) R_{f i n}
|
z_{c}(t) &=(1-\phi_2(t)) R_{i n i}+\phi_2(t) R_{f i n}
|
||||||
\end{aligned}
|
\end{aligned}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
De manière analogue à la préparation 6 on a les conditions initiales et finales sur les positions et leur dérivées:
|
De manière analogue à la préparation 6 on a les conditions initiales et finales sur les positions et leur dérivées:
|
||||||
\[
|
\[
|
||||||
\alpha(0) = 0 ,\quad \alpha(\Delta t) =1, \quad \forall i = 1,2,3\left. \deriv[^i\alpha(t)]{t^i}\right|_{t=0}= 0 \text{ et } \left.\deriv[^i\alpha(t)]{t^i}\right|_{t=\Delta t}= 0
|
\phi_2(0) = 0 ,\quad \phi_2(\Delta t) =1, \quad \forall i = 1,2,3\left. \deriv[^i\phi_2(t)]{t^i}\right|_{t=0}= 0 \text{ et } \left.\deriv[^i\phi_2(t)]{t^i}\right|_{t=\Delta t}= 0
|
||||||
\]
|
\]
|
||||||
Pour satisfaire les 8 conditions on choisit un polynome d'ordre 7 :
|
Pour satisfaire les 8 conditions on choisit un polynome d'ordre 7 :
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\alpha(t)=a_{7} t^{7}+a_{6} t^{6}+a_{5} t^{5}+a_{4} t^{4}+a_{3} t^{3}+a_{2} t^{2}+a_{1} t+a_{0}
|
\phi_2(t)=a_{7} t^{7}+a_{6} t^{6}+a_{5} t^{5}+a_{4} t^{4}+a_{3} t^{3}+a_{2} t^{2}+a_{1} t+a_{0}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
Les conditions initiales imposent $a_0=a_1=a_2=a_3 =0$ et les conditions finales donnent :
|
Les conditions initiales imposent $a_0=a_1=a_2=a_3 =0$ et les conditions finales donnent :
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\begin{array}{lllllll}
|
\begin{array}{llllll}
|
||||||
\alpha(\Delta t) & =1 & a_7\Delta t^7 & + a_6 \Delta t^6 & + a_5 \Delta t^5 & + a_4 \Delta t^4 & =1 \\
|
\phi_2(\Delta t) & =1 = & a_7\Delta t^7 & + a_6 \Delta t^6 & + a_5 \Delta t^5 & + a_4 \Delta t^4 \\[1em]
|
||||||
\frac{d \alpha(t)}{d t}|t=\Delta t & =0 & 7a_7\Delta t^6 & + 6a_6 \Delta t^5 & 5a_5\Delta t^4 & 4a_4 \Delta t^3 & =0 \\
|
\left.\frac{d \phi_2(t)}{d t}\right|_{t=\Delta t} & =0 = & 7a_7\Delta t^6 & + 6a_6 \Delta t^5 &+ 5a_5\Delta t^4 &+ 4a_4 \Delta t^3 \\[1em]
|
||||||
\frac{d^{2} \alpha(t)}{d t^{2}}|_{t=\Delta t} & =0 & 42a_7\Delta t^5 & +30a_6 \Delta t^4 & 20a_5 t^3 & 12a_4\Delta t^2 & =0 \\
|
\left.\frac{d^{2} \phi_2(t)}{d t^{2}}\right|_{t=\Delta t} & =0 = & 42a_7\Delta t^5 & +30a_6 \Delta t^4 &+ 20a_5 t^3 &+ 12a_4\Delta t^2 \\[1em]
|
||||||
\frac{d^{3} \alpha(t)}{d t^{3}} |_{t=0} & t=\Delta & 210a_z\Delta t^4 & +120a_6\Delta t^3 & 60a_5 \Delta t^2 & 24a_4\Delta t & =0
|
\left.\frac{d^{3} \phi_2(t)}{d t^{3}}\right|_{t=\Delta t} & =0 = & 210a_z\Delta t^4 & +120a_6\Delta t^3 &+ 60a_5 \Delta t^2 &+ 24a_4\Delta t
|
||||||
\end{array}
|
\end{array}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
On a donc :
|
On a donc :
|
||||||
|
@ -507,9 +530,68 @@ Pour déterminer $x_H$ on utilise la position finale et on a:
|
||||||
x_{H}=\frac{D_{i n i}+\sqrt{\frac{R_{i n i}-z_{H}}{R_{i n i}-z_{H}}} D_{f i n}}%
|
x_{H}=\frac{D_{i n i}+\sqrt{\frac{R_{i n i}-z_{H}}{R_{i n i}-z_{H}}} D_{f i n}}%
|
||||||
{1+\sqrt{\frac{R_{i n i}-z_{H}}{R_{f i n}-z_{H}}}}
|
{1+\sqrt{\frac{R_{i n i}-z_{H}}{R_{f i n}-z_{H}}}}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
\paragraph{Manip.12}
|
||||||
|
Cette fois ci on utilise les sorties plates, et on a donc :
|
||||||
|
\[
|
||||||
|
\begin{cases}
|
||||||
|
\dot{D_c}(t) &= \displaystyle\deriv[]{t}\left( x_c- \frac{\ddot{x_c}z_c }{\ddot{z_c}-g}\right)\\
|
||||||
|
\dot{R_c}(t) &= \displaystyle\deriv[]{t}\sqrt{z_c^2-\left(\frac{\ddot{x_c}z_c }{\ddot{z_c}-g}\right)^2}
|
||||||
|
\end{cases}
|
||||||
|
\]
|
||||||
|
On construit alors les différents blocs de synthèse de la commande par
|
||||||
|
sortie plates:
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{rect_plat.png}
|
||||||
|
\caption{Synthèse de la trajectoire rectiligne par sortie plate}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{figure}On obtient alors les resultats suivant sur la commande des sorties
|
||||||
|
plates (figure \ref{fig:sortiesplates}).\\
|
||||||
|
|
||||||
|
\textit{Remarque}: Pour mener la simulation a bien il a fallut
|
||||||
|
modifier les paramètres d'intégrations (pas fixe de 1e-4, méthode
|
||||||
|
d'Euler) qui influait sur la régularité des sorties et commmandes.
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{manip12.png}
|
||||||
|
\caption{Sorties plates commandées, $\epsilon= \omega_0/100$}
|
||||||
|
\label{fig:sortiesplates}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Manip.13}
|
||||||
|
De meme on mets en place la synthèse de la parabole de commande
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{sortie_plate.png}
|
||||||
|
\caption{Synthèse des sorties plates}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
On obtient alors les resultats suivants sur la commande des sorties
|
||||||
|
plates (figure \ref{fig:sortiesplates}).\\
|
||||||
|
|
||||||
|
\textit{Remarque}: Meme paramètres d'intégration que précédement
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{manip13e100.png}
|
||||||
|
\caption{Sorties plates commandé en parabole}
|
||||||
|
\label{fig:sortiesplates}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Les resultats sont peux satisfaisant,mais la consigne est globalement
|
||||||
|
respectée, il faudrait investiguer plus en profondeur la modélisation
|
||||||
|
réalisée et comparée avec la commande du système réel, ce qui n'a pu
|
||||||
|
être fait par manque de temps.
|
||||||
|
|
||||||
|
\section*{Conclusion}
|
||||||
|
Dans ce TP nous avons modélisé le système présenté d'abord de manière
|
||||||
|
linéaire, ce qui ne s'est pas avéré assez suffisant pour des commandes
|
||||||
|
qui nous faisait sortir de la plage de linéarisation. En prenant en
|
||||||
|
compte les non-linéarités on peux commander de manière plus précise et
|
||||||
|
plus robuste le modèle, et réaliser une poursuite de trajectoire
|
||||||
|
correcte. Avec l'utilisation des sorties plates on a pu aller plus on
|
||||||
|
simulant le contournement d'un obstacle.
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
%%% Local Variables:
|
%%% Local Variables:
|
||||||
|
|
BIN
424-Systeme_Non_Lineaires/TP2/eps_choix.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/eps_d.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/eps_r.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/m_choix.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip12.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip12e100.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip13e100.png
Normal file
After Width: | Height: | Size: 14 KiB |
135
424-Systeme_Non_Lineaires/TP2/plot_things.m
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
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');
|
||||||
|
|
||||||
|
%%
|
BIN
424-Systeme_Non_Lineaires/TP2/rect_plat.png
Normal file
After Width: | Height: | Size: 56 KiB |
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
<slcache.FileAttributes type="slcache.FileAttributes" uuid="c7869f89-1547-44ce-8ac9-276c254a63a4">
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="76002ff9-803b-4566-963b-09fd11539608">
|
||||||
<checksum>D6xWcyOKDYRnjDVQkSZhsg==</checksum>
|
<checksum>5IHzSXcaa4GD3t8O0N72eA==</checksum>
|
||||||
</slcache.FileAttributes>
|
</slcache.FileAttributes>
|
||||||
</MF0>
|
</MF0>
|
BIN
424-Systeme_Non_Lineaires/TP2/sortie_plate.png
Normal file
After Width: | Height: | Size: 57 KiB |