Программа 41. Статически определимая рама
> | restart: |
> | read "C:\\epura.m"; |
> | read "C:\\Risepura.m"; |
> | read "C:\\Podpr1.m"; |
Ввод данных
> | fd := fopen("C:/M13/MMiK.txt",READ):# Доступны файлы p64,p1.txt,...,p5.txt,p5a.txt,MMiK.txt,SoprM-M.txt,balka.txt,p41a.txt |
> | x:=[parse(readline(fd))];# Координаты узлов |
> | y:=[parse(readline(fd))]; |
> | for i to 3 do# Нагрузки в узлах |
> | P||i:=[parse(readline(fd))]; |
> | od; |
> | str:=[parse(readline(fd))]; #Стержни. Номера узлов |
> | Vns:=[parse(readline(fd))]; #Внутр.шарниры |
> | readline(fd); #строка-комментарий |
> | OPOR:=[parse(readline(fd))];#Опоры |
> | Qx:=[parse(readline(fd))];#Qx Стержни. Распределенная нагрузка |
> | Qy:=[parse(readline(fd))];#Qy |
> | EJ:=[parse(readline(fd))];#Относительная жесткость |
> | Napravl,Nuzel:=parse(readline(fd));#Место прогиба |
> | fclose(fd); |
> | n:=nops(x): # Число узлов |
> | m:=nops(str): # Число стержней |
> | ks:=nops(Vns); # Число внутренних шарниров |
> | Vns1:=Vector(n): # Вектор значений внутренних моментов в шарнирах Vns(=0) |
> | ko:=nops(OPOR): # Число опор |
> | printf("Число неизвестных %d + %d, уравнений %d + %d + %d",ko,6*m,ks,3*m,3*n); |
Число неизвестных 4 + 30, уравнений 1 + 15 + 18
Решение
> | Lxy(): |
> | RisRama(); |
> | EpuraM(P1,P2,P3):#Моменты |
> | Реакции=seq(Ro[i],i=1..ko); |
> | RQ(Rx,Ry): #Поперечная сила |
> | PrintRez(Q1,"Qp"); |
N Qp(1) Qp(2)
1 12.50 12.50
2 0.00 0.00
3 0.50 -7.50
4 -7.50 -11.50
5 0.00 -12.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 0.00 25.00
2 -25.00 25.00
3 -7.00 0.00
4 0.00 -9.50
5 0.00 -18.00
> | P1:=Vector(n):P2:=Vector(n):P3:=Vector(n): #Обнуляем нагрузки |
> | Qx:=Vector(m):Qy:=Vector(m): #Обнуляем нагрузки |
> | P||Napravl[Nuzel]:=1; #Прикладываем единичную нагрузку |
> | EpuraM(P1,P2,P3): |
> | m1:=Matrix(m,2,Rm): |
> | RisEpur(m1,"m1",1); |
> | PrintRez(m1,"m1"); |
N m1(1) m1(2)
1 0.00 0.50
2 -0.50 0.50
3 0.50 0.00
4 0.00 0.25
5 0.00 0.00
> | Delta1:=evalf(add(int(EM(MP,1,u,k)*EM(m1,0,u,k)/EJ[k],u=0..L[k]),k=1..m)); |