Réponse indicielle
%------------------------------------ % réponse indicielle 2ème ordre % (c) JPaul Molina %------------------------------------ clear all; % réinitialise echo on %--------------------------------- % réponse indicielle 2éme ordre %----------------------------------- echo off tmax=input('représentation : temps maxi en s ? '); % 1.5 par exemple t=(0:0.01:tmax)'; K=input('Entrer K : '); % 1 par exemple a=input('Entrer le coefficient de p² : '); b=input('Entrer le coefficient de p : '); denom=[a b 1]; % dénominateur ap²+ bp + 1 % coeff d'amortissement et pulsation libre lambda=0.5*b / sqrt(a) ; omega0=1/sqrt(a); %prépare l'affichage str=sprintf('lambda=%0.5g omega0=%0.4g rd/s',lambda,omega0); %dépassement en % si lambda<1 if lambda<1 % par exemple K=1 a=0.1 b=0.2 depass=100*exp(-pi*lambda/sqrt(1-(lambda*lambda)) ); td1=pi/( omega0*sqrt(1-(lambda*lambda)) ); % temps du 1er dépassement end; % calcule la réponse indicielle y(T) [y,X,T]=step(K,denom,t); clf; % efface la figure plot(t,y); % tracé % mise en place des légendes title('réponse indicielle 2ème ordre'); xlabel('temps en s'); % légende abscisse ylabel('y(t)'); % légende ordonnée grid; % dessine les axes echo on % placer la légende en cliquant à l'endroit souhaité echo off %le texte qui suit sera affiché au point cliqué gtext( {' K','F(p)= ---------------',' ap²+bp+1'} ) % et ensuite ce qui suit aprés un second clic if lambda<1 str1=sprintf('\nD%%=%0.4g à t=%0.4g s',depass,td1); str2=strcat(str,str1); echo on % placer les caractéristiques en cliquant à l'endroit souhaité echo off gtext(str2); else gtext(str); end;
Dernière Modification : Lun 19 Mars 2007 13:28
Copyright © 1999-2010 Jean-Paul Molina Tous droits réservés.