Содержание

 

Введение. 2

1. Общая теория изгиба стержней. 3

1.1 Криволинейная система координат. 3

1.2 Уравнение равновесия. 4

1.3 Закон Гука. 6

1.4 Уравнение равновесия в криволинейных координатах. 7

2. Решения общего уравнения для различных видов граничных условий  9

2.1 Консоль защемленный конец. Поперечное приложение силы.. 9

2.2.Консоль защемленный конец. Продольное приложение силы.. 12

2.3 Консоль защемленный конец. Произвольное приложение силы   13

2.4. Защемленные концы. Продольное приложение силы.. 15

2.5. Закрепленные концы. Продольное приложение силы.. 16

3.Алгоритмы вычислений эллиптических функций и интегралов. 18

3.1 Эллиптические интегралы.. 18

3.2 Метод арифметико-геометрического среднего. 18

3.2.1 Вычисление полного эллиптического интеграла первого рода K(k) 18

3.2.2 Вычисление полного эллиптического интеграла второго рода E(k) 19

3.3 Метод понижающего преобразования Ландена. 19

3.3.1 Вычисление неполного эллиптического интеграла первого рода F(j, k) 19

3.3.2 Вычисление неполного эллиптического интеграла второго рода E(j, k) 20

3.4 Эллиптические функции Якоби. 20

3.4.1 Вычисление эллиптических функций Якоби sn u, cn u. 21

4.Пакет прикладных программ Elastic Rod. 22

4.1    Структура программы.. 22

Приложение 1. 24

Литература. 29


Введение

 

Задача об изгибе стержня является одним из вопросов расчета конструкций. Как правило, такие задачи, решаются на базе приближенных линеаризованных уравнений равновесия для изогнутых стержней, приводящих к решению в виде полиномов. В основном, используются эти решения. Вместе с тем имеются для некоторых случаев точные решения нелинейных уравнений, выраженные в квадратурах [1], или в эллиптических интегралах [2]. В последнем случае решения определяются тремя параметрами, связанными с условиями на двух концах и действующей силой и определяющихся из вспомогательных таблиц и номограмм. Все эти решения имеют громоздкий вид и труднодоступны для инженеров практиков, поэтому до последнего времени всерьез решались задачи  получения приближенных выражений даже для таких стандартных характеристик как максимальный прогиб стержня [5]. Вместе с тем  в последнее время был, достигнут определенный прогресс в получении точных решений, в некоторых случаях выраженных через эллиптические функции с единственным параметром модулем k, определяемым действующей силой.

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

1. Общая теория изгиба стержней

 

Уравнения изгиба стержней хорошо известны. Их можно получить вариационным методом или из условия равновесия моментов сил (см., например, []). Приведем здесь в общем виде теорию изгиба стержней для случая больших геометрических нелинейностей, следуя Л.Д. Ландау и Е.М. Лифшицу [1].

1.1 Криволинейная система координат

 

Введем систему координат. Пусть x, y – декартовы координаты в плоскости изгиба стержня, l – длина вдоль линии стержня, θ = θ(l) – угол наклона касательной в текущей точке к линии стержня, а κ = κ(l) = dθ/dl – кривизна этой кривой. Отнесем один закрепленный конец стержня в начало координат. Тогда:

                                (1)

– единичный вектор касательной к кривой l, а

– вектор нормали к кривой, где

                                                         (2)

– единичный вектор нормали. Таким образом, мы рассмотрели две системы координат – декартовы координаты, с единичными ортами i и j, и касательную систему координат, с подвижными вдоль линии стержня (поскольку угол θ(l) зависит от криволинейной длины l), единичными ортами τ и n. Единичные орты связаны между собой единичной матрицей перехода

,         .

Соответственно любой вектор А имеет компоненты в каждой системе координат:

,


которые также связаны между собой этой матрицей перехода:

,         .         (3)

Производные единичных ортов вдоль кривой связаны между собой очевидными соотношениями:

,             .                                      (4)

Линию стержня целесообразно будет задавать в виде функциональной зависимости θ = θ(l). Тогда линия стержня в параметрическом задании, с параметром криволинейная длина l, легко восстанавливается:

                                                 (5)

1.2 Уравнение равновесия

 

Получим уравнение равновесия тонкого стержня, изгибающегося в плоскости с помощью уравнений равновесия для каждого малого элемента стержня. Рассмотрим какой-нибудь из бесконечно малых элементов стержня, вырезанный двумя бесконечно близкими сечениями, и вычислим полную действующую на него силу. Обозначим полную силу внутренних напряжений, приложенную к площади сечения стержня, посредством F. Компоненты этого вектора равны интегралам от напряжений sij по площади сечения:

.                                                (6)

Если рассматривать два бесконечно близких сечения как поверхности оснований вырезаемого ими элемента стержня, то на верхнее основание действует сила F + dF, а на нижнее действует сила F. Их сумма есть дифференциал dF. Пусть далее K есть действующая на стержень внешняя распределенная сила, отнесённая к единице его длины. Тогда на элемент длины dl действует внешняя сила Kdl. Равнодействующая всех сил, действующих на этот элемент, есть dF + K dl. В равновесии эта сила должна обращаться в нуль. Таким образом, получаем

.                                                  (7)

Второе уравнение находится из условия равенства нулю полного момента сил, приложенных к данному элементу. Пусть M есть момент сил внутренних напряжений, действующих на площадь сечения стержня. Этот момент берется относительно точки (начала координат), лежащей в самой плоскости этого сечения. Будем вычислять суммарный момент, приложенный к данному элементу стержня, относительно точки (назовем ее точкой О), лежащей в плоскости его верхнего основания. Тогда внутренние напряжения на этом основании дают момент M + dM. Момент относительно точки О сил внутренних напряжений в нижнем основании элемента складывается из момента –M этих сил относительно начала координат в плоскости нижнего основания (точка О¢) и момента относительно О суммарной силы –F, действующей на этом основании. Этот второй момент равен [(-dr)×(-F)], где dr - вектор элемента длины стержня от O¢ к O, а r(x, y) - радиус вектор. В равновесии полный действующий на элемент стержня момент сил должен быть равен нулю: dM + [dr×F] = 0. Разделив это равенство на dl, получаем уравнение

.                                             (8)

Уравнения (7) и (8) представляют собой полную систему уравнений равновесия произвольным образом изогнутого стержня. Продифференцировав (8), подставим в него (7) и получим общее уравнение равновесия стержня

.                                   (9)


1.3 Закон Гука

 

Изгибающий момент определяется из закона Гука. При этом предполагается, что при изгибе стержня деформациями растяжения можно пренебречь по сравнению с деформациями изгиба. Для стержня кругового сечения можно написать при чистом изгибе

,                                       (10)

и поскольку у вектора М всего одна компонента, нормальная плоскости изгиба стержня, то

.                                        (11)

Здесь Е – модуль Юнга, I – момент инерции стержня.

Общее уравнение (12) можно переписать в других обозначениях. Введем напряжения вдоль стержня . Пусть q – внешняя распределенная нагрузка, перпендикулярная в каждой точке к линии стержня, тогда из (7):

.

Преобразуем теперь уравнение (9)

,

,

.

Поскольку у вектора М одна компонента, то, используя выражение (11) для модуля вектора момента, имеем

.

В таком виде принято записывать уравнения равновесия пластин. Это выражение имеет такой же структурный вид.

В случая малых отклонений стержня от положения равновесия (малого прогиба  y = w(x), dl = dx) уравнение (9) перейдет, в декартовых координатах, в

,

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

 

1.4 Уравнение равновесия в криволинейных координатах

 

         Получим уравнение равновесия тонкого стержня (упругой линии) в касательной системе координат, где искомой функцией будет θ(l) – угол наклона касательной к оси стержня.


Рис. 1.

 


Силы F и К имеют следующие компоненты в плоскости изгиба:

,         .                (12)

Векторное уравнение (8) перепишем в координатном виде. Т.к. вектор момента М имеет всего одну компоненту, перпендикулярную плоскости изгиба, то получим всего одно уравнение

.                           (13)

Для нахождения нормальной компоненты упругой силы Fn проинтегрируем уравнение (7)

,                           (14)

– в декартовых координатах, где Px и Py – константы интегрирования, имеющие физический смысл постоянных сосредоточенных (т.е. приложенных к одной точке стержня или действующих на малом участке стержня) внешних сил. Соответственно в касательной системе координат имеем

                     (15)

Подставим в уравнение (8) выражение для изгибающего момента М (11) из закона Гука и значение нормальной компоненты Fn взятой из выражения (15)

.                (16)

Получили общее уравнение равновесия тонкого стержня (упругой линии) для произвольных распределенных К и сосредоточенных Р внешних нагрузок.

Если действующие на стержень внешние силы являются сосредоточенными, т.е. приложены только к отдельным изолированным его точкам, то на участках стержня между точками приложения сил уравнения равновесия упрощаются. Из (7) при K = 0 имеем F = const, т.е. силы внутренних напряжений постоянны вдоль длины каждого из указанных участков стержня и определяются из условий конкретной задачи.


2. Решения общего уравнения для различных видов граничных условий

 

2.1 Консоль защемленный конец. Поперечное приложение силы

 

 Рассмотрим стержень изначально не изогнутый и расположенный вдоль оси ОX (Рис.2). Внешняя распределенная нагрузка отсутствует, К = 0. Левый конец стержня защемлен, на свободный правый действует сосредоточенная поперечная нагрузка Р, направленная вдоль оси OY, Рy = P, Px = 0.

 

Рис. 2.

 

Введем новую неизвестную переменную γ(l) = θ(l) + π/2. Тогда уравнение (16) будет в переменных γ(l) иметь вид

.                                              (17)

Это широко известное уравнение нелинейного маятника. Его общее решение записывается в эллиптических функциях Якоби

g(l) = 2arcsin[k sn(ql + c)].

Здесь введено обозначение собственного числа q = P/EI, модуль k и c – константы интегрирования. Граничными условиями для уравнения (17) в данной задаче будут выражения: γ(0) = π/2 – защемление, dγ/dl(L) = 0 – свободный конец. Спектр собственных значений при этих условиях имеет вид:

P/Pc = (2/p)2{(2n - 1) K(k) - F [arcsin(), k]}2, n = 1, 2, ...      (18)

где Рс = (p/2)2EI/L2 – Эйлерова сила. Координаты x и y произвольной точки стержня в параметрическом виде (безразмерный параметр t = l / L изменяется от 0 до 1) записываются следующим образом:

 

x/L = [2k / (pK - F1)] [(1-1/2k2)1/2 - cnu],                                       

 

y/L = t - [2/(pK - F1)] [E(amu, k) - E1 ].                                    (19)

 

где аргумент u = (pK - F1)t +F1 cnu и amu - эллиптические косинус и амплитуда Якоби, E(j, k) - неполный эллиптический интеграл второго рода, введено обозначение

E [ arcsin(), k] º E1, и учтено, что cn(F1, k) = cos(arcsin) = (1 - 1/2k2)1/2.

Уравнения (19) описывают в параметрическом виде (0 £ t £ 1) форму сильно изогнутой консоли под действием статической (n = 1) и динамических (n = 2, 3, ...) нагрузок. Модуль k изменяется в пределах 1/2 £ k2 £ 1, задает общую кривизну консоли и определяется действующей силой P. При этом для каждого порога зависимость k2(P/Pc) определяется своим уравнением (18) при соответствующем p = 2n - 1.

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

 

dy/dx = (1 - 2d2) / 2k s d,

d2y/dx2 = (pK - F1) c / 4Lk2 s3d3.

 

Здесь использованы обозначения s = snu, d = dnu, c = cnu. Точки максимума и минимума определяются уравнением dnu =, точки перегиба - условием cnu = 0. Здесь учтено, что pK - F1 > 0 всегда, кроме как на статическом, нулевом пороге при p = 1 и P = 0; величина F1 изменяется в пределах K() ³ F1 ³ F(p/4, 1), т.е. 1.85 ³ F1 ³ 0.88. Число точек перегиба зависит от номера моды p. При p = 1 есть одна точка перегиба при t = 1, что совпадает с широко используемыми приближенными решениями в виде полиномов. При p = 3 есть две точки перегиба, которые при 1/2 £ k2 £ 1 лежат в пределах: 0 £ t1 £ 1/3,  t2 = 1. При p = 5 есть три точки перегиба: 0 £ t1 £ 1/5,  1/2 £ t2 £ 3/5,  t3 = 1. Координаты свободного конца консоли равны (при t = 1):

 

x/L = 2k (1 - 1/2k2)1/2 / (pK - F1),

y/L = 1 - 2(pE - E1) / (pK - F1),

 

где E = E(k) - полный эллиптический интеграл второго рода.

Для статической моды p = 1 при нагрузке P®0 модуль k2®1/2, неполные интегралы E(j, k)®E(k), F(j, k)®K(k). Используя полученные в [] разложения этих неполных эллиптических интегралов при k2 » 1/2, находим координаты свободного конца y/L » 2k2 - 1, x/L » (2 - 2k2)1/2 и при k2 = 1/2 координаты y/L = 0, x/L = 1.

Для динамических мод (p = 3, 5, ...) координаты свободного конца (t = 1)

 

x/L = 2k (1 - 1/2k2)1/2 / (p - 1)K,

y/L = 1 - 2E / K,

 

и на порогах, при k2 = 1/2, отсюда имеем

 

x/L = 0,   y/L » -0.46      при   t = 1

 

независимо от номера моды.

 

2.2.Консоль защемленный конец. Продольное приложение силы

 

 Рассмотрим стержень изначально не изогнутый и расположенный вдоль оси ОX (Рис. 3). Внешняя распределенная нагрузка отсутствует, К = 0. Левый конец стержня защемлен, на свободный правый действует сосредоточенная продольная нагрузка Р, направленная вдоль оси OХ, Рy = 0, Px = - P.

Рис. 3

Уравнение для этого случая приложения силы принимает следующий вид:

.

Граничными условиями для данного уравнения будут выражения:

q(0) = 0, .

В этом случае общее решение имеет вид:

q(t) = 2arcsin[k sn(qt + F1, k).

Применив первое граничное условие, имеем F1 = 2mK, второе условие q + 2mK = (2m” –1)K , где m, m – принимают значения 1, 2, 3, …

По свойству нулей эллиптического косинуса Якоби получим

q =( 2 m” –2 m - 1 ) K = p K,  где p =2 m – 1 = 1, 3, 5, …

Спектр собственных значений при этих условиях имеет вид:

P/Pc = (2/p)2{(2n - 1) K(k) }2, n = 1, 2, ...

Координаты х и  y в произвольной точке стержня в параметрическом виде записываются в следующем виде:

 

,

.

где аргумент и = pK t, tпараметр.

 

2.3 Консоль защемленный конец. Произвольное приложение силы

 

Изначально стержень не изогнут и расположен вдоль оси ОX (Рис. 4). Внешняя распределенная нагрузка отсутствует, К = 0. Левый конец стержня защемлен, на свободный правый действует сосредоточенная нагрузка Р под углом f, где .

Рис. 4.

Уравнение имеет вид:

.

Подставляя  Px = - P cosf,  Py = P sinf.

Получаем уравнение в виде

,

введем новую переменную g(l) = q(l) + f, где f - угол приложения силы. Тогда уравнение будет иметь вид

.

Общее решение

g = 2 arcsin (k sn(ql + F1)).

Граничными условиями для данного уравнения будут выражения:

g(l) = f , dg/dl(L) = 0.

Применив первое граничное условие, имеем sin(f/2) = k sn F1, . Модуль эллиптической функции изменяется в пределах . Первая производная

.

Применив второе граничное условие, получим:

q = (2m - 1)KF1. где m = 1, 2, 3, …

Спектр собственных значений при этих условиях имеет вид:

P/Pc = (2/p)2{(2n - 1) K(k) - F 1}2, n = 1, 2, ...

Линия стержня в параметрическом задании легко восстанавливается

,

.

Координаты x и  y в произвольной точке стержня в параметрическом виде записываются в следующем виде:

 

,

.

где введены обозначения

,

 

и аргумента u = (pKF1) t+ F1.

 

2.4. Защемленные концы. Продольное приложение силы

 

Рассмотрим стержень изначально не изогнутый и расположенный вдоль оси ОХ (Рис. 5). Внешняя распределенная нагрузка отсутствует, К = 0. Стержень защемлен с двух сторон, на правый конец действует сосредоточенная продольная нагрузка Р, направленная вдоль оси ОХ, Рх = Р, Ру = 0.

Рис. 5.

Уравнение для этого случая приложения силы принимает следующий вид:

.

Граничными условиями для данного уравнения будут выражения:

q(0) = 0, q(1) = 0,..

В этом случае общее решение имеет вид:

q(t) = 2arcsin[k sn(qt + F1, k).

Применив первое граничное условие, имеем F1 = 2mK, второе условие q + 2mK = 2mK , где m, m – принимают значения 1, 2, 3, …

По свойству нулей эллиптического косинуса Якоби получим

q =2( m” – m) K = 4 m K,  где m = 1, 2, 3, …

Спектр собственных значений при этих условиях имеет вид:

P/Pc = (2/p)2{( 4 n K(k) }2, n = 1, 2, ...

Координаты х и  y в произвольной точке стержня в параметрическом виде записываются в следующем виде:

 

,

.

где аргумент и = 4pK t, tпараметр.

 

2.5. Закрепленные концы. Продольное приложение силы

 

Рассмотрим стержень изначально не изогнутый и расположенный вдоль оси ОХ (Рис. 6). Внешняя распределенная нагрузка отсутствует, К = 0. Стержень шарнирно закреплен с двух сторон, на правый конец действует сосредоточенная продольная нагрузка Р, направленная вдоль оси ОХ, Рх = Р, Ру = 0.

Рис. 6.

 

Уравнение имеет вид

.

Общее решение

q(t) = 2arcsin[k sn(qt + F1, k),

где введено обозначение для неполного эллиптического интеграла первого рода F1 = F [arcsin(), k].

Граничными условиями для уравнения в данной задаче будут выражения:

 ,  .

Первая производная

.

Применив первое граничное условие, имеем F1 = (2 n + 1)K, второе условие

q  + F1 = (2 n’’ + 1)K, где n, n – принимают значения 1, 2, 3, …

По свойству нулей эллиптического косинуса Якоби получим

 q = 2 ( n’ n )K = 2 mK , где m = 1, 2, 3… спектр собственных чисел.

Спектр собственных значений при этих условиях имеет вид:

P/Pc = (2/p)2{2nK(k)}2, n = 1, 2, ...

Координаты  х и y в произвольной точке стержня в параметрическом виде записываются в следующем виде:

,

,

где аргумент u = 2 pK t

В случае разложения по малым k приходим к следующим выражениям силы и координат изогнутого стержня:

k » 0,   y(x) = sin(mpx/L), что соответствует приближенным решениям приведенным у А. С. Вальмира [6] для данного вида закрепления.

 

3.Алгоритмы вычислений эллиптических функций и интегралов

 

3.1 Эллиптические интегралы

 

Эллиптическим в общем случае называется интеграл:

где R (x, y)- рациональная функция от х, у.

Эллиптический интеграл первого рода:

.

Эллиптический интеграл второго рода:

.

Здесь j - амплитуда; k – модуль эллиптического интеграла.

Интегралы, у которых амплитуда j = p/2, называются полными. Для интегралов первого и второго рода применяются обозначения

Если модуль вещественный, то без ограничения общности можно считать, что k £ 1. Используется также дополнительный модуль, равный по определению

.

3.2 Метод арифметико-геометрического среднего

3.2.1 Вычисление полного эллиптического интеграла первого рода K(k)

При вычисление K(k) одним из наиболее эффективных является итерационный метод арифметико-геометрического среднего (АГС). Начиная с пары чисел a0 = 1, b0 = k1 = cos a, находятся следующие среднее арифметическое и среднее геометрическое, которые образуют две сближающиеся последовательности:

Процесс заканчивается при таком N,  для которого aN = bN  c заданной точностью. Искомое значение K(k) определяется по формуле

.

Требуемые значения N растут по мере приближения k к единице, а k1 к нулю.

3.2.2 Вычисление полного эллиптического интеграла второго рода E(k)

 

Вычисление полного эллиптического интеграла второго рода производится по той же схеме АГС с использованием разностей

получаемых на каждой итерации. Тогда

где с0 = k.

3.3 Метод понижающего преобразования Ландена

3.3.1 Вычисление неполного эллиптического интеграла первого рода F(j, k)

 

Вычистить неполный эллиптический интеграл F(j, k) можно с помощью понижающего преобразования Ландена, при котором производится последовательный переход к эллиптическим интегралам с прогрессивно уменьшающимся модулем. Модуль, амплитуда и интеграл преобразуются следующим образом:

  

Выбирается ветвь arctg,. Для которой  . N – кратное повторение указанного преобразования должно привести к эллиптическому интегралу F(jN, kN)  с настолько малым aN, что F (jN, kN) » jN. Возвращение обратным преобразованием к старому значению j приводит к формуле

.

3.3.2 Вычисление неполного эллиптического интеграла второго рода E(j, k)

 

Понижающее преобразование Ландена является также основой для вычисления одновременно неполных эллиптических интегралов первого и второго рода. В данном алгоритме понижающее преобразование Ландена используется совместно с итерационной схемой АГС. Амплитуда эллиптического интеграла преобразуется по формуле

Значения аn, bn вычисляются по схеме АГС, которая выполняется параллельно. Итерационный процесс должен заканчиваться при достаточно малом модуле kN , чтобы

.

Возвращение к старому значению j0 = j приводит к формулам

;   .

3.4 Эллиптические функции Якоби

 

Эллиптические функции Якоби могут быть определены через обратную функцию эллиптического интеграла первого рода. Пусть в интеграле

u и j являются комплексными переменными. Рассмотрим обратную к u функцию

,

называемую амплитудой. Тогда эллиптическими функциями Якоби являются

Они называются соответственно эллиптическим синусом, эллиптическим косинусом.

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

3.4.1 Вычисление эллиптических функций Якоби sn u, cn u

 

Вычислять эллиптические функции Якоби можно с помощью метода АГС.

1.     Исходная тройка чисел и итерационная схема совпадают

Процесс заканчивается на таком N, при котором сN » 0 с заданной точностью.

2.     Находим амплитуду

где u  - аргумент (вещественный) искомой функции.

3.     Строим обратную рекуррентную схему:

4.     Искомые функции вычисляются по формулам


4.Пакет прикладных программ Elastic Rod

 

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

Программа разработана с использованием современных языков программирования Java, JavaScript и является Интернет приложением. В технологическом смысле это открытая сетевая разработка, что позволяет любому пользователю сети Интернет не только управлять программой, но и изменять ее функции.

4.1   Структура программы

 

         Программа состоит из набора модулей предназначенных для вычисления эллиптических интегралов, эллиптический функций, интерфейса ввода вывода и организующего модуля (fmanager.js), который связывает между собой модули интерфейсной и функциональной части (Рис. 7). Исходный код и назначение модулей приведены в приложении 1.

 

 

 

 

 

 

 

 

 

 

 


fEli2.js

 

fEli1.js

 
                                                                                              

 

 

Рис. 7

Открытая архитектура программы позволяет вносить дополнения касающиеся других видов закрепления через подключение дополнительного модуля.


Заключение.

 

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

·        Консоль защемленный конец. Поперечное приложение силы.

·        Консоль защемленный конец. Продольное приложение силы.

·        Консоль защемленный конец. Произвольное приложение силы.

·        Защемленные концы. Продольное приложение силы.

·        Закрепленные концы. Продольное приложение силы.

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

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


Приложение 1

 

В качестве языкового средства разработки программы использовался объектно ориентированный скриптовой язык JavaScript.

Модули программы позволяющие вычислять полные интегралы первого и второго рода методом АГС.

 

Модуль fcalkK.js позволяющий вычислять полный эллиптический интеграл первого рода К(k)

 

/*

 k – модуль эллиптического  интеграла

 е – точность вычисления интеграла

*/

 

function fcalkK(k, e){ 

    var a = new Array( );

    var b = new Array( );

    var c = new Array( );

    var i = 0;

 

    a[0] = 1;

    b[0] = Math.pow((1-k*k), 1/2);

 

      do{

        a[i+1]=(1/2)*(a[i] + b[i]);

        b[i+1]=Math.pow((a[i]*b[i]), 1/2);

        i ++

      } while((a[i] - b[i]) >= e);

 

    var K=(Math.PI)/(2*a[i]);

  return K;

}

Модуль fAGSE.js позволяющий вычислять полный эллиптический интеграл второго рода E(k)

 

/*

 k – модуль эллиптического  интеграла

 е – точность вычисления интеграла

*/

 

  function fAGSE(k, e){

    var a = new Array( );

    var b = new Array( );

    var c = new Array( );

    var i = 0;

      a[i] = 1;

      b[i] = Math.pow((1-k*k), 1/2);

      c[i] = k;

        do{

            i ++

            a[i] = (1/2)*(a[i-1] + b[i-1]);

            b[i] = Math.pow((a[i-1] * b[i-1]), 1/2);

            c[i] = (1/2)*(a[i-1] - b[i-1]);   

        } while (c[ i ]>e);    

     var ss = 0;

     for (var n = 0; n <= i; n ++){

       ss = ss + Math.pow(2, n)*c[n]*c[n];

     }

   var sk = 1 - (1/2)*ss;

   K = fcalkK(k, e);

   var E = sk*K;

 return E;

}

 

Модули программы позволяющие вычислять неполные интегралы первого и второго рода с помощью понижающего преобразования Ланде.

Модуль fEli1.js  позволяющий вычислять неполный интеграл первого рода F(j, k).

 

/*

 fi – угол

 ck – модуль эллиптического интеграла.

*/

function fEli1 (fi, k){

ck = Math.pow(1-k*k,0.5);

x = Math.tan(fi);

 if (x>0||x<0){

    if (ck>0||ck<0){

    angle = Math.abs(1.0/x);

    geo = Math.abs(ck);

    ari = 1.0;

    pim = 0.0;

    aari = ari;

    test = 0.0;

    sqgeo = 0.0;

    var flg = true;

  while (flg){

      sqgeo = ari*geo;

      aari = ari;

      ari = geo + ari;

      angle = (- sqgeo/angle) + angle;

      sqgeo = Math.sqrt(sqgeo);

    if (angle = = 0){

        angle = sqgeo*1.0E - 8; 

      }   

      test = aari*1.0E - 4;     

     

      if ((Math.abs (aari - geo) - test) < 0 | | (Math.abs (aari - geo) - test) = = 0) {

        flg = false;

      }else{

        geo = sqgeo + sqgeo;

        pim = pim + pim;

        if (angle<0) {

          pim = pim + Math.PI;

        }

      }

    }

    if (angle<0) {

     pim = pim + Math.PI;

    }

    Res = (Math.atan(ari/angle) + pim)/ari;

    if (x = 0 | | x > 0) {

      return Res;

    }else{ 

      Res = - Res;

      return Res;

    }

  }else{

    Res = Math.log(Math.abs(x) + Math.sqrt(1.0 + x*x));

    if (x < 0) {

      Res = - Res;

    }else{

      return Res;

    }

  }

 }else{

   Res = 0.0;

   return Res;

 }

}

 

Модуль fEli2.js программы позволяющий вычислять неполный интеграл второго рода Е(j, k)

/*

 fi – угол

 ck – модуль эллиптического интеграла.

*/

function fEli2 (fi, k){

ck = Math.pow(1 - k*k, 0.5);

x = Math.tan(fi);

a = 1;

b = ck*ck;

var flg = true;

  if (x = = 0) {

    Res = 0;

    return Res;

  }else{

   c = 0.0;

   d = 0.5;

   if (ck = = 0) {

    Res = Math.sqrt(1.0 + x*x);

    Res = (((a - b)*Math.abs(x))/Res) + (b*Math.log(Math.abs(x) + Res));

    Res = Res + (c*(a - b));

      if (x < 0) {

        Res = - Res;

        return Res;

      }else{

        return Res;

      }

   } else {

     an = (b + a)*0.5;

     aa = a;

     Res = b;

     ang = Math.abs(1.0/x);

     pim = 0.0;

     isi = 0.0;

     ari = 1.0;

     geo = Math.abs(ck);

  while (flg) {

    Res = aa*geo + Res;

    sgeo = ari*geo;

    aa = an;

    aari = ari;

    ari = geo + ari;

    an = ((Res/ari) + aa)*0.5;

    aang = Math.abs(ang);

    ang = (-sgeo/ang) + ang;

    pima = pim;

       if (ang < 0) {

         pim = pim + Math.PI;

         isi = isi + 1;

       }else   if (ang = = 0) {

         ang = (- 1.0E - 8)*aang;

         pim = pim + Math.PI;

         isi = isi + 1;}

         aang = (ari*ari) + (ang*ang);

         p = d/Math.sqrt(aang);

           if ((isi - 4) = = 0 | | (isi - 4) > 0) {

             isi = isi - 4;}

           if ((isi - 2) = = 0 | | (isi - 2) > 0) {

             p = - p;}

           c = c + p;

           d = (d*(aari - geo)*0.5)/ari;

             if ((Math.abs(aari - geo) - 1.E - 4*aari) > 0) {

               sgeo = Math.sqrt(sgeo);

               geo = sgeo + sgeo;

               pim = pim + pima;

               isi = isi + isi; 

              }else{

                flg = false;

             }

      } 

    }

     Res = (Math.atan(ari/ang) + pim)*(an/ari); 

     c = c + (d*ang)/aang;   

     Res = Res + c*(a - b);

      if (x < 0) {

        Res = - Res;

        return Res;

      }else{

        return Res;

      }

   }

Модуль программы позволяющий вычислять эллиптические функции Якоби методом АГС.

Модуль fam.js позволяющий вычислять амплитуду am(u, k).

/*

k – модуль эллиптического  интеграла

е – точность вычисления интеграла

n номер моды

и – аргумент эллиптической функции,

*/

  function fam (k, e, n, massivu){ 

    var a = new Array( );

    var b = new Array( );

    var c = new Array( );

    var i = 0;                                             

      /*вычислим промежуточные значения a,b,c методом АГС*/

      a[i] = 1;

      b[i] = Math.pow((1-k*k), 0.5);

      c[i] = k;

        do{

          i ++

          a[i] = (0.5)*(a[i-1] + b[i-1]);

          b[i] = Math.pow((a[i-1]*b[i-1]), 0.5);

          c[i] = (0.5)*(a[i-1] - b[i-1]);

        } while (c[i] > e);

      /*строим обратную рекурентную схему*/

      var y = new Array( );   

      var yy = new Array( );

      var len = massivu.length - 1;

      var s = 1;

      for(var j = 0; j <= len; j ++){

         y[i] = Math.pow(2, i)*massivu[j]*a[i];

          for(var N = i; N >= 1; N--){ 

            y[N-1] = (0.5)*(y[N] + Math.asin((c[N]/a[N])*Math.sin(y[N])));

          }

        yy[j] = y[0];

      }

return yy;

}

Модуль fmanager.js связывающий между собой модули интерфейсной и функциональной части

/*

 k – модуль эллиптического  интеграла

 n номер моды

*/

 

function fmanager (k, nn){

  var x = new Array( );

  var y = new Array( );

  var x0 = 200;

  var y0 = 200;

  var p = (2*nn) - 1;    

     k = Math.pow(k, 0.5);

     K = fcalkK (k, e);

     F1 = fEli1(Math.asin(Math.pow(2, 0.5)/(2*k)), k);

     E1 = fEli2(Math.asin(Math.pow(2,0.5)/(2*k)), k);

       massivu = fu(k, e, nn, K, F1, p, 99, mod);

       massivam = fam(k, e, nn, massivu);

     Eam = fEli2Am(k, e, nn, 0.01, massivam);

     cnu = fcn(k, e, nn, massivu);

     for (var t = 0; t <= 99; t ++) {

    x[t] = x0 + Math.round(((2*k/(p*K-F1))*(Math.pow(1-1/(2*k*k),0.5)-cnu[t]))*197.5);

    y[t] = y0 + Math.round((t*0.01 - (2/(p*K - F1))*(Eam[t] - E1))*197.5);       

     }

    for (var i = 0; i < = 99; i ++) {

     wAppleta.document.applets[0].fsetArray(x[i], y[i], i);

     }

    wAppleta.document.applets[0].fAngleSet(1.57);

    wAppleta.document.applets[0].freP();

}

 

Модули интерфейса ввода вывода.

 

Модуль Line.java предназначенный для построение графика и реализованный на языке Java.

 

import java.applet.*;

import java.awt.*;

import java.util.*;

import java.lang.*;

 

public class Line extends Applet {

  int[] x=new int[100];

  int[] y=new int[100];

  boolean flg=false;

  int ox=200,oy=200;

  float angle; 

  int dRx,dRy,dRxr1,dRyr1,dRxr2,dRyr2;

 

  public void paint(Graphics g) {

    Dimension d = this.size();

    g.setColor(Color.black);

    g.setColor(Color.blue); 

  if(flg){

    for(int i=0;i<=99;i++){

      g.drawLine(ox,oy,x[i],y[i]);

        ox=x[i];

        oy=y[i];

    }

   dRx=(int)(15*Math.cos(angle));

   dRy=(int)(15*Math.sin(angle));

 

   dRxr1=(int)(10*Math.cos(angle-0.4));

   dRyr1=(int)(10*Math.sin(angle-0.4));

   dRxr2=(int)(10*Math.cos(angle+0.4));

   dRyr2=(int)(10*Math.sin(angle+0.4));

   g.setColor(Color.red); 

   g.drawLine(x[99],y[99],x[99]-dRx,y[99]+dRy);

 

   g.drawLine(x[99]-dRx,y[99]+dRy,x[99]-dRx+dRxr1,y[99]+dRy-dRyr1);

   g.drawLine(x[99]-dRx,y[99]+dRy,x[99]-dRx+dRxr2,y[99]+dRy-dRyr2);

  ox=200;

  oy=200;

  }

  }

 public void fsetArray(int xx,int yy,int e){

   x[e]=xx;

   y[e]=yy;

  flg=true;

 }

 public void fAngleSet(float v0){

  angle=v0;

 }

 public void freP(){

   repaint();

 }

}

 

Модуль Inputparam.htm осуществляет ввод параметров.

 

<html>

<head>

  <title>Inputparam</title>

</head>

<body bgcolor="whitesmoke">

<form name="paramInput">

 <table border="0" width="100%">

   <tr>

     <td>

       <table>

         <tr>

           <td>E</td>

          <td><input type="text" name="E"></td>

         </tr>

         <tr>

          <td>J</td>

          <td><input type="text" name="J"></td>

         </tr>

  </table>

  </td>

</tr>

 <tr>

   <td>

  <table>

    <tr>

     <td>P: </td>

     <td><input type="text" name="P"> </td>

    </tr>

    <tr>

       <td>k</td>

       <td><input type="text" name="k"></td>

    </tr>

    <tr>

      <td>n</td>

      <td><input type="text" name="n"></td>

    </tr>

    <tr>

    <td><input type="button" value="Построить " onClick="top.fRes(this.form);"></td>

    </tr>

  </table>

 </td>

 </tr>

</table>

</form>

</body>

</html>

 

Литература

 

1.      Ландау Л.Д., Лифшиц Е.М. Теория упругости. - М.: Физматгиз, 1987.

2.     Попов Е.П. Теория и расчет гибких упругих стержней. - М.: Физматгиз, 1986.

3.     Цимринг Ш.Е. Специальные функции и определённые интегралы. Алгоритмы. Программы для микрокалькуляторов: Справочник. - М.: Радио и связь, 1988.

4.     Справочник по специальным функциям // Под ред. М. Абрамовица и И. Стиган, М: Наука, 1979.

5.     Астапов Н. С. Приближенные формулы для прогибов сжатых гибких стержней // ПМТФ. 1996. Т. 37, №4. С. 200 – 203.

6.     Вольмир А.С. Устойчивость деформируемых систем. М.: Наука, 1967.

7.     http://www.nag.com  NAG (Numerical Algorithms Group)

8.     http://www.acm.org   ACM (Association of Computing Machinery)