Тригонометрия поршня

А вот хорошая задача на практическое применение тригонометрии: выразить для системы «поршень-шатун-маховик» положение поршня через угол поворота маховика.


Может быть выведено не одним способом — например, так, как на рисунке.

steamЗдесь радиус прикрепления шатуна к маховику равен \(\varrho\), а длина шатуна есть \(R=\text{const}\). Очевидно, \(R>2\varrho\).

Эта модель прекрасно подходит для визуализации на каком-либо языке программирования, особенно имеющем средства работы со спрайтами. Делается несложно, выглядит красиво.

sb-steamВот оно на Smart BASIC для iPad:

option angle degrees
option sprite pos central

sprite "wheel" begin 300,300
 fill color 1,0,0 ! fill circle 150,150 size 150
 fill color 0,0,0 ! fill circle 150,150 size 135
 fill color 1,0,0 ! fill rect 150,150 size 140,8
 fill rect 150,150 size 8,140 ! fill rect 220,150 size 19,19
 fill circle 150,150 size 30.5
 fill color .5,0,0 ! fill circle 150,150 size 15
sprite end

sprite "conrod" begin 320,10
 fill color .7,.7,.7 ! fill rect 0,0 to 320,10
sprite end

sprite "f" begin 30,30
 fill color .5,0,0 ! fill circle 15,15 size 14
sprite end

sprite "piston" begin 270,60
 fill color .7,.7,.7
 fill rect 0,23 to 280,37
 fill rect 190,0 to 270,60
sprite end

graphics
graphics clear 0,0,0

x0=250 ! y0=350
fill color 1,0,0 ! fill rect x0+413,y0-47 to x0+667,y0+47
fill color 1,1,0 ! fill rect x0+429,y0-31 to x0+651,y0+31
fill rect x0+429,y0-31 to x0+439,y0-47
fill rect x0+641,y0-31 to x0+651,y0-47
fill rect x0+529,y0+31 to x0+551,y0+47

sprite "wheel" at x0,y0 ! sprite "wheel" show
sprite "f" show ! sprite "f" order 110
sprite "f" copy "g" ! sprite "g" show
sprite "piston" show
sprite "conrod" order 100 ! sprite "conrod" show

while 1
 wang=(wang+1)%360
 sprite "wheel" at x0,y0 angle wang
 beta=-asin(7*sin(wang)/32)
 Ax=70*cos(wang) ! Ay=70*sin(wang)
 Bx=Ax+320*cos(beta)
 sprite "f" at x0+Ax,y0+Ay
 sprite "g" at x0+Bx,y0
 sprite "conrod" at x0+(Ax+Bx)/2,y0+Ay/2 angle beta
 sprite "piston" at x0+125+Bx,y0
 pause 0.002
end while