diff --git a/Autom/README.md b/Autom/README.md index d6314b7..81d4d91 100644 --- a/Autom/README.md +++ b/Autom/README.md @@ -6,9 +6,8 @@ Asservir le moteur de la charrette afin qu'il ne soit pas ressenti par le vélo. - [NOL] Nolan ## Fichiers -- [systeme_capteur_force.slx](./systeme_capteur_force.slx) : modélisation du système global avec librairie Simscape contenant le moteur, un capteur de force ainsi qu'un asservissement PID, voir [réponse temporelle](./force_ressort.png) face à une suivi du vélo -![Système modélisé avec capteur de force](./sys_ressort.png) -- Bientot : système avec capteur de position avec fonction de transfert sans librairie Simscape +- [systeme_capteur_force.slx](./systeme_capteur_force.slx) : modélisation du système global avec librairie Simscape contenant le moteur, un capteur de force ainsi qu'un asservissement PID +- [systeme_dynamique.slx](./sys_dynamique.slx) et [sys_dyn.m](./sys_dyn.m) : fichiers pour la modélisation globale du système avec des fonctions de transfert ## Sources - [Lien spécifications moteur](http://www.mxusebikekit.com/pro_info.asp?Pid=25) diff --git a/Autom/sys_dyn.m b/Autom/sys_dyn.m new file mode 100755 index 0000000..3bf3167 --- /dev/null +++ b/Autom/sys_dyn.m @@ -0,0 +1,57 @@ +% PIR Charrette +% Modélisation du système dynamique en fonctions de transfert + +clear all; +close all; +clc; + +p = 23 ; % nombre de paires de pôles du moteur PMSM + +% U = w_elec * psi_m +% w_elec = p * w_meca +% w_meca = v / rayon + +U_alim = 48 ; % alimentation +R_roue = 0.33 ; % rayon de la roue +v_max = 13.9 ; % vitesse en m/s + +w_meca = v_max / R_roue ; % vitesse mécanique +w_elec = p * w_meca ; % vitesse électrique +psi_m = U_alim / w_elec ; % flux rotorique couplé au stator + +K_psi = 3/2 * p * psi_m ; % (N.m/A) Gain du moteur + +M_tot = 50 ; % kg + +J_tot = M_tot * R_roue^2 ; + +f = 5 ; % N/(m.s) coefficient visqueux de friction + +%% + +A = [0, 1 ; 0, -f/J_tot] ; +B = [0; K_psi/J_tot] ; +C = [1, 0] ; +D = 0 ; + +%% +sys = ss(A, B, C, D) ; + +sim("sys_dynamique.slx") ; +figure(1); +plot(ans.simu.Time, ans.simu.Data, 'red'); +title('Response of the Dynamic System'); +xlabel('Time (s)'); +ylabel('Output'); +grid on; +hold on; +t = 0:0.1:10 ; + +step(sys, t) +legend('Simulink', 'Matlab'); + +%% +K = place(sys) + +%% +cl_sys = ss(A-B*K, -B*inv(C*inv(A-B*K)*B), C, D) \ No newline at end of file diff --git a/Autom/sys_dynamique.slx b/Autom/sys_dynamique.slx new file mode 100755 index 0000000..7b4f58b Binary files /dev/null and b/Autom/sys_dynamique.slx differ