P49.mws

 Ïðîãðàììà 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.

>   

>