ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 1295
Скачиваний: 16
2. Внешний цилиндр неподвижен:
Функция
p
(
e
)
линейноубывает на отрезке [0,1], принимая на его
концах значения, равные соответственно 1 и 0. Функция является моно-
тонно убывающей с постоянным углом наклона, равным
−
1
.
> p := e -> 1-e;
plot(p(e), e=0..1);
> b := 6; a := 3;
> V := xi -> -1/4*xi^2+(b+5*a)
/(4*a*ln(b/a))*ln(xi)+5/4;
plot(V(xi), xi=1..b/a);
121
Пример № 3
Заданы условия
x
=
r
√
2
, m
1 = 1
, m
2 = 2
, m
5 = 4
, c
= 40
, t
0 = 0
,
y
0=0
.
1
, v
0=7
.
Определить частоту и период малых, свободных колеба-
ний механической системы с одной степенью свободы, пренебрегая сила-
ми сопротивления и массами нитей. Найти уравнение движения груза
1
,
приняв за начало отсчета положение покоя груза
1
(при статической
деформации пружины). Найти также амплитуду колебаний груза
1
.
Воспользуемся уравнением Лагранжа 2-го рода для консервативной
системы. Приняв за обобщенную координату системы вертикальное от-
клонение
y
груза
1
от положения покоя соответствующей статической
деформации пружины, имеем:
> Diff(Diff(T,Diff(y,t)),t)-Diff(T,y)=-Diff(P,y);
где
Т
— кинетическая энергия системы, а
Р
— потенциальная энергия
системы. Кинетическую энергию
Т
вычислим с точностью до величины
2-го порядка малости относительно обобщенной координаты
y
.
Найдем кинетическую энергию системы равную сумме кинетиче-
ских энергий тел
1
,
2
,
5
.
Поскольку нить, соединяющая тела
1
и
5
,
невесома, нерастяжима и не проскальзывает, а тело 5 также движется
без скольжения, то, как видно из рисунка:
> restart;
v1 = Diff(y,t);
omega2 = v1/r;
omega5 = v1/(3*r);
v5 = 2*v1/3;
> T1 := (m1*v1^2)/2;
T2 := (m2*v1^2)/4;
T5 := (m5*v1^2/3);
T := T1+T2+T5;
122
Потенциальная энергия определяется работой силы тяжести и ра-
ботой силы упругости пружины.
> g := 9.81:
y := ’y’:
P1 := -m1*g*y;
P2 := c*(f[ст]+lambda[k])^2/2-c*f[ст]^2/2;
P := P1+P2;
> lambda[k] := 2*y/3:
m1 := 1:
m2 := 2:
m5 := 4:
c := 40:
sas := {diff(P, y), y=0};
> solve(sas);
> f[ст] = -.367875:
diff(T, v1);
> T := 14/3*Diff(y, t):
> k := sqrt((4*c)/(9*m1+9*m2/2+6*m5));
Diff(y,t$2)+(k^2)*y=0;
y0 := 0.1;
v0 := 7;
> k := 4/21*sqrt(105):
y := C1*cos(k*t)+C2*sin(k*t);
> C1 := y0:
C2 := v0/k: y := y;
> a := sqrt(C1^2+C2^2): b := arctan(C1/C2):
sol := 3.587826640*sin(4/21*10.25*t+0.028);
> plot(sol, t=-5..5, title="Решение");
> with(plots):
with(plottools):
> pruzh := proc(x1,x2,y,r,K)
local d,l:
l := (x2-x1): d := l/K:
PLOT(CURVES([[x1,y],
seq([x1+j*d,r*sin(Pi*j/2)+y],j= 0..K),
[x2,y]])):
end:
123
> Колесо := proc(xk, yk, R, w::anything)
‘plottools/disk‘([xk,yk], R, color=w):
end proc:
> Опора := proc(x,y,R)
local x0, x1, y0, h, N:
x0 := x-R*0.7:
x1 := x+R*0.7:
y0 := y-R*0.7:
h := 3*R:
N := 2:
display(PLOT(circle([x,y],R,color=green)),
PLOT(CURVES([[x0,y0],[x-h,y-h]],
[[x1,y0],[x+h,y-h]],
[[x0-h,y-h],[x1+h,y-h]],
seq([[x0-h*(-j/N+1),y-h],
[x0-h*(-j/N+1)-h/4,y-h*1.3]],
j=0..2*N+1)))):
end:
> Поверхность := proc(x, y, L, h)
local N:N:=round(abs(L/h))-3:
display(PLOT(CURVES([[x,y],[x+L,y]],
seq([[x+L*j/N/2,y],
[x+L*j/N/2-h,y-h]],
j=0..2*N)))):
end:
> Стенка := proc(x, y, L, h)
local N:
N := round(abs(L/h))-3:
display(PLOT(CURVES([[x,y],[x,y+L]],
seq([[x,y+L*j/N/2],
[x-h,y+L*j/N/2-h]],
j=0..2*N)))):
end:
> Cir := proc(x, y, R)
global CLR:
PLOT(circle([x,y], R, color=CLR))
end:
> box := proc(x, y, A, B)
local X, Y:
X := x;
Y := y;
PLOT(POLYGONS([[X-A,Y+B],[X+A,Y+B],
[X+A,Y-B],[X-A,Y-B]],
COLOR(RGB,0,1,0))):
end:
124
> CLR := BLACK:
> pdif := proc(eq, T)
local rec, i, dt, cadr, TT;
cadr := T*50;
dt := T/cadr;
for i from 0 to cadr do
rec := box(16,-3-eval(eq,t=dt*i),.8,0.4);
TT := ‘plots/textplot‘
([18,5,cat("t=",convert(evalf(dt*i,4),string))]);
q||i:=‘plots/display‘(
{rec,TT,
Поверхность(-0.1,0.1,13,0.1),
Cir(15,2.1,1),
Опора(15,2.1,0.08),
Стенка(0,0,5,0.1),
line([16,2.1],[16,-2.6-eval(eq,t=dt*i)]),
Cir(7+eval(eq,t=dt*i),2.1,1),
Cir(7+eval(eq,t=dt*i),2.1,2),
line([7+eval(eq,t=dt*i),3.1],[15,3.1]),
pruzh(0,7+eval(eq,t=dt*i),2.1,0.2,75),
Колесо(7+eval(eq,t=dt*i),2.1,0.05,GREEN)},
scaling=constrained);
end do;
‘plots/display‘([seq(q||i,i=0..cadr)],
insequence=true,
scaling=constrained, axes=none);
end proc:
> pdif(sol,5);
125