57 lines
No EOL
1.1 KiB
Matlab
Executable file
57 lines
No EOL
1.1 KiB
Matlab
Executable file
% 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) |