%Regulation complete %On donne un une position finale qui sert à reguler l'orientation du %chariot et sa vitesse close all clear attr=['r-'; 'g-'; 'b-'; 'c-'; 'm-'; 'k-']; Tmax=100; %parametre du robot l=0.2; %axe inter-roue %Conditions initiales x0=50; y0=20; teta0=0; %Consigne teta_final= 30*pi/180 ; %30degres x_final=100*cos(teta_final); y_final=100*sin(teta_final); %Configuration du controleur PI de la vitesse ki_uc=0.1/100000; %ki_uc=0; kp_uc=5/100; %Configuration du controleur PI de l'angle alpha=1/l; omega=1; ksi=1; ki_teta=omega*omega/alpha; kp_teta=2*ksi*omega/alpha; %reduire la vitesse quand on fait une correction d'orientation k=0; %Lancer la simulation [time, out]=sim('robot_v4', Tmax); %Recuperer les position des roues pour le graphique L=20*l; % pour le graphique point_g(:,1)=out(:,1)-L*cos(pi/2-out(:,3))/2; point_d(:,1)=out(:,1)+L*cos(pi/2-out(:,3))/2; point_g(:,2)=out(:,2)+L*sin(pi/2-out(:,3))/2; point_d(:,2)=out(:,2)-L*sin(pi/2-out(:,3))/2; figure hold on grid on axis xy axis('square') xlabel('x') ylabel('y') plot(out(:,1), out(:,2), 'g.-') plot(x_final,y_final, 'rd') %Dessin du charriot for i=1:length(time) plot([point_g(i, 1) point_d(i, 1)]', [point_g(i, 2) point_d(i, 2)]', 'b-') end