Программа 47. Статически неопределимая рама
| > | restart: |
| > | read "C:\\epura.m"; |
| > | read "C:\\Risepura.m"; |
| > | read "C:\\Podpr1.m"; |
Ввод данных
| > | fd := fopen("C:/M13/p65.txt",READ):# Открываем файл (SoprM-G.txt,p65, p65a.txt, p65d.txt, StrMech.txt,SoprM-S.txt) |
| > | x:=[parse(readline(fd))]:# x |
| > | y:=[parse(readline(fd))]:# y |
| > | n:=nops(x): #Число узлов |
| > | P1:=[parse(readline(fd))]:#Нагрузки в узлах |
| > | P2:=[parse(readline(fd))]:# |
| > | P3:=[parse(readline(fd))]:# |
| > | str:=[parse(readline(fd))]:#Стержни. Номера узлов |
| > | m:=nops(str): # Число стержней |
| > | Vns:=[parse(readline(fd))]: # |
| > | U:=[parse(readline(fd))]: # Номер элемента множества Vns |
| > | OPOR:=[parse(readline(fd))]:# Опоры |
| > | Qx:=[parse(readline(fd))]:# Распределенная нагрузка |
| > | Qy:=[parse(readline(fd))]:# Распределенная нагрузка |
| > | EJ:=[parse(readline(fd))]:;# Относительная жесткость |
| > | Nms:=[parse(readline(fd))]:# Неизвестные метода сил[Узел, направление (1-X, 2-Y, 3-M)] |
| > | fclose(fd): # Закрываем файл |
| > | ks:=nops(Vns): # Число внутренних шарниров |
| > | Vns1:=Vector(n): |
| > | nv:=nops(U): # Число внутренних неизвестных |
| > | ko:=nops(OPOR): # Число опор |
| > | printf("Число неизвестных %d + %d, уравнений %d + %d + %d",ko,6*m,ks,3*m,3*n); |
| > | no:=nops(Nms): # Число внешних неизвестных |
| > | nn:=no+nv: # Общее число неизвестных |
Решение
| > | Lxy(): |
| > | RisRama(); |
Число неизвестных 3 + 18, уравнений 0 + 9 + 12
| > | EpuraM(P1,P2,P3):#Моменты в основной системе |
| > | Реакции=seq(Ro[i],i=1..ko); |
| > | RQ(Rx,Ry): #Поперечная сила в осн.сист. |
| > | PrintRez(Q1,"Qp"); |
N Qp(1) Qp(2)
1 24.00 0.00
2 6.00 6.00
3 0.00 0.00
| > | QP:=Matrix(m,2,Q1): |
| > | RisEpur(QP,'QP',0); |
| > | MP:=Matrix(m,2,Rm): |
| > | RisEpur(MP,'MP',1); |
| > | PrintRez(Rm,"Mp"); |
| > | Qx0:=Qx: Qy0:=Qy: #Сохраняем данные(распр.нагр) |
N Mp(1) Mp(2)
1 60.00 -24.00
2 24.00 0.00
3 0.00 0.00
| > | for j to no do |
| > | P1:=Vector(n):P2:=Vector(n):P3:=Vector(n): #Обнуляем нагрузки |
| > | Qx:=Vector(m):Qy:=Vector(m): |
| > | z:=Nms[j,2]: |
| > | P||z[Nms[j,1]]:=1: #Прикладываем единичную нагрузку |
| > | EpuraM(P1,P2,P3): |
| > | m||j:=Matrix(m,2,Rm): |
| > | RisEpur(m||j,cat("m",j),1); |
| > | RQ(Rx,Ry): |
| > | q||j:=Matrix(m,2,Q1): |
| > | RisEpur(q||j,cat("q",j),0); |
| > | od: |
| > | for j to nv do |
| > | P1,P2,P3:=Vector(n)$3: #Обнуляем нагрузки |
| > | Qx,Qy:=Vector(m)$2: |
| > | Vns1:=Vector(n): |
| > | Vns1[U[j]]:=1; #Прикладываем единичную нагрузку |
| > | EpuraM(P1,P2,P3):j1:=j+no: |
| > | m||j1:=Matrix(m,2,Rm): |
| > | RisEpur(m||j1,cat("m",j1),1); |
| > | RQ(Rx,Ry): |
| > | q||j1:=Matrix(m,2,Q1): |
| > | RisEpur(q||j1,cat("q",j1),0); |
| > | od: |
| > | for j to nn do |
| > | PrintRez(m||j,cat("m",j)); |
| > | PrintRez(q||j,cat("q",j)); |
| > | Эпюраq||j; |
| > | Эпюраm||j; |
| > | od; |
N m1(1) m1(2)
1 3.00 0.00
2 0.00 0.00
3 0.00 0.00
N q1(1) q1(2)
1 1.00 1.00
2 0.00 0.00
3 0.00 0.00
N m2(1) m2(2)
1 -6.00 6.00
2 -6.00 2.00
3 -2.00 0.00
N q2(1) q2(2)
1 0.00 0.00
2 -1.00 -1.00
3 -1.00 -1.00
| > | Deltap:=Vector(nn): delta:=Matrix(nn): |
| > | for i to nn do |
| > | Deltap[i]:=evalf(add(int(EM(MP,1,u,k)*EM(m||i,0,u,k)/EJ[k],u=0..L[k]),k=1..m)); |
| > | for j to nn do |
| > | delta[i,j]:=evalf(add(int(EM(m||i,0,u,k)*EM(m||j,0,u,k)/EJ[k],u=0..L[k]),k=1..m)); |
| > | od: |
| > | od: |
Решаем систему канонических уравнений
| > | X:=-delta^(-1).Deltap: |
| > | delta,X,Deltap;#Коэфф.канонических уравнений, неизвестные |
Моменты в статически неопр. раме
| > | MR:=add(m||i*X[i],i=1..nn)+MP: |
Поперечные силы в статически неопр. раме
| > | QR:=add(q||i*X[i],i=1..nn)+QP: |
| > | PrintRez(QR,`Q`); |
| > | Qx:=Qx0: Qy:=Qy0: #Восстанавливаем нагрузки |
N Q(1) Q(2)
1 12.24 -11.76
2 2.92 2.92
3 -3.08 -3.08
| > | PrintRez(MR,`M`); |
N M(1) M(2)
1 6.24 -5.52
2 5.52 6.16
3 -6.16 0.00
| > | RisEpur(MR,`M`,1); |
| > | RisEpur(QR,`Q`,0); |