Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Аналитическая динамика и теория колебаний. Исследование динамики мех

.pdf
Скачиваний:
20
Добавлен:
15.11.2022
Размер:
1.37 Mб
Скачать

Программа численного решения нелинейного уравнения (21) методом парабол (алгоритм представлен на языке программирования PASCAL [5])

Const n=5;

axrarray [l..n,l..n] of real=((10,l,2,3,4),(l,9,-l,2,-3), (2,-1,7,3,-5),(3,2,3,12,-1),(4,-3,-5,-1,15)); {=((5,1,-2,0,-2,5),(1,6,-3,2,0,6),(-2,-3,8,-5,-6,0), (0,2,-5,5,1,-2),(2,0,-6,1,6,-3),(5,6,0,-2,-3,8));}

Var mi,tt,kj,i,w,ic0,icl,ic2,icm,minc:integer; zx,x,x0,xl ,x2,xm,d0,dl ,d2,dm,f0,fl ,f2,eps:real; Hl,H2,B2,C2,G2,GS,BM:real;

mas:array [1..100] of real; axl:array [l..n,l..n] of real; label ler;

{Процедура приведения числа к виду а } procedure rain(Var ddl :real;Var el integer); Var fi:integer;

begin

while abs(ddl)>l do begin

ddl :=ddl/l 6; el:=el+4; end;

while abs(ddl)<=0.0625 do begin

ddl :=ddl*16; el :=el-4; end;

end;

{Процедура приведения матрицы к треугольному виду} procedure matrix(xxx:real);

Var ixjx,kx:integer; tx:array [l..n,l..n] of real;

detAireal; begin

For kx:=l to n do For ix:=l to n do

axl[kx,ix]:=ax[kx,ix];

For kx:=l to n do For ix:=l to n do tx[kx,ix]:=0;

For kx:=l to n do

axl [kx,kx]:=axl [kx,kx]-xxx;

For kx:=l to n-1 do begin

For ix:=kx+l to n do begin

tx[ix,kx]:=axl [ix,kx]/axl [kx,kx]; For jx:=kx+l to n do

axl [ixjx]:=axl [ixjx]-tx[ix,kx]*axl [kx,jx]; end;

end;

end;

{Процедура расчета значения функции в точке хх} procedure func(Var xx:real;Var dd:real;Var e:integer); Var kx,ix,il jj:integer;

begin e:=0; il:=0; dd:=0;

If mi=l then begin

dd:=(xx-1)*(xx+100)*(xx-0.0001 )*(xx+4567)*(xx+15); rain(dd,e);

end;

If mi=2 then begin

dd:=l;

matrix(xx);

for jj:=1 to n do begin dd:=dd*axl[ijjj]; rain(dd,e);

end;

end;

I f i o l then begin

If mi=l then begin il:=i-l;

For jj:=l to il do begin dd:=dd/(xx-mas[jj]); rain(dd,e);

end;

end;

end;

end;

begin

mi:=2;

k:=5;

If mi=2 then k:=n; eps:=0.0000001; xm:=0;

For i:=l to к do begin

If mi=l then begin

xl :=-2; x2:=l; xm:=0.5; end;

If mi=2 then

begin

xl :=xm-l; x2:=xm+i-l; xm:=xm+2*i; end; func(xl,dl,icl); func(x2,d2,ic2); j:=0;

repeat begin incG);

func(xm,dm,minc);

xO:=xl; xl :=x2; x2:=xm; icO:=icl; icl:=ic2; ic2:=minc; dO:=dl; dl:=d2; d2:=dm; minc:=0;

Hl:=xl-xO;

H2:=x2-xl;

B2:=H2/H1;

C2:=l+B2;

{Отыскание минимального показателя b значения функ­

ции}

If (ic0<=icl)and(ic0<=ic2) then minc:=icO; If (icl<=ic0)and(icl<=ic2) then minc:=icl; If (ic2<=ic0)and(ic2<=icl) then minc:=ic2;

{Приведение значений функций к одному показателю 6=minc}

fO:=dO; fl:=dl; f2:=d2;

For tt:=l to icO-minc do fO:=fD*2;

Fortt:=l toicl-minc do fl :=f] *2;

Fortt:=l to ic2-minc do f2:=f2*2;

{Реализация метода}

G2:=fO*B2*B2-fl *C2*C2+f2*(B2+C2); GS:=sqrt(abs(G2*G2-4*f2*C2*B2*(f0*B2-fl*C2+f2))); If G2<=0 then w:=-l

else w:=l; BM:=(-2*f2*C2)/(G2+w*GS); xm:=x2+BM*H2;

If xm=0 then goto ler; end;

{Условия выхода из цикла итераций} unti I (abs((x2-xm)/xm)<eps)or(j>=50);

ler:

w riteln('I-,i,'j-j,' xm-,xm:3:8,' F-,f2:3:6,' *2A(',minc,')'); zx:=sqrt(abs(xm));

writeln(i,'-ja sobstvennaja chastota = ’,zx:4:6); mas[i]:=xm;

end; readIn; end.

Список идентификаторов:

mi - параметр выбора объекта расчета (1 - аналитически заданная функция, 2 - квадратная матрица);

к - количество отыскиваемых корней;

/ - счетчик, номер текущего корня;

у - счетчик, число итераций при определении корня уравнения;

хт - текущее значение zi на каждой итерации;

*о, х2 ~ начальные приближения;

fo, fu h - значения функции в трех точках;

mas - массив корней уравнений;

а х - заданная матрица;

ах1- вспомогательная матрица-двойник;

eps - точность определения корней;

d d - аналитически заданная функция.

Пример 1. Методом парабол отыскать корни уравнения

Fix) = (х - 2)(х - 2){х - 3)(JC- 0,001 )(* - 0,1).

Решение уравнения получено с использованием программы, описанной выше, с указанием вида функции (идентификатор dd) и значения параметра im= 1.

Результат вычислений - значение корней и количество ите­ раций (/), необходимое для нахождения каждого корня.

Пример 2. Определить собственные значения матрицы А [6]:

10

1

2

3

4

1

9

-1

2

-3

2

-1

7

3

-5

3

2

3

12

-1

 

4 -3 -5 -1 15

Результаты расчета собственных значений:

Я]=

1,65526610°; ^2=6,994838

10°;Я3 = 9,365555 10°;

Я4=

1,580892 101; Я5 = 1,917542

101

При вычислении значений функции fiz) используется под­

программа «rain», которая представляет число в форме b = а ■2к, где а - мантисса числа, заключенная в интервале [0,0625, 1,0]; к - показатель степени, кратный четырем.

Для работы непосредственно с функцией (пример 1) такая процедура является лишней. Но опыт использования алгоритма показал, что в основном приходится иметь дело с матрицами высоких порядков. Примером может служить метод конечных элементов [7]. Значение определителя может достичь очень

больших порядков, превосходящих возможности ЭВМ даже с учетом нестандартной длины представления переменных. По­ этому процедура «rain» становится необходимой.

При решении примера 2 была использована подпрограмма вычисления определителя методом Гаусса с учетом процедуры «rain» [4].

4. ПРИБЛИЖЕННЫЕ МЕТОДЫ РАСЧЕТА КОЛЕБАНИЙ

Применение простых приближенных формул (например формулы Релея) позволяет успешно рассчитывать колебания сложных систем. В этом случае задают форму колебаний систе­ мы, сводя ее таким образом к системе с одной степенью свобо­ ды. При удачной аппроксимации получают достаточно точное значение низшей собственной частоты системы, однако другие ее динамические характеристики остаются нераскрытыми.

Схематизация реальной системы как имеющей несколько степеней свободы достигается в методе Релея-Ритца, при ис­ пользовании которого форма колебаний системы задается в виде выражения, включающего несколько параметров.

Другим приемом, позволяющим свести реальную систему к системе с конечным числом степеней свободы, является метод прямой дискретизации. Чем больше число элементов, на кото­ рые разбита система при применении этого метода, тем ближе расчетная схема к исходной системе. Вместе с тем, если элемен­ ты выбраны однотипными, при большом их числе реализовать расчет колебаний возможно с использованием ЭВМ, применяя, например, метод начальных параметров в форме матриц пере­ хода или метод прогонки [3, 4].

Втом случае, когда сложную колебательную систему мож­ но разделить на несколько подсистем, динамические характери­ стики которых определяются сравнительно просто, полезными являются методы динамических податливостей и жесткостей. Эти методы представляют собой обобщение подходов к реше­ нию динамических задач метода сил и метода перемещений строительной механики.

Вметоде последовательных приближений задача об опре­ делении собственных частот и форм колебаний сводится к мно­ гократному расчету деформаций системы под действием из­ вестной статической нагрузки.

Выбор того или иного метода для динамического расчета сложной механической системы зависит от структуры этой сис­ темы и задачи расчета.

4.1. Дискретизация систем с распределенными параметрами

В большинстве случаев расчет систем с сосредоточенными параметрами оказывается более простым, чем расчет систем с распределенной массой. Поэтому при составлении расчетной схемы конструкции ее распределенную массу часто заменяют некоторым количеством сосредоточенных масс. При этом воз­ никает вопрос о точности, которая при этом достигается, и наи­ более рациональных приемах замены распределенной массы сосредоточенными массами.

Рассмотрим балку постоянного сечения длиной / и распре­ деленной массой mol. Не нарушая симметрии, можно предста­ вить ее в виде: 1) невесомой балки с сосредоточенной массой mol в центре; 2) невесомой балки с двумя грузами на концах, массой mol/2 (типа гантели). Анализируя влияние той или иной схематизации на результат расчета, нетрудно установить, что в первом случае инерция поворота элемента относительно его центра не учитывается, во втором случае эта инерция переоце­ нивается. Поэтому при схематизации балки участками, массы которых сосредоточены в их центрах, как правило, получают завышенные значения собственных частот, а при схематизации гантелями - заниженные. Впрочем, с увеличением числа участ­ ков разница между различными схематизациями исчезает.

Чем мельче дискретные элементы, на которые разбита уп­ ругая система (и чем больше их число), тем ближе решение за­ дачи для дискретной системы к решению задачи для заданной системы. Однако увеличение числа элементов ведет к усложне­ нию решения. Вместе с тем уточнение, получающееся при очень мелких элементах, является кажущимся. В самом деле, исход­ ные уравнения для системы с распределенной массой являются приближенными и теряют силу при деформациях, локализован­ ных на коротких участках. Так, уравнения продольных и изгибных колебаний стержня справедливы только до тех пор, пока длина полуволны колебания хотя бы в несколько раз превышает

размеры поперечного сечения. Поэтому дробить стержень при дискретизации на элементы более короткие, чем размеры попе­ речного сечения, бессмысленно.

4.2. Простейшие приближенные формулы для оценки низшей собственной частоты

Формула Релея. Пусть упругая система совершает собст­ венные колебания с частотой р, причем смещение х, массы т, от равновесного положения изменяется по закону

 

ж, =UjSin(pt).

 

(28)

Кинетическая энергия системы

 

 

1 п

\2

= \р2cos^pOXw/W?

 

xi

(29)

 

2 i=i V J

2

,=i

 

Потенциальная энергия системы изменяется пропорцио­ нально квадратам перемещений и может быть записана в форме

U = U0sm2(pt),

(30)

где UQ- энергия системы при амплитудных перемещениях х, = щ. Из закона сохранения энергии следует

Т + U = const,

поэтому должно быть

Таким образом, частота колебаний может быть определена по формуле Релея

Р

2

(31)

 

где М - обобщенная масса системы при данной форме колебаний.

Если при вычислении формулы (31) задаваться формой к-го собственного колебания системы, то будет рассчитана к-я собственная частота. Если задать форму колебаний, не слишком сильно отличающуюся от первой собственной формы, то фор­ мула Релея (31) позволяет определить приближенное значение первой частоты собственных колебаний системы. Причем при­ нимая форму колебаний, подобную статическим прогибам сис­ темы от некоторой подходящей нагрузки, можно существенно увеличить точность расчета за счет исключения операции диф­ ференцирования.

Метод Граммеля. Позволяет повысить точность расчета путем замены дифференцирования интегрированием. Последо­ вательность операций этого метода следующая:

1. Задают форму колебаний и подсчитывают максимальную кинетическую энергию движения

Tmn = -Xp 2i m r f

(32)

2 /=1

 

 

л

2.Определяют максимальные силы инерции масс Ft - р т,и,.

3.Определяют внутренние силы в элементах системы, вы­ зываемые нагрузками F,.

4.По внутренним силам вычисляют максимальную потен­ циальную энергию деформации Щ.

5.Из равенства Tmax = Uo пределяют частоту колебаний. Формула Донкерлея. Так как метод Релея приводит к за­

вышенному значению частоты колебаний, полезным является применение формулы, дающей заниженную частоту. Простей­ шей из такого рода формул является формула Донкерлея.

Точное значение собственной частоты многомассовой сис­ темы выразится формулой

(33)

п 2

Частота колебаний той же системы, но с одной массой т„ будет определяться по формуле