> | restart; |
Размеры
> | a:=4: b:=2: c:=2: |
Скорость и масса
> | Vx:=12: Vy:=2: Vz:=0: m:=6: |
Координаты
> | x:=b,0,0,b, 0,0,0: |
> | y:=0,0,a,a, 0,2,6: |
> | z:=c,c,c,c, 0,0,0: |
> | for i to 7 do r[i]:=[x[i],y[i],z[i]]:od: |
> | with(LinearAlgebra): |
> | with(plots):with(plottools): |
Рисуем пластинку
> | r1:=PLOT3D(CURVES([r[1],r[2],r[3],r[4],r[1]])): |
Рисуем стержни
> | r2:=PLOT3D(CURVES([r[1],r[5]],[r[2],r[6]],[r[3],r[7]])): |
> | display(r1,r2,axes=NORMAL); |
Радиусы
> | ra:=Vector([x[1],y[1],z[1]]): |
> | rb:=Vector([x[2],y[2],z[2]]): |
> | rc:=Vector([x[3],y[3],z[3]]): |
> | rd:=Vector([x[4],y[4],z[4]]): |
> | ra1:=Vector([x[5],y[5],z[5]]): |
> | rb1:=Vector([x[6],y[6],z[6]]): |
> | rc1:=Vector([x[7],y[7],z[7]]):; |
> | DA:=ra-rd; |
> | DB:=rb-rd; |
> | DC:=rc-rd; |
> | AA1:=ra-ra1; |
> | BB1:=rb-rb1; |
> | CC1:=rc-rc1; |
Вектора скоростей
> | Va:=Vector(3,va): |
> | Vb:=Vector(3,vb): |
> | Vc:=Vector(3,vc): |
Известная скорость
> | Vd:=Vector([Vx,Vy,Vz]): |
Неизвестная угловая скорость
> | w:=Vector([wx,wy,wz]): |
Уравнения Эйлера (14.12)
> | eq1:=-Va+Vd+CrossProduct(w,DA); |
> | eq2:=-Vb+Vd+CrossProduct(w,DB); |
> | eq3:=-Vc+Vd+CrossProduct(w,DC); |
Связи (14.13)
> | eq4:=DotProduct(Va,AA1,conjugate=false); |
> | eq5:=DotProduct(Vb,BB1,conjugate=false); |
> | eq6:=DotProduct(Vc,CC1,conjugate=false); |
12 уравнений
> | EQ:=seq(eq1[i],i=1..3),seq(eq2[i],i=1..3),seq(eq3[i],i=1..3),eq4,eq5,eq6: |
Решение
> | solve({EQ},{seq(va(i),i=1..3),seq(vb(i),i=1..3),seq(vc(i),i=1..3),wx,wy,wz});assign(%); |
Радиус-вектор центра масс
> | Rc:=Vector([b/2,a/2,c]); |
> | Dr:=Rc-rd; |
Ищем скорость центра масс (14.14)
> | Vcm:=Vd+CrossProduct(w,Dr); |
Моменты инерции
> | Jx:=m*a^2/12:Jy:=m*b^2/12:Jz:=Jx+Jy: |
> | J:=Matrix([[Jx,0,0],[0,Jy,0],[0,0,Jz]]); |
Кин.энергия
> | T:=m*DotProduct(Vcm,Vcm,conjugate=false)/2+DotProduct(w,J.w,conjugate=false)/2; |