Программа 34. Задача 60. Расчет статически неопределимой стержневой системы

>    restart;

>    read "C:\\Podpr1.m":

>    n:=4:# Число опорных стержней

>    with(LinearAlgebra):

Координаты шарниров на пластине

>    xb:=<1,3,3,1>: yb:=<3,3,1,1>:

Координаты опорных шарниров

>    x:=<0,4,2,1>:  y:=<2,2,0,0>:

Длины  и орты стержней

>    for i to n do

>     S[i]:=Vector([x[i]-xb[i],y[i]-yb[i],0]):

>     L[i]:=VectorNorm(S[i],2);

>     s1[i]:=s[i]*Normalize(S[i],Euclidean);

>     r[i]:=Vector([xb[i],yb[i],0]):

>    od:

Координаты точек приложения сил

>    h:=1:# плечо пары (для рисунка)

>    r[n+1]:=Vector([2,2,0]):

>    r[n+2]:=Vector([2+h/2,2,0]):

>    r[n+3]:=Vector([2-h/2,2,0]):

Нагрузки

>    m0:=10:# Момент

>    s1[n+1]:=Vector([0,-5,0]):

>    s1[n+2]:=Vector([0,m0/h,0]):

>    s1[n+3]:=Vector([0,-m0/h,0]):

>    Моменты:=add(CrossProduct(r[i],s1[i]),i=1..n+1):

>    ОртX:=Vector([1,0,0]): ОртY:=Vector([0,1,0]):

>    eq[1]:=add(DotProduct(ОртX,s1[i]),i=1..n+1);

>    eq[2]:=add(DotProduct(ОртY,s1[i]),i=1..n+1);

>    eq[3]:=Моменты[3]+m0;

eq[1] := -1/2*s[1]*2^(1/2)+1/2*s[2]*2^(1/2)-1/2*s[3]*2^(1/2)

eq[2] := -5-1/2*s[1]*2^(1/2)-1/2*s[2]*2^(1/2)-1/2*s[3]*2^(1/2)-s[4]

eq[3] := s[1]*2^(1/2)-3*s[2]*2^(1/2)-s[3]*2^(1/2)-s[4]

>    assume(vx,real,vy,real,w,real);interface(showassumed=0):

>    V[1]:=Vector([vx,vy,0]):

>    omega:=Vector([0,0,w]):

>    for i from 2 to n do

>     V[i]:=V[1]+CrossProduct(omega,r[i]-r[1]):

>    od;

V[2] := Vector(%id = 150715820)

V[3] := Vector(%id = 150716332)

V[4] := Vector(%id = 150716844)

>    for i to n do

>     Eq[i]:=DL[i]-simplify(DotProduct(V[i],s1[i])/s[i]);

>    od;

Eq[1] := DL[1]+1/2*2^(1/2)*(vx+vy)

Eq[2] := DL[2]-1/2*2^(1/2)*(vx-vy-2*w)

Eq[3] := DL[3]+1/2*2^(1/2)*(vx+4*w+vy)

Eq[4] := DL[4]+vy

>    z:=solve({seq(Eq[k],k=1..4)},{vx,vy,w,DL[1]}):

>    eq[n]:=DL[1]-subs(z,DL[1]);

>    for i to n do  DL[i]:=s[i]*L[i]/(E*F);od;

>    eq[n];

>    evalf(solve({seq(eq[i],i=1..n)},{seq(s[i],i=1..n)}));

Warning, solve may be ignoring assumptions on the input variables.

eq[4] := DL[1]+1/6*2^(1/2)*(2*2^(1/2)*DL[2]-4*DL[4]-2^(1/2)*DL[3])

DL[1] := s[1]*2^(1/2)/E/F

DL[2] := s[2]*2^(1/2)/E/F

DL[3] := s[3]*2^(1/2)/E/F

DL[4] := s[4]/E/F

s[1]*2^(1/2)/E/F+1/6*2^(1/2)*(4*s[2]/E/F-4*s[4]/E/F-2*s[3]/E/F)

{s[1] = -2.214776249, s[2] = -.298006197, s[3] = 1.916770052, s[4] = -4.578555596}

РИСУНОК

>    with(plots): with(plottools):

Стержни

>    for i to n do

>     R[i]:=PLOT(CURVES([[xb[i],yb[i]],[x[i],y[i]]])):

>    od:

Параметры стрелки (толщина,толщина наконечника,относит.длина наконечника)

>    Параметры:=0.1,0.5,0.2,color=red:

>    Нагрузка:=PLOT(seq(arrow([r[n+i][1],r[n+i][2]],s1[n+i]/6,Параметры),i=1..3)):

>    Пластина:=PLOT(POLYGONS([seq([xb[j],yb[j]],j=1..4)],COLOR(HUE,0.5))):

>    display(seq(Опора(i,0.1),i=1..n),Нагрузка,Пластина,seq(R[i],i=1..n),
scaling=constrained,axes=none);

[Maple Plot]