* dessin.dgibi
*----------------------------------------------------------------------*
* cas-test de la directive DESSIN. *
*----------------------------------------------------------------------*
OPTI 'TRAC' 'PSC' 'EPTR' 5 ;
OPTI 'POTR' 'HELVETICA_16';
*
* ON TESTE D'ABORD LES ECHELLE ET GRADUATIONS ************************
* (SP)
EV1 = EVOL 'VERT' 'MANU' (PROG -1. 1. 2.)
(PROG 1.E-3 5.E-4 7E-2) ;
DESS EV1 'TITR' ' Sans option' ;
DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
'TITR' ' Avec des bornes sur X & Y ' ;
DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
'XGRA' +0.5 'YGRA' +0.5E-2
'TITR'
' Avec des bornes sur X-Y & les intervalles de graduations donnes ' ;
DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
'XGRA' +0.5 'YGRA' +0.5E-2
'AXES' 'GRIL' 'POIN'
'TITR' ' La grille & les axes en + ' ;
*
* ON TESTE ENSUITE D'AUTRES OPTIONS AVEC UN SYSTEME 2DDL **************
* LEGENDE, TITRES, CENTREMENT, GRILLE ...
* (BP)
*
* w donné en rad/s
T1=2.;
w1=(2.*pi)/T1;
T2=5.;
w2=(2.*pi)/T2;
xp = prog 0. PAS 0.1 20.;
* castem utilise les degrés
yp = 100. * (sin ((180/pi)*w1*xp));
yp2 = 110. * (sin ((180/pi)*w2*xp));
ev1 = evol bleu manu xp yp;
ev2 = evol roug manu xp yp2;
tdess1 = tabl;
tdess1 . 1 = mot 'MARQ PLUS REGU';
tdess1 . 'TITRE' = tabl;
ent1 = enti w1;
decim1 = (enti (10.*w1)) - (10*ent1);
ent2 = enti w2;
decim2 = (enti (10.*w2)) - (10*ent2);
tdess1 . 'TITRE' . 1 = chai '\W=' ent1 '.' decim1 'rad.s^{-1}';
tdess1 . 2 = mot 'MARQ ROND REGU';
tdess1 . 'TITRE' . 2 = chai '\W=' ent2 '.' decim2 'rad.s^{-1}';
dess (ev1 et ev2)
'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
'TITX' 't(s)' 'POSX' 'CENT'
'TITY' 'Dépl u_{A}^{1} (m)' 'POSY' 'CENT'
'LEGE' 'SO' tdess1;
dess (ev1 et ev2)
'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
'TITX' 't(s)' 'POSX' 'CENT'
'YBOR' -110. 110. 'YGRA' 22
'TITY' 'Dépl u_{A} (m^{1})' 'POSY' 'CENT'
'LEGE' tdess1;
dess (ev1 et ev2)
'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
'TITX' 't(s)'
'XBOR' 0. T2
'YBOR' -110. 110. 'YGRA' 22.
'TITY' 'Déplacement x (m)'
'LEGE' tdess1;
*** systeme 2ddl : fonction de tranfert : amplitude et phase ***
ev1tot = VIDE 'EVOLUTION';
ev2tot = VIDE 'EVOLUTION';
* liscoul = mots VIOL BLEU TURQ VERT ORAN AZUR ROUG ;
liscoul = mots VIOL BLEU TURQ OLIV ORAN AZUR ROUG ;
tdess2 = tabl;
tdess2 . 1 = mot 'MARQ PLUS REGU';
tdess2 . 2 = mot 'MARQ ROND REGU';
tdess2 . 3 = mot 'MARQ CROI REGU';
tdess2 . 4 = mot 'MARQ CARR REGU';
tdess2 . 5 = mot 'MARQ TRIU REGU';
tdess2 . 6 = mot 'MARQ ETOI REGU';
tdess2 . 7 = mot 'MARQ TRID REGU';
tdess2 . 'TITRE' = tabl;
xi1 = 0.02 ; xi2 = 0.05;
xi1p = prog 0.001 0.002 0.01 0.02 0.05 0.1 0.15 ;
xi2p = xi1p * (xi2 / xi1);
nxi = dime xi1p;
ixi = 0;
repe Bxi nxi; ixi = ixi + 1 ;
xi1 = extr xi1p ixi;
xi2 = extr xi2p ixi;
mess ixi ' xi_1=' xi1 ' xi_2=' xi2 ;
moxi1 = chai (enti (1000 * (xi1 - (enti xi1))));
si (ega (dime moxi1) 1); moxi1 = chai '00' moxi1; fins;
si (ega (dime moxi1) 2); moxi1 = chai '0' moxi1; fins;
moxi1 = chai (enti xi1) '.' moxi1;
tdess2 . 'TITRE' . ixi = chai '\x_{1}=' (moxi1);
m1=2.; k1 = m1*(w1**2); c1 = 2.*xi1*w1*k1;
m2=1.; k2 = m2*(w2**2); c2 = 2.*xi2*w2*k2;
mess w1 m1 k1 c1;
mess w2 m2 k2 c2;
wpadim = prog 0. PAS 0.002 2.;
wp = w1 * wpadim;
np = dime wp;
unp = prog np*1.;
A_R = ((k1 + k2)*unp) - ((wp**2)*m1);
A_I = wp*(c1 + c2);
B_R = -1.*k2*unp;
B_I = -1.*c2*wp;
D_R = (k2*unp) - ((wp**2)*m2);
D_I = wp*c2;
Den_R = (A_R*D_R) - (A_I*D_I) - (B_R**2) + (B_I**2) ;
Den_I = (A_R*D_I) + (A_I*D_R) - (2.*B_R*B_I);
Den2 = (Den_R**2) + (Den_I**2);
* pour simplifier on excite seulement en F1 et en phase
F1_R = 1.;
Num11_R = ((Den_R*D_R) - (Den_I*D_I)) * F1_R;
Num11_I = ((Den_R*D_I) - (Den_I*D_R)) * F1_R;
Num12_R = -1.*((Den_R*B_R) - (Den_I*B_I)) * F1_R;
Num12_I = -1.*((Den_R*B_I) - (Den_I*B_R)) * F1_R;
X1_R = Num11_R / Den2;
X1_I = Num11_I / Den2;
X2_R = Num12_R / Den2;
X2_I = Num12_I / Den2;
X1_AMP = ((X1_R**2)+(X1_I**2))**0.5;
X1_PHA = ATG X1_I X1_R;
X2_AMP = ((X2_R**2)+(X2_I**2))**0.5;
X2_PHA = ATG X2_I X2_R;
ev1_amp = evol BLEU manu wpadim X1_AMP;
ev2_amp = evol ROUG manu wpadim X2_AMP;
ev1_pha = evol BLEU manu wpadim X1_PHA;
ev2_pha = evol ROUG manu wpadim X2_PHA;
si (xi1 ega 0.02);
tdess1 . 'TITRE' . 1 = mot 'X_{1}';
tdess1 . 'TITRE' . 2 = mot 'X_{2}';
* 'Y LOG + titres X et Y centres + LEGE XY'
tit2ddl = chai 'Système à 2ddl : '
'\w_{1}=0.5 \w_{2}=0.2 \x_{1}=2% \x_{2}=5%';
dess (ev1_amp et ev2_amp)
'LOGY' 'YBOR' 1.E-3 1.E0
'GRIL' 'POIN' 'GRIS'
'TITR' tit2ddl
'TITX' '\W (Hz)' 'POSX' 'CENT'
'TITY' 'amplitude |x| (m)' 'POSY' 'CENT'
'LEGE' 'XY' 1.5 0.8 tdess1;
dess (ev1_pha et ev2_pha)
'YBOR' -180. 180. 'YGRA' 90.
'GRIL' 'POIN' 'GRIS'
'TITR' tit2ddl
'TITX' '\W (Hz)' 'POSX' 'CENT'
'TITY' 'phase \j(x) (m)' 'POSY' 'CENT'
'LEGE' 'XY' 1.5 160 tdess1;
fins;
ev1tot = ev1tot et (ev1_amp coul (extr liscoul ixi));
ev2tot = ev2tot et (ev2_amp coul (extr liscoul ixi));
fin Bxi;
*
* ON CONTINUE AVEC D'AUTRES OPTIONS
* (BP)
tit2 = chai 'Evolution avec l`amortissement \x';
dess ev1tot
'GRIL' 'POIN' 'GRIS' 'TITR' tit2
LOGY
'TITX' '\W (Hz)' 'POSX' 'CENT'
'TITY' '|X_{1}| (m)' 'POSY' 'CENT'
'LEGE' 'XY' 1.45 9. tdess2;
*rem : 'amplitude |X_{1}| (m)' est trop long (limite a 20 caracteres)!
* 'TITY' 'amplitude |X_{1}| (m)' 'POSY' 'CENT'
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer