Télécharger dessin.dgibi

Retour à la liste

Numérotation des lignes :

  1. * dessin.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *----------------------------------------------------------------------*
  6. * cas-test de la directive DESSIN. *
  7. *----------------------------------------------------------------------*
  8. OPTI 'TRAC' 'PSC' 'EPTR' 5 ;
  9. OPTI 'POTR' 'HELVETICA_16';
  10. * rem : il faudrait aussi tester avec
  11. * OPTI TRAC 'X';
  12. * OPTI TRAC 'OPEN' ;
  13.  
  14. *
  15. * ON TESTE D'ABORD LES ECHELLE ET GRADUATIONS ************************
  16. * (SP)
  17. EV1 = EVOL 'BLEU' 'MANU' (PROG -1. -0.5 0.5 1. 2.)
  18. (PROG 1.E-3 0. 0. 5.E-4 7E-2) ;
  19. DESS EV1 'TITR' ' Sans option' ;
  20.  
  21. DESS EV1 'XBOR' -1.5 2.5
  22. 'TITR' ' Bornes sur X [-1.5 2.5] ' ;
  23.  
  24. DESS EV1 'YBOR' -0.5E-2 7.5E-2
  25. 'TITR' ' Bornes sur Y [-0.5E-2 7.5E-2] ' ;
  26.  
  27. DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
  28. 'TITR' ' Bornes sur X & Y ' ;
  29.  
  30. DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
  31. 'XGRA' +0.5 'YGRA' +0.5E-2
  32. 'TITR' ' Bornes sur X-Y & les intervalles de graduations donnes ' ;
  33.  
  34. DESS EV1 'XBOR' -1.5 2.5 'YBOR' -0.5E-2 7.5E-2
  35. 'XGRA' +0.5 'YGRA' +0.5E-2
  36. 'AXES' 'GRIL' 'POIN'
  37. 'TITR' ' La grille & les axes en PLUS ' ;
  38.  
  39.  
  40. * ON TESTE ENSUITE D'AUTRES OPTIONS AVEC UN SYSTEME 2DDL **************
  41. * LEGENDE, TITRES, CENTREMENT, GRILLE ...
  42. * (BP)
  43. * w donné en rad/s
  44. T1=2.;
  45. w1=(2.*pi)/T1;
  46. T2=5.;
  47. w2=(2.*pi)/T2;
  48. xp = prog 0. PAS 0.1 20.;
  49.  
  50. * castem utilise les degrés
  51. yp = 100. * (sin ((180/pi)*w1*xp));
  52. yp2 = 110. * (sin ((180/pi)*w2*xp));
  53.  
  54. ev1 = evol bleu manu xp yp;
  55. ev2 = evol roug manu xp yp2;
  56.  
  57. tdess1 = tabl;
  58. tdess1 . 1 = mot ' REMP MARQ PLUS REGU';
  59. tdess1 . 'TITRE' = tabl;
  60. ent1 = enti w1;
  61. decim1 = (enti (10.*w1)) - (10*ent1);
  62. ent2 = enti w2;
  63. decim2 = (enti (10.*w2)) - (10*ent2);
  64. tdess1 . 'TITRE' . 1 = chai '\W=' ent1 '.' decim1 'rad.s^{-1}';
  65. tdess1 . 2 = mot 'MARQ ROND REGU';
  66. tdess1 . 'TITRE' . 2 = chai '\W=' ent2 '.' decim2 'rad.s^{-1}';
  67.  
  68. DESS (ev1 et ev2)
  69. 'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
  70. 'TITX' 't(s)' 'POSX' 'CENT'
  71. 'TITY' 'Dépl u_{A}^{1} (m)' 'POSY' 'CENT'
  72. 'LEGE' 'SO' tdess1;
  73.  
  74. DESS (ev1 et ev2)
  75. 'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
  76. 'TITX' 't(s)' 'POSX' 'CENT'
  77. 'YBOR' -110. 110. 'YGRA' 22
  78. 'TITY' 'Dépl u_{A} (m^{1})' 'POSY' 'CENT'
  79. 'LEGE' tdess1;
  80.  
  81. DESS (ev1 et ev2)
  82. 'TITR' 'Déplacement x_{\W}(t) = sin(\Wt)'
  83. 'TITX' 't(s)'
  84. 'XBOR' 0. T2
  85. 'YBOR' -110. 110. 'YGRA' 22.
  86. 'TITY' 'Déplacement x (m)'
  87. 'LEGE' tdess1;
  88.  
  89. *** systeme 2ddl : fonction de tranfert : amplitude et phase ***
  90. ev1tot = VIDE 'EVOLUTION';
  91. ev2tot = VIDE 'EVOLUTION';
  92. * liscoul = mots VIOL BLEU TURQ BLEU ORAN AZUR ROUG ;
  93. liscoul = mots VIOL BLEU TURQ OLIV ORAN AZUR ROUG ;
  94. tdess2 = tabl;
  95. tdess2 . 1 = mot 'MARQ PLUS REGU';
  96. tdess2 . 2 = mot 'MARQ ROND REGU';
  97. tdess2 . 3 = mot 'MARQ CROI REGU';
  98. tdess2 . 4 = mot 'MARQ CARR REGU';
  99. tdess2 . 5 = mot 'MARQ TRIU REGU';
  100. tdess2 . 6 = mot 'MARQ ETOI REGU';
  101. tdess2 . 7 = mot 'MARQ TRID REGU';
  102. tdess2 . 'TITRE' = tabl;
  103.  
  104. xi1 = 0.02 ; xi2 = 0.05;
  105. xi1p = prog 0.001 0.002 0.01 0.02 0.05 0.1 0.15 ;
  106. xi2p = xi1p * (xi2 / xi1);
  107.  
  108. nxi = dime xi1p;
  109. ixi = 0;
  110. repe Bxi nxi; ixi = ixi + 1 ;
  111.  
  112. xi1 = extr xi1p ixi;
  113. xi2 = extr xi2p ixi;
  114. mess ixi ' xi_1=' xi1 ' xi_2=' xi2 ;
  115.  
  116. moxi1 = chai (enti (1000 * (xi1 - (enti xi1))));
  117. si (ega (dime moxi1) 1); moxi1 = chai '00' moxi1; fins;
  118. si (ega (dime moxi1) 2); moxi1 = chai '0' moxi1; fins;
  119. moxi1 = chai (enti xi1) '.' moxi1;
  120. tdess2 . 'TITRE' . ixi = chai '\x_{1}=' (moxi1);
  121.  
  122. m1=2.; k1 = m1*(w1**2); c1 = 2.*xi1*w1*k1;
  123. m2=1.; k2 = m2*(w2**2); c2 = 2.*xi2*w2*k2;
  124. mess w1 m1 k1 c1;
  125. mess w2 m2 k2 c2;
  126.  
  127. wpadim = prog 0. PAS 0.002 2.;
  128. wp = w1 * wpadim;
  129. np = dime wp;
  130. unp = prog np*1.;
  131.  
  132. A_R = ((k1 + k2)*unp) - ((wp**2)*m1);
  133. A_I = wp*(c1 + c2);
  134. B_R = -1.*k2*unp;
  135. B_I = -1.*c2*wp;
  136. D_R = (k2*unp) - ((wp**2)*m2);
  137. D_I = wp*c2;
  138.  
  139. Den_R = (A_R*D_R) - (A_I*D_I) - (B_R**2) + (B_I**2) ;
  140. Den_I = (A_R*D_I) + (A_I*D_R) - (2.*B_R*B_I);
  141. Den2 = (Den_R**2) + (Den_I**2);
  142.  
  143. * pour simplifier on excite seulement en F1 et en phase
  144. F1_R = 1.;
  145. Num11_R = ((Den_R*D_R) - (Den_I*D_I)) * F1_R;
  146. Num11_I = ((Den_R*D_I) - (Den_I*D_R)) * F1_R;
  147. Num12_R = -1.*((Den_R*B_R) - (Den_I*B_I)) * F1_R;
  148. Num12_I = -1.*((Den_R*B_I) - (Den_I*B_R)) * F1_R;
  149.  
  150. X1_R = Num11_R / Den2;
  151. X1_I = Num11_I / Den2;
  152. X2_R = Num12_R / Den2;
  153. X2_I = Num12_I / Den2;
  154.  
  155. X1_AMP = ((X1_R**2)+(X1_I**2))**0.5;
  156. X1_PHA = ATG X1_I X1_R;
  157. X2_AMP = ((X2_R**2)+(X2_I**2))**0.5;
  158. X2_PHA = ATG X2_I X2_R;
  159.  
  160. ev1_amp = evol BLEU manu wpadim X1_AMP;
  161. ev2_amp = evol ROUG manu wpadim X2_AMP;
  162. ev1_pha = evol BLEU manu wpadim X1_PHA;
  163. ev2_pha = evol ROUG manu wpadim X2_PHA;
  164.  
  165. si (xi1 ega 0.02);
  166. tdess1 . 'TITRE' . 1 = mot 'X_{1}';
  167. tdess1 . 'TITRE' . 2 = mot 'X_{2}';
  168.  
  169. * 'Y LOG + titres X et Y centres + LEGE XY'
  170. tit2ddl = chai 'Système à 2ddl : '
  171. '\w_{1}=0.5 \w_{2}=0.2 \x_{1}=2% \x_{2}=5%';
  172. DESS (ev1_amp et ev2_amp)
  173. 'LOGY' 'YBOR' 1.E-3 1.E1
  174. 'GRIL' 'POIN' 'GRIS'
  175. 'TITR' tit2ddl
  176. 'TITX' '\W (Hz)' 'POSX' 'CENT'
  177. 'TITY' 'amplitude |x| (m)' 'POSY' 'CENT'
  178. 'LEGE' 'XY' 1.5 0.8 tdess1;
  179.  
  180. DESS (ev1_pha et ev2_pha)
  181. 'YBOR' -180. 180. 'YGRA' 90.
  182. 'GRIL' 'POIN' 'GRIS'
  183. 'TITR' tit2ddl
  184. 'TITX' '\W (Hz)' 'POSX' 'CENT'
  185. 'TITY' 'phase \j(x) (m)' 'POSY' 'CENT'
  186. 'LEGE' 'XY' 1.5 160 tdess1;
  187.  
  188. fins;
  189.  
  190. ev1tot = ev1tot et (ev1_amp coul (extr liscoul ixi));
  191. ev2tot = ev2tot et (ev2_amp coul (extr liscoul ixi));
  192.  
  193. fin Bxi;
  194.  
  195.  
  196. * ON CONTINUE AVEC D'AUTRES OPTIONS
  197. * (BP)
  198.  
  199. tit2 = chai 'Evolution avec l`amortissement \x';
  200. DESS ev1tot
  201. 'GRIL' 'POIN' 'GRIS' 'TITR' tit2
  202. LOGY
  203. 'TITX' '\W (Hz)' 'POSX' 'CENT'
  204. 'TITY' '|X_{1}| (m)' 'POSY' 'CENT'
  205. 'LEGE' 'XY' 1.45 9. tdess2;
  206. *rem : 'amplitude |X_{1}| (m)' est trop long (limite a 20 caracteres)!
  207. * 'TITY' 'amplitude |X_{1}| (m)' 'POSY' 'CENT'
  208.  
  209. * test de loption LIGNE_VARIABLE
  210. * on définit les style des (np-1) segments
  211. * (=0 lign, =2 tirr, ... =5 pointilles)
  212. nps3 = np / 3;
  213. ltirr2 = lect nps3*0 nps3*5 (np - 1 - (2*nps3))*1;
  214. ltirr3 = lect nps3*1 nps3*2 (np - 1 - (2*nps3))*0;
  215. tdess2 . 'LIGNE_VARIABLE' = TABL;
  216. tdess2 . 'LIGNE_VARIABLE' . 2 = ltirr2;
  217. tdess2 . 'LIGNE_VARIABLE' . 3 = ltirr2;
  218. tdess2 . 'LIGNE_VARIABLE' . 5 = ltirr3;
  219. DESS ev1tot
  220. 'GRIL' 'POIN' 'GRIS' 'TITR' tit2
  221. LOGY
  222. 'TITX' '\W (Hz)' 'POSX' 'CENT'
  223. 'TITY' '|X_{1}| (m)' 'POSY' 'CENT'
  224. 'LEGE' 'XY' 1.45 9. tdess2;
  225.  
  226. *----------------------------------------------------------------------*
  227. * cas-test de la directive @HISTOGR *
  228. *----------------------------------------------------------------------*
  229.  
  230. NN = 10000 ;
  231.  
  232. LTIRAG1 = BRUI 'BLAN' 'GAUS' 0. 2. NN ;
  233. LTIRAG1 = LTIRAG1 -
  234. (MASQ LTIRAG1 'INFERIEUR' 0.) ;
  235. LTIRAG1 = ENTI LTIRAG1 ;
  236.  
  237. IMIN1 = MINI LTIRAG1 ;
  238. NC = (MAXI LTIRAG1) - IMIN1 + 1 ;
  239. LCOMPT1 = PROG NC*0. ;
  240.  
  241. REPE BLOC1 NN ;
  242. IPOS1 =(EXTR LTIRAG1 &BLOC1)
  243. + 1 - IMIN1 ;
  244. ICOMPT1 = EXTR LCOMPT1 IPOS1 ;
  245. REMP LCOMPT1 IPOS1 (ICOMPT1 + 1.) ;
  246. FIN BLOC1 ;
  247.  
  248. TOPT1 = TABL ;
  249. TOPT1 . 'HPOS' = FLOT IMIN1 ;
  250. TOPT1 . 'DESS' = 'GRIL AXES' ;
  251. TOPT1 . 'COUL' = mot 'OCEA';
  252.  
  253. @HISTOGR LCOMPT1 TOPT1 FAUX ;
  254.  
  255.  
  256. *------------------------------------------------------*
  257. * Test des couleurs *
  258. *------------------------------------------------------*
  259.  
  260. coul3 = mots 'INDI' 'VIOL' 'MARI' 'BLEU' 'AZUR' 'CYAN'
  261. 'TURQ' 'OCEA' 'BOUT' 'VERT' 'OLIV' 'LIME'
  262. 'JAUN' 'OR' 'BRON'
  263. 'ORAN' 'CORA' 'ROUG' 'BRIQ'
  264. 'BRUN' 'CARA' 'BEIG' 'KAKI' 'POUR' 'ROSE' 'PEAU' 'LAVA'
  265. 'BLAN' 'GRIS' 'NOIR' ;
  266. n3 = dime coul3;
  267. xx = prog 0. 1.;
  268. yy = prog 1. 1.;
  269. ev = vide EVOLUTIO;
  270. T = tabl;
  271. repe b n3;
  272. c = extr coul3 &b;
  273. ev =ev et (evol c 'MANU' xx (&b * yy));
  274. T . &b = chai 'LABEL ' c ' REGU';
  275. fin b;
  276.  
  277. dess ev T XBOR 0. 1.2;
  278.  
  279.  
  280. FIN ;
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales