Meccanismi di trasmissione – Ruote di frizione

Trasmissione del moto rotatorio

Lo studio dei meccanismi di trasmissione può iniziare esaminando la trasmissione di un moto rotatorio da un organo meccanico ad un altro. A parte i calcoli tutto sommato abbastanza elementari lo scopo degli esercizi è quello di verificare la proporzionalità inversa tra numero di giri e la coppia.
Esercizio di calcolo della coppia e del numero di giri per ruote di frizione
La circonferenza n° 1 rappresenta un albero motore (o conduttore) la 2° circonferenza rappresenta l’albero condotto. Download gratuito delle esercitazioni – Download

CODICE IN MATLAB

Per ora il codice è abbastanza semplice. La parte più ragionata riguarda il disegno di due o tre circonferenze tangenti. Il raggio dei cerchi viene estratto tramite una funzione random.
  1. % Autori
  2. % Prof. Danilo Pasquini IPSIA Parodi Delfino, Colleferro (Roma)
  3. % Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa) 
  4. % trasmissione tramite ruote di frizione
  5. %
  6. function trasmissione ()
  7. global esercizio_attuale
  8. global fid1
  9. global scala
  10. global pos_y_nuova 
  11. scala = 3.54;
  12. esercizio_attuale = 0
  13. clc
  14. testo = num2str(ceil(rand *10000))
  15. nomefile = ['c:\test\Ruote_frizione_' testo '.svg'];
  16. nomefile1 = ['c:\test\Ruote_frizione_' testo '.txt'];
  17. fid = fopen([nomefile], 'wt');
  18. fid1 = fopen([nomefile1], 'wt');
  19. fprintf(fid, ['<!--?xml version="1.0" encoding="iso-8859-1" standalone="no"?-->  \n']);
  20. fprintf(fid, ['\n']);
  21. fprintf(fid, ['\n']);
  22. portata_strumento = 1000
  23. lunghezza_casuale = (ceil (rand*portata_strumento))/  100
  24. [fid] = scrivere_2 (fid,25,12,'left','2.5','Alunno: _________________________________________________ Classe: ___________ Data: _____________');
  25. [fid] = scrivere_2 (fid,10,283,'right','2.5','www.idroslab.altervista.org');
  26. [fid] = scrivere_2 (fid,10,287,'right','2.5','www.facebook.com/idroslab');
  27. [fid] = scrivere_2 (fid,124,285,'right','2','Autori: Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)');
  28. [fid] = scrivere_2 (fid,132,288,'right','2','Prof. Danilo Pasquini IPSIA P.P. Delfino, Colleferro (Roma)');
  29. [fid] = scrivere (fid,15,8,'left','5',testo);
  30.  
  31. for i=1:2
  32.     for j=[15, 210-100]
  33.         esercizio_attuale = esercizio_attuale +1
  34.         disegna_trasmissione (fid, j)
  35.     end
  36. end
  37.  
  38. fprintf(fid, [' \n']);
  39. fclose(fid)
  40. stringa_dos = ['c:\Programmi\Inkscape\inkscape -f ' nomefile ' -A '  'C:\test\Ruote_frizione_' testo '.pdf']
  41. dos(stringa_dos)
  42. fclose (fid1)
  43. load chirp;
  44. y1 = y; Fs1 = Fs;
  45. wavplay(y,Fs)
  46.  
  47. % -------------------------------------------------------------------------
  48.  
  49. function disegna_trasmissione (fid,pos_x)
  50. global fid1
  51. global esercizio_attuale
  52. global pos_y_nuova 
  53. altezza_testo_1 = 9;
  54. altezza_testo_2 = 7;
  55. colore1 = 0;
  56. colore2 = 0;
  57. colore3 = 0;
  58. raggio_prima_ruota = 10+rand*15
  59. if (esercizio_attuale &gt; 0 ) 
  60.     pos_y = 25;
  61. end
  62. if (esercizio_attuale &gt; 2 ) 
  63.     pos_y = pos_y_nuova; 
  64. end
  65. pos_x = pos_x + raggio_prima_ruota
  66. pos_y = pos_y + raggio_prima_ruota
  67. [fid] = cerchio (fid,pos_x,pos_y,raggio_prima_ruota ,colore1,colore2,colore3)
  68. [fid] = scrivere (fid,pos_x+raggio_prima_ruota/2,pos_y-raggio_prima_ruota/2,'middle',num2str(altezza_testo_1),'1')
  69. [fid] = scrivere_quota (fid, pos_x, pos_y, 0, 'middle', num2str(altezza_testo_2), raggio_prima_ruota*2);
  70. [fid] = arco_di_linee (fid,pos_x, pos_y, raggio_prima_ruota*2/3, colore1, colore2, colore3, rand);
  71. cateto_x =  10 + rand * 10;
  72. centro2_x = pos_x + raggio_prima_ruota + cateto_x;
  73. cateto_y = rand * 10;
  74. centro2_y = pos_y + cateto_y;
  75. raggio_seconda_ruota = sqrt ((raggio_prima_ruota + cateto_x)^2+(cateto_y)^2) - raggio_prima_ruota
  76. [fid] = cerchio (fid,centro2_x,centro2_y,raggio_seconda_ruota ,colore1,colore2,colore3)
  77. [fid] = scrivere (fid,centro2_x+raggio_seconda_ruota/2,centro2_y-raggio_seconda_ruota/2,'middle',num2str(altezza_testo_1),'2')
  78. [fid] = scrivere_quota (fid, centro2_x,centro2_y, 0, 'middle', num2str(altezza_testo_2), raggio_seconda_ruota*2)
  79. if (esercizio_attuale == 2 ||  esercizio_attuale == 4)
  80.     cateto_x =  15 + rand * 10;
  81.     centro3_x = centro2_x  + cateto_x;
  82.     cateto_y = 10 + rand * 10;
  83.     centro3_y = centro2_y + raggio_seconda_ruota + cateto_y;
  84.     raggio_terza_ruota = sqrt (( cateto_x)^2+(raggio_seconda_ruota +cateto_y)^2) - raggio_seconda_ruota
  85.     [fid] = cerchio (fid,centro3_x,centro3_y,raggio_terza_ruota ,colore1,colore2,colore3)
  86.     [fid] = scrivere (fid,centro3_x+raggio_terza_ruota/2,centro3_y-raggio_terza_ruota/2,'middle',num2str(altezza_testo_1),'3')
  87.     [fid] = scrivere_quota (fid, centro3_x,centro3_y, 0, 'middle', num2str(altezza_testo_2), raggio_terza_ruota*2)
  88. end
  89. n1 = 10*round(100 + rand * 900);
  90. acapo = 9
  91. [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5,'left',num2str(altezza_testo_1),['n1= ', num2str(n1), ' rpm']);
  92. i=1
  93. [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['n2= ____________ rpm']);
  94. n2= n1*raggio_prima_ruota/raggio_seconda_ruota 
  95. fprintf(fid1, ['n2: ' num2str(n2)  ' \n'])
  96. if (esercizio_attuale == 2 ||  esercizio_attuale == 4)
  97.     i=i+1
  98.     [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['n3= ____________ rpm']);
  99.     fprintf(fid1, ['n3: ' num2str(n2*raggio_seconda_ruota/raggio_terza_ruota)  ' \n'])
  100. end
  101. coppia1 = 10*round(10 + rand * 90)
  102. i=i+1
  103. [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['Coppia 1= ', num2str(coppia1), ' Nm']);
  104. i=i+1
  105. [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['Coppia 2= ____________ Nm']);
  106. coppia2 = (coppia1/raggio_prima_ruota/1000) * raggio_seconda_ruota/1000
  107. fprintf(fid1, ['coppia2: ' num2str(coppia2)  ' \n'])
  108.  
  109. if (esercizio_attuale == 2 ||  esercizio_attuale == 4)
  110.     i=i+1
  111.     [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['Coppia 3= ____________ Nm']);
  112.     coppia3 = (coppia2/raggio_seconda_ruota/1000) * raggio_terza_ruota/1000
  113.     fprintf(fid1, ['coppia3: ' num2str(coppia3)  ' \n'])
  114. end
  115. i=i+1
  116.  
  117. [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['Potenza = ____________ W = ____________ kW ']);
  118. i=i+1
  119.     [fid] = scrivere (fid,pos_x-raggio_prima_ruota,pos_y + raggio_prima_ruota * 1.5 + i*acapo,'left',num2str(altezza_testo_1),['Indicare i versi di rotazione']);
  120. if (esercizio_attuale == 1) 
  121.     pos_y_nuova = pos_y + raggio_prima_ruota * 1.5 + (i+1.5)*acapo;  
  122. end
  123. if (esercizio_attuale == 2) 
  124.     pos_y_nuova = max (pos_y_nuova ,pos_y + raggio_prima_ruota * 1.5 + (i+1.5)*acapo);  
  125. end
  126. fprintf(fid1, [' \n'])
  127.  
  128. % -------------------------------------------------------------------------
  129.  
  130. function [fid] = arco_di_linee (fid,pos_x, pos_y, raggio, colore1, colore2, colore3, verso)
  131. angolo_iniziale = -120*pi/180
  132. angolo = 90*pi/180
  133. x1 = pos_x + raggio * sin(angolo_iniziale)
  134. y1 = pos_y + raggio * cos(angolo_iniziale)
  135.  
  136. numero_segmenti = 10
  137. for i=1:numero_segmenti
  138.     x2 = pos_x + raggio * sin(angolo_iniziale+i*angolo/numero_segmenti)
  139.     y2 = pos_y + raggio * cos(angolo_iniziale+i*angolo/numero_segmenti)
  140.     [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,2)
  141.     x1 = x2;
  142.     y1 = y2;
  143. end   
  144.     tick = 0.06 *raggio
  145.     tick_i = 1
  146. if verso &gt; 0.5
  147.     x10 = pos_x + (raggio+tick) * sin(angolo_iniziale+(numero_segmenti-tick_i)*angolo/numero_segmenti)
  148.     y10 = pos_y + (raggio+tick) * cos(angolo_iniziale+(numero_segmenti-tick_i)*angolo/numero_segmenti)
  149.     [fid] = linea (fid,x10,y10,x2,y2,colore1,colore2,colore3,2)
  150.     tick = 0.05 *raggio
  151.     tick_i = 1
  152.     x10 = pos_x + (raggio-tick) * sin(angolo_iniziale+(numero_segmenti-tick_i)*angolo/numero_segmenti)
  153.     y10 = pos_y + (raggio-tick) * cos(angolo_iniziale+(numero_segmenti-tick_i)*angolo/numero_segmenti)
  154.     [fid] = linea (fid,x10,y10,x2,y2,colore1,colore2,colore3,2)
  155. end
  156. if verso &lt; 0.5
  157.     x1 = pos_x + raggio * sin(angolo_iniziale)
  158.     y1 = pos_y + raggio * cos(angolo_iniziale)
  159.  
  160.     x10 = pos_x + (raggio+tick) * sin(angolo_iniziale+(tick_i)*angolo/numero_segmenti)
  161.     y10 = pos_y + (raggio+tick) * cos(angolo_iniziale+(tick_i)*angolo/numero_segmenti)
  162.     [fid] = linea (fid,x10,y10,x1,y1,colore1,colore2,colore3,2)
  163.     tick = 0.05 *raggio
  164.     tick_i = 1
  165.     x10 = pos_x + (raggio-tick) * sin(angolo_iniziale+(tick_i)*angolo/numero_segmenti)
  166.     y10 = pos_y + (raggio-tick) * cos(angolo_iniziale+(tick_i)*angolo/numero_segmenti)
  167.     [fid] = linea (fid,x10,y10,x1,y1,colore1,colore2,colore3,2)
  168. end
  169.  
  170. % -------------------------------------------------------------------------
  171.  
  172. function [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
  173. global scala
  174. fprintf(fid, [' \n']);              
  175.  
  176.  
  177. function [fid] = linea_puntini (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
  178. scala = 10;
  179. fprintf(fid, [' \n']);              
  180.  
  181. % -------------------------------------------------------------------------
  182.  
  183. function [fid] = cerchio (fid,coord_x,coord_y,raggio,colore1,colore2,colore3)
  184. global scala
  185. fprintf(fid, [' \n']);
  186.  
  187. % --------------------------------------------------------------------------      
  188.  
  189. function [fid] = rettangolo (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
  190. global scala      
  191. fprintf(fid, [' \n']);
  192.  
  193. % --------------------------------------------------------------------------      
  194.  
  195. function [fid] = commento (fid,testo_commento)
  196.  
  197. fprintf(fid, ['/* '  '\n']);
  198. fprintf(fid, [testo_commento  '\n']);
  199. fprintf(fid, ['*/ '  '\n']);
  200.  
  201. % --------------------------------------------------------------------------      
  202.  
  203. function [fid] = scrivere (fid,x1,y1,giustificazione,altezza_testo,testo)
  204. global scala
  205. fprintf(fid, ['' testo '' '\n']);
  206.  
  207. % --------------------------------------------------------------------------      
  208.  
  209. function [fid] = scrivere_2 (fid,x1,y1,giustificazione,altezza_testo,testo)
  210. global scala
  211. altezz = str2num(altezza_testo);
  212. fprintf(fid, ['' testo '' '\n']);
  213.  
  214. % --------------------------------------------------------------------------      
  215.  
  216. function [fid] = scrivere_quota (fid,x1,y1,angolo,giustificazione,altezza_testo,numero_quota)
  217. global scala
  218.  
  219. testo = [num2str(round(numero_quota)), ' mm'];
  220. fprintf(fid, ['<!-- Scrivere quota -->  \n']);
  221.  
  222. fprintf(fid, ['' testo '' '\n']);
  223. if (angolo == 0)
  224.     freccia = 2
  225.     y1 = y1 + freccia/2 
  226.     [fid] = linea (fid,x1,y1,(x1+numero_quota/2),y1,0,0,0,1)
  227.     fprintf(fid, ['<!-- freccia -->  \n']);
  228.     [fid] = linea (fid,x1+numero_quota/2-freccia, y1-freccia/3, x1+numero_quota/2,y1,0,0,0,1)
  229.     [fid] = linea (fid,x1+numero_quota/2-freccia, y1+freccia/3, x1+numero_quota/2,y1,0,0,0,1)
  230.     fprintf(fid, ['<!-- fine freccia -->  \n']);
  231.     [fid] = linea (fid,x1,y1,(x1-numero_quota/2),y1,0,0,0,1)
  232.     fprintf(fid, ['<!-- freccia -->  \n']);
  233.     [fid] = linea (fid,x1-numero_quota/2+freccia, y1-freccia/3, x1-numero_quota/2,y1,0,0,0,1)
  234.     [fid] = linea (fid,x1-numero_quota/2+freccia, y1+freccia/3, x1-numero_quota/2,y1,0,0,0,1)
  235.     fprintf(fid, ['<!-- fine freccia -->  \n']);
  236. end
  237. if (angolo == 90 || angolo == 270)
  238.     freccia = 2
  239.     if (angolo==90)
  240.        x1 = x1 - freccia/2 
  241.     end
  242.     if (angolo==270)
  243.        x1 = x1 + freccia/2 
  244.     end
  245.     [fid] = linea (fid,x1,y1,x1,y1+numero_quota/2,0,0,0,1)
  246.     fprintf(fid, ['<!-- freccia -->  \n']);
  247.     [fid] = linea (fid,x1-freccia/3, y1  +numero_quota/2-freccia, x1,y1+numero_quota/2,0,0,0,1)
  248.     [fid] = linea (fid,x1+freccia/3, y1+numero_quota/2-freccia,x1,y1+numero_quota/2,0,0,0,1)
  249.     fprintf(fid, ['<!-- fine freccia -->  \n']);
  250.  
  251.     [fid] = linea (fid,x1,y1,x1,y1-numero_quota/2,0,0,0,1)
  252.     fprintf(fid, ['<!-- freccia -->  \n']);
  253.     [fid] = linea (fid,x1-freccia/3, y1-numero_quota/2+freccia, x1,y1-numero_quota/2,0,0,0,1)
  254.     [fid] = linea (fid,x1+freccia/3, y1-numero_quota/2+freccia, x1,y1-numero_quota/2,0,0,0,1)
  255.     fprintf(fid, ['<!-- fine freccia -->  \n']);
  256. end
  257.  
  258. fprintf(fid, ['<!-- -->  \n']);
wbcr_php_snippet id=”1345″