Ïðîãðàììà 49. Çàäà÷è 66, 67
> | restart:with(plottools):with(plots): |
> | ArchÌîäóëü:=module() |
> | export Ðåøåíèå,ÏóñêArch: |
> | Ðåøåíèå:=proc() local âåëè÷èíà,øàðíèðû,m0,qA,NA,íàãð,âèä,ðàñïðíàãð,L,f,y,a, |
> | F,b,q,l,n1,n2,n_1,m_1,q_1,c1,c2,mA2,qA2,NA2,X1,d11,D1p, |
> | X,h,Ñòðåëêà,Ra,Rb,cosf,sinf,qB,mB,mA,H,i,j,qBF,mBF, |
> | Àðêà,ÝïþðQ,ÝïþðM,ÝïþðN,ÝïþðQ2,ÝïþðM2,ÝïþðN2,Ðèñ: |
> | use Maplets[Tools] in |
> | a:=Get('Ta'::list); # êîîðäèíàòû òî÷åê ïðèëîæ. ñèë, ì |
> | F:=Get('TF'::list); # ñèëû, êÍ |
> | b:=Get('Tb'::list); # êîîðäèíàòà íà÷àëà q, ì |
> | q:=Get('Tq'::list); # ðàñïð. íàãðóçêà q, êÍ/ì |
> | l:=Get('Tl'::list): # äëèíà ðàñïð. íàãðóçêà q, ì |
> | h:=Get('Th'::float);# âûñîòà ñå÷, ì |
> | f:=Get('Tf'::float);# ñòðåëà ïîäúåìà, ì |
> | L:=Get('TL'::float);# 0.5 ïðîëåòà, ì |
> | n1:=nops(a): n2:=nops(q): # ×èñëî F, q |
> | Rb:=-(add(F[i]*a[i],i=1..n1)+add(q[i]*l[i]*(b[i]+l[i]/2),i=1..n2))/2/L: # Ïðàâ ðåàêö |
> | Ra:=-add(F[i],i=1..n1)-add(q[i]*l[i],i=1..n2)-Rb: # Ëåâ ðåàêöè |
> | cosf:=x->subs(t=x,1/sqrt(1+diff(y(t),t)^2)): |
> | sinf:=x->subs(t=x,diff(y(t),t))*cosf(x): |
> | c1:=(h/f)^2/12; c2:=h^2/f/12; |
> | m_1:=x-> y(x)/f: #åäèíè÷í ýïþðà m |
> | q_1:=x-> sinf(x)/f:#åäèíè÷í ýïþðà q |
> | n_1:=x-> cosf(x)/f:#åäèíè÷í ýïþðà n |
> | y:=proc(x) f/L^2*(2*L-x)*x:end: # Ôîðìà îñè àðêè |
> | n1:=n1+1: |
> | F:=[Ra,op(F)]:#Äîáàâë ðåàêö îïîðû â ÷èñëî ñèë |
> | a:=[0,op(a)]: #êîîðä ëåâ îïîðû |
Áàëî÷í ïîïåðå÷í ñèëà
> | qBF:=x->add(piecewise(x>=a[i],F[i],x<=a[i],0),i=1..n1): |
> | qB:=qBF+add(piecewise(x>=b[i] and x<=b[i]+l[i],q[i]*(x-b[i]),x<=b[i],0,x>=b[i]+l[i],q[i]*l[i]),i=1..n2): |
Áàëî÷íûé ìîìåíò
> | mBF:=x->add(piecewise(x>=a[i],(x-a[i])*F[i],x<=a[i],0,0),i=1..n1): |
> | mB:=mBF+add(piecewise(x>b[i] and x<b[i]+l[i],(x-b[i])^2/2*q[i],x>=b[i]+l[i],(x-b[i]-l[i]/2)*l[i]*q[i],0),i=1..n2): |
> | Ñòðåëêà:=width=0.05,head_length=0.4,head_width=0.2,color=red:# Ïàðàìåòðû ñòðåëêè |
> | ðàñïðíàãð:=CURVES(seq([[b[i],f+0.5],[b[i]+l[i],f+0.5]],i=1..n2),THICKNESS(10)): |
> | íàãð:=arrow({seq([a[i],y(a[i])+1],i=2..n1)},{seq([0,-1],i=2..n1)},Ñòðåëêà): |
> | âåëè÷èíà:=PLOT(seq(TEXT([a[i],y(a[i])+1],convert(abs(F[i]),symbol),ALIGNRIGHT),i=2..n1)):# |
> | øàðíèðû:=PLOT(POINTS([L,f],[0,0],[2*L,0],SYMBOL(CIRCLE)),COLOR(RGB,1,0,0)): |
> | m0:=0: for j to n1 do if a[j]<L then m0:=m0+(L-a[j])*F[j]; fi; od: |
> | for i to n2 do if b[i]<L then |
> | if b[i]+l[i]<L then m0:=m0+(L-b[i]-l[i]/2)*q[i]*l[i]; |
> | else m0:=m0+q[i]*(L-b[i])^2/2; |
> | fi; |
> | fi: |
> | od: |
> | H:=m0/f;# Ðàñïîð |
> | qA:=x->qB(x)*cosf(x)-H*sinf(x): # Ïîïåðå÷í ñèëà â àðêå |
> | NA:=x->-qB(x)*sinf(x)-H*cosf(x): # Ïðîäîëüí ñèëà â àðêå |
> | mA:=x->mB(x)-H*y(x): # Ìîìåíò â 3-õ øàðíèðíîé àðêå |
> | âèä:=color=[red,blue],thickness=[1,2],legend=["Arch","Beam"]: |
> | D1p:=int(m_1(x)*mA(x)/cosf(x)+c2*NA(x),x=0..2.*L); |
> | d11:=int(m_1(x)^2/cosf(x)+c1*cosf(x),x=0..2.*L); |
> | X1:=-D1p/d11; |
> | mA2:=x->m_1(x)*X1+mA(x): |
> | qA2:=x->q_1(x)*X1+qA(x): |
> | NA2:=x->n_1(x)*X1+NA(x): |
> | Set (TRa=Ra): Set (TRb=Rb): Set (TX1=X1):Set(TD1p=D1p): Set(Td11=d11): |
> | X:=x=0..2*L: |
> | Àðêà:=display(plot(y(x),X,color=blue)): |
> | ÝïþðM:=display(plot([mA(x),mB(x)],X,âèä,title="Epure M3")); |
> | ÝïþðQ:=display(plot([qA(x),qB(x)],X,âèä,title="Epure Q3")); |
> | ÝïþðN:=display(plot(NA(x),X,title="Epure N3")); |
> | ÝïþðM2:=display(plot([mA2(x),mB(x)],X,âèä,title="Epure M2")); |
> | ÝïþðQ2:=display(plot([qA2(x),qB(x)],X,âèä,title="Epure Q2")); |
> | ÝïþðN2:=display(plot(NA2(x),X,title="Epure N2")); |
> | Ðèñ:=display(ðàñïðíàãð,âåëè÷èíà,øàðíèðû,Àðêà,íàãð);# Àðêà è ñèëû |
> | end use: |
> | Ðèñ,ÝïþðM,ÝïþðQ,ÝïþðN,ÝïþðM2,ÝïþðQ2,ÝïþðN2 |
> | end proc: |
> | ÏóñêArch:=proc() |
> | local Êíîïêà,Ev,i,Txt,a,c,mplt,Ýêðàí; |
> | use Maplets:-Elements in |
> | Ýêðàí:=Plotter['PL1']('height=300'): |
> | a[1]:=["[xP]=",TextField['Ta'](9,'value'=[4,10],'tooltip'="Ââåäèòå êîîðäèíàòû ñèë")]: |
> | a[2]:=["[P]=", TextField['TF'](9,'value'=[-9,-6],'tooltip'="Ââåäèòå ñèëû")]: |
> | a[3]:=["[xq]=",TextField['Tb' ](9,'value'=[6],'tooltip'="Ââåäèòå êîîðäèíàòû ëåâûõ êîíöîâ q")]: |
> | a[4]:=["[q]=", TextField['Tq'](9,'value'=[-2],'tooltip'="Ââåäèòå ðàñïðåäåëåííûå ñèëû q")]: |
> | a[5]:=["Lq=",TextField['Tl' ](9,'value'=[6],'tooltip'="Ââåäèòå äëèíû ó÷àñòêîâ q")]: |
> | a[6]:=["h=", TextField['Th' ](9,'value'=0.6,'tooltip'="Ââåäèòå âûñîòó ñå÷åí")]: |
> | a[7]:=["f=", TextField['Tf' ](9,'value'=4.0,'tooltip'="Ââåäèòå âûñîòó àðêè")]: |
> | a[8]:=["L=", TextField['TL' ](9,'value'=6.0,'tooltip'="Ââåäèòå 0.5 ïðîëåòà àðêè")]: |
> | a[9]:=["Ra",TextField['TRa'](9)]: |
> | a[10]:=["Rb",TextField['TRb'](9)]: |
> | a[11]:=["D1p",TextField['TD1p'](9)]: |
> | a[12]:=["d11",TextField['Td11'](9)]: |
> | a[13]:=["X1",TextField['TX1'](9)]: |
> | Ev:=proc(n) Evaluate(PL1 = 'display(Ðåøåíèå()[n])'):end; |
> | Êíîïêà:="Àðêà","M3","Q3","N3","M2","Q2","N2": |
> | for i to 7 do |
> | c[i]:=Button(Êíîïêà[i],Ev(i)): |
> | od: |
> | mplt:= Maplet(Window('title'="Àðêà", |
> | [ BoxRow(Ýêðàí,BoxColumn(seq(a[i],i=1..8)),[seq(c[i],i=1..7)]),[seq(a[i],i=9..13)]] |
> | ) #Window |
> | ):#Maplet |
> | Maplets:-Display(mplt): |
> | end use; |
> | end proc; |
> | end module: |
> | ArchÌîäóëü:-ÏóñêArch(): |
Initializing Java runtime environment.
> |
> |