Вы находитесь на странице: 1из 23

> restart:

>
>
Уравнения колебаний.
>
eq1:=m1*diff(z1(t),t$2)+beta1*(diff(z1(t),t)-diff(z2(t),t))+c1*(z1(
t)-z2(t))=0;
eq2:=m2*diff(z2(t),t$2)+beta2*(diff(z2(t),t)-diff(eta(t),t))+beta1*
(diff(z2(t),t)-diff(z1(t),t))+c1*(z2(t)-z1(t))+c2*(z2(t)-eta(t))=0;

Преобразование Лапласа.
>
eq3:=subs([diff(z1(t),t)=p*Z1,diff(z1(t),t$2)=p^2*Z1,z1(t)=Z1,diff(
z2(t),t)=p*Z2,diff(z2(t),t$2)=p^2*Z2,z2(t)=Z2],eq1);

>
eq4:=subs([diff(z1(t),t)=p*Z1,diff(z1(t),t$2)=p^2*Z1,z1(t)=Z1,diff(
z2(t),t)=p*Z2,diff(z2(t),t$2)=p^2*Z2,z2(t)=Z2,diff(eta(t),t)=p*Eta,
eta(t)=Eta],eq2);
Выносим за скобки неизвестные.
> eq5:=collect(,[Z1,Z2,Eta]);eq6:=collect(,[Z2,Z1,Eta]);

Решаем систему уравнений.


> isolate( eq5, Z1 );isolate( eq6, Z2 );

Вводим новые обозначения.


> W1:=-(-beta1*p-c1)/(m1*p^2+beta1*p+c1);

>
W2:=(-(-beta1*p-c1))/(m2*p^2+beta2*p+beta1*p+c1+c2);W3:=(-(-beta2*p
-c2))/(m2*p^2+beta2*p+beta1*p+c1+c2);

Переписываем решение согласно новым обозначениям


> eq10:=Z1=W1_*Z2;eq11:=Z2=W2_*Z1+W3_*Eta;

> subs([eq10],eq11);

> eq11:=isolate( , Z2 );eq10:=subs(eq11,eq10);

Подставляем
>
eq20:=subs([W2_=W2,W1_=W1,W3_=W3],eq11);eq21:=subs([W2_=W2,W1_=W1,W
3_=W3],eq10);
Переходим к преобразованию Фурье и получаем АЧХ.
>
AZH1:=abs(subs(p=I*omega,rhs(eq21)));AZH2:=abs(subs(p=I*omega,rhs(e
q20)));AZH1a:=abs((I*omega)^2*subs(p=I*omega,rhs(eq21)));AZH2a:=abs
((I*omega)^2*subs(p=I*omega,rhs(eq20)));
Переходим от частоты в радианах к частоте в герцах.
>
AZH1_Hz:=f->subs(omega=f*2*Pi,AZH1);AZH2_Hz:=f->subs(omega=f*2*Pi,A
ZH2);AZH1a_Hz:=f->subs(omega=f*2*Pi,AZH1a);AZH2a_Hz:=f->subs(omega=
f*2*Pi,AZH2a);

Исходные данные. Массы, статический прогиб, процентное соотношение прогиба между


ступенями. Расчет оптимальных гидравлических гасителей.
> m1:=40000: m2:=10000: fst_sum:=0.25: sootn:=0.7:Eta:=1:
>
c1:=1/((fst_sum*sootn)/(m1*9.81));c2:=1/((fst_sum*(1-sootn))/((m1+m
2)*9.81));beta1:=0.25*2*sqrt(m1*c1);beta2:=0.25*2*sqrt((m1+m2)*c2);

Графики АЧХ перемещений первой и второй массы, также ускорений соответственно.


>
plot(AZH1_Hz(f),f=0...10);plot(AZH2_Hz(f),f=0...10);plot(AZH1a_Hz(f
),f=0...10);plot(AZH2a_Hz(f),f=0...10);
Выражение для неровностей пути
>
>
>
> b[1]:=0.0149;b[2]:=1.1525;
b[3]:=0.0053;gammaa[1]:=2.7716;gammaa[2]:=1.5344;gammaa[3]:=4.1763;
a[1]:=1.9416;a[2]:=3.4227;a[3]:=0.9902;a[4]:=0.5292;beta[1]:=0.0405
;beta[2]:=0.0792;beta[3]:=0.1163;beta[4]:=0.1606;alpha[1]:=0.0015;a
lpha[2]:=0.0017;alpha[3]:=0.0064;alpha[4]:=0.0034;m:=4;
Функция спектральной плотности эквивалентной неровности.
>
S:=f->(b[i(f)]*V^(gammaa[i(f)]-1))/f^gammaa[i(f)]+1/2/sqrt(Pi)*sum(
a[j]/alpha[j]/V*exp(-(f-beta[j]*V)^2/(4*alpha[j]
^2*V^2)),j=1..m);

Вспомогательные функции.
>
f1:=exp((ln(b[1])-ln(b[2]))/(gammaa[1]-gammaa[2])+ln(V)):f2:=exp((l
n(b[2])-ln(b[3]))/(gammaa[2]-gammaa[3])+ln(V)):
> i:=f->piecewise(f <= f1 , 1, f1 <= f and f < f2, 2,f>f2,3):
> i(f);

Задали скорость движения.


> V:=25;S(1);

График спектральной плотности эквивалентной неровности.


> plot(S(f),f=0.6..10);
Спектральные плотности перемещений и ускорений кузова и тележки.
>
S1:=f->AZH1_Hz(f)^2*S(f);S2:=f->AZH2_Hz(f)^2*S(f);S1a:=f->AZH1a_Hz(
f)^2*S(f);S2a:=f->AZH2a_Hz(f)^2*S(f);

Графики спектральных плотносте перемещений и ускорений кузова и тележки.


>
plot(S1(f),f=0.6..10);plot(S2(f),f=0.6..10);plot(S1a(f),f=0.6..10);
plot(S2a(f),f=0.6..10);
>
>
Специфичные для Maple вычисления:)
>
sS1:=unapply(spline([seq(eval(f/100),f=60..5000)],[seq(evalf(S1(f/1
00)),f=60..5000)],ff),ff):
sS2:=unapply(spline([seq(eval(f/100),f=60..5000)],[seq(evalf(S2(f/1
00)),f=60..5000)],ff),ff):
sS1a:=unapply(spline([seq(eval(f/100),f=60..5000)],[seq(evalf(S1a(f
/100)),f=60..5000)],ff),ff):
sS2a:=unapply(spline([seq(eval(f/100),f=60..5000)],[seq(evalf(S2a(f
/100)),f=60..5000)],ff),ff):
> sS1(1);sS2(1);sS1a(1);sS2a(1);

Расчет дисперсий и среднеквадратических отклонений перемещений и ускорений.


> D1:=evalf(int(sS1(ff),ff=0.6..49),4);sigma1:=sqrt(D1);
D2:=evalf(int(sS2(ff),ff=0.6..49),4);sigma2:=sqrt(D2);
D1a:=evalf(int(sS1a(ff),ff=0.6..49),4);sigma1a:=sqrt(D1a);
D2a:=evalf(int(sS2a(ff),ff=0.6..49),4);sigma2a:=sqrt(D2a);
Максимальные значения перемещений и ускорений, а также коэф. вертикальной динамики.
>
z1_max:=3*sigma1;z2_max:=3*sigma2;kd_z1:=3*sigma1/(fst_sum*1e3);z2_
max:=3*sigma2;z1a_max:=3*sigma1a;z2a_max:=3*sigma2a;

решение во временной области при неровности вида модуль синуса.


> eta:=t->A*abs(sin(2*Pi*V/Lp*t));

Амплитуда и длина неровности.


> A:=8e-3;Lp:=25;

>
Функции, описывающие гасители сухого трения.
>
F1:=z1->k*c1*z1*signum(diff(z1,t));F2:=z2->Nphi*signum(diff(z2,t));

>

>
> upsilon:=2*Pi*V/Lp;

Зная оптимальный гидравлический гаситель, найдем параметры гасителей сухого трения.


> Nphi:=beta2*Pi*upsilon*z2_max/4;k:=beta1*Pi*upsilon/c1;

Уравнения с гидравлическими гасителями.


>
eq1:=m1*diff(z1(t),t$2)+beta1*(diff(z1(t),t)-diff(z2(t),t))+c1*(z1(
t)-z2(t))=0;
eq2:=m2*diff(z2(t),t$2)+beta2*(diff(z2(t),t)-diff(eta(t),t))+beta1*
(diff(z2(t),t)-diff(z1(t),t))+c1*(z2(t)-z1(t))+c2*(z2(t)-eta(t))=0;
Начальные условия и процедура решения.
> initC:=z2(0.1)=0,D(z2)(0.1)=0,z1(0.1)=0,D(z1)(0.1)=0;
sol:=dsolve({eq1,eq2,initC},{z2(t),z1(t)},numeric);

> sol(2);

> with(plots):
Графики перемещений кузова и тележки.
> odeplot(sol, [[t, z1(t)],[t, z2(t)]], 2 .. 10, numpoints = 2000);
Деформации рессор.
> odeplot(sol, [[t, z1(t)-eta(t)],[t, z2(t)-z1(t)]], 2 .. 10, numpoints
= 2000);

Скорости кузова и тележки.


> odeplot(sol, [[t, diff(z1(t),t)],[t, diff(z2(t),t)]], 0.1 .. 10,
numpoints = 2000);
Уравнения с гасителями сухого трения.
> eq1:=m1*diff(z1(t),t$2)+F1(z1(t)-z2(t))+c1*(z1(t)-z2(t))=0;
eq2:=m2*diff(z2(t),t$2)+F2(z2(t)-eta(t))+F1(z2(t)-z1(t))+c1*(z2(t)-
z1(t))+c2*(z2(t)-eta(t))=0;

>
> initC:=z2(1e-6)=0,D(z2)(1e-6)=0,z1(1e-6)=0,D(z1)(1e-6)=0;
sol:=dsolve({eq1,eq2,initC},{z2(t),z1(t)},numeric,method=classical[
abmoulton], corrections=4,maxfun=100000);

> sol(1);

> with(plots):
Графики перемещений кузова и тележки.
> odeplot(sol, [[t, z1(t)],[t, z2(t)]], 2 .. 10, numpoints = 2000);

Скорости кузова и тележки.


> odeplot(sol, [[t, diff(z1(t),t)],[t, diff(z2(t),t)]], 0.1 .. 10,
numpoints = 2000);
>

Вам также может понравиться