ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 1296
Скачиваний: 16
Пример № 4
Пренебрегая массой плиты и считая ее абсолютно жесткой, найти
уравнение движения груза
D
массой
m
с момента соприкасания его с
плитой, предполагая, что при дальнейшем движении груз от плиты не
отделяется. Движение груза отнести к оси
x,
приняв за началоотсче-
та положение покоя этого груза (при статической деформации пружин).
Плита лежит на двух параллельных пружинах, имеющих коэффициент
жесткости
c
1 = 600
н/см и
c
2 = 400
н/см. Груз
D
(
m
= 50
кг) падает
без начальной скорости с высоты
h
= 0
.
1
м в точку
F
плиты, находящу-
юся на расстояниях
a
и
b
от осей пружин:
a
b
=
c
2
c
1
.
Составим дифференциальное уравнение движения груза
D
в про-
екции на о сь
x
:
> restart;
with (plots):
de := m[D]*diff(x(t),t$2) = m[D]*g-F[упр];
F[упр] := (c[1]+c[2])*(f[st]+x(t));
de;
> st1 := m[D]*g-F[упр1];
F[упр1] := (c[1]+c[2])*f[st];
f[st] := solve(st1,f[st]);
> de := expand(simplify(de));
Решим дифференциальное уравнение с учетом начальных условий:
> sol := dsolve({de,x(0)=-f[st], D(x)(0)=v[0]}, x(t));
sol1 := sol;
> g := 9.81;
m[D] := 50;
c[1] := 600;
c[2] := 400;
f[st] := (m[D]*g)/(c[1]+c[2]);
h := 0.1;
alpha := Pi/2;
v[0] := 5;
> sol1 := evalf(sol1);
> v[0] := sqrt(2*g*h);
> sol := evalf(sol);
> g1 := plot({rhs(sol1)}, t=0..5,
thickness=2, color=black):
> g2 := plot({rhs(sol)}, t=0..5,
thickness=2, color=green):
> display(g1, g2);
126
> stenka := 0;
> plita := proc(x, alpha)
‘plottools/rotate‘(‘plottools/rectangle‘
([x,1], [x+2,5], color=green), alpha, [2,1]);
end proc:
> P := plita(6, alpha):
> z := plot(0, x=-5..7, thickness=2, color=black):
> z1 := plot(5, x=-5..7, thickness=3, color=magenta):
> strinl := proc(x,x1,alpha)
delt := abs(x-x1)/25;
points := plot([[x,0],[x,4],[x,3],
seq([x+delt/2+delt*i,3+(-1)^i*0.5],
i=0..24),
[x+delt*25,3]],
thickness=2, color=black,
scaling=constrained);
points := ‘plottools/rotate‘(points, alpha, [0,0]);
end proc:
> strinp := proc(x, x1, alpha)
local str, delt, points;
delt := abs(x-x1)/11;
points := plot([[x,0], [x,4], [x,-5],
seq([x+delt/2+delt*i,-5+(-1)^i*0.5],
i=0..10),
[x+delt*11,-5]],
thickness=2, color=black,
scaling=constrained);
points:=‘plottools/rotate‘(points, alpha, [0,0]);
end proc:
> pruzinal := strinl(0, 5, alpha):
> pruzinap := strinp(0, 5, alpha):
> display(z, z1, P, pruzinal, pruzinap,
scaling=constrained);
127
> pdif := proc(eq, alpha, T)
local r, r1, r2, p1, p2, i, dt, cadr, TT, ps, pb;
cadr := T*50;
ps := ‘plottools/rotate‘
(plot([[0,-7], [0,8]],
thickness=2, color=black),
alpha, [1,1]);
pb:=‘plottools/rotate‘
(plot([[5,-7]], thickness=1, color=black),
alpha,[1,1]);
dt := T/cadr;
for i from 0 to cadr do
TT := ‘plots/textplot‘([7, 7,
cat("t= ", convert(evalf(dt*i,4), string))]);
r := plita(6+eval(eq, t=dt*i), alpha);
r2 := plot(5+eval(eq, t=dt*i), x=-5..7,
thickness=3, color=magenta);
p1 := strinl(0, eval(5+eq, t=dt*i), alpha);
p2 := strinp(0, eval(5+eq, t=dt*i), alpha);
q||i := ‘plots/display‘({r,r2,pb,ps,TT,p2,p1},
scaling=constrained);
end do;
‘plots/display‘([seq(q||i,i=0..cadr)],
insequence=true,
scaling=constrained, axes=NONE);
end proc:
128
> pdif(rhs(sol), alpha, 4);
> g_1 := plot(rhs(sol), t=0..5, thickness=2,
color=magenta, title="c[1]+c[2]=1000"):
> plots[display](g_1, g_2);
> plots[display](g_2);
> c[1]+c[2] := 2:
gr1 := plot(rhs(sol), t=0..5, thickness=2,
color=red, title="c=2"):
sol := dsolve({de, x(0)=-f[st], D(x)(0)=0}, x(t));
> gr2 := plot(rhs(sol), t=0..5, thickness=2,
color=black, title="c=2"):
plots[display](gr1, gr2);
129
Ресурсы в Web
•
http://www.maplesoft.com/
— сайт разработчика
•
http://www.mapleapps.com/
— коллекция приложений
•
http://www.maple4students.com/
— центр поддержки для
студентов
•
http://www.exponenta.ru/soft/Maple/Maple.asp
— стра-
ница на популярном российском образовательном математическом
портале, посвященная Maple
•
http://www.dxdy.ru/
— научный форум
•
http://www.studrus.ru/
— ресурс оматематике и физике
130