Научная статья на тему 'Инструментальная система решения двумерных и трехмерных задач теории упругости на базе Maple'

Инструментальная система решения двумерных и трехмерных задач теории упругости на базе Maple Текст научной статьи по специальности «Математика»

CC BY
336
171
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРЕПРОЦЕССОР / ПРОЦЕССОР / ПОСТПРОЦЕССОР / МЕТОД НАЧАЛЬНЫХ ФУНКЦИЙ

Аннотация научной статьи по математике, автор научной работы — Овский А. Г., Толок В. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Овский А. Г., Толок В. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Инструментальная система решения двумерных и трехмерных задач теории упругости на базе Maple»

УДК 519.876.5 Овский А. Г.1, Толок В. А.2

1Аспирант Запорожского национального университета 2Д-р техн. наук, заведующий кафедрой Запорожского национального технического университета

ИНСТРУМЕНТАЛЬНАЯ СИСТЕМА РЕШЕНИЯ ДВУМЕРНЫХ И ТРЕХМЕРНЫХ ЗАДАЧ ТЕОРИИ УПРУГОСТИ НА БАЗЕ MAPLE

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

Ключевые слова: препроцессор, процессор.

ВВЕДЕНИЕ

В настоящее время не теряют своей актуальности аналитические методы, которые позволяют получать точные и обобщенные результаты. Благодаря развитию систем компьютерной математики (СКМ) стала возможной реализация операций аналитического дифференцирования и интегрирования. Это открывает большие возможности в применении СКМ для математического моделирования. Однако системы не обладают достаточно развитыми способами решения технических задач. Большинство из них ориентировано на применение в алгебре и математическом анализе [1]. Поэтому в процессе математического моделирования их необходимо дорабатывать, чтобы иметь возможность применить для решения той или иной сложной технической задачи. Создав препроцессор в СКМ и воспользовавшись вычислительными функциями СКМ, можно построить средство для решения конкретных задач.

В предлагаемой работе дана характеристика одного из средств для решения статических задач линейной теории упругости - инструментальной системы, основанной на базе ядра СКМ Мар1е. Система Мар1е была выбрана авторами как система, наиболее подходящая по входному языку. С помощью программирования в ее среде можно создать эффективное вычислительное средство для решения задач теории упругости. В разработанной инструментальной системе решаются задачи теории плит, пластин, полуплоскости и полупространства. Производятся сложные аналитические операции над формульным заданием выражений теории упругости. Вопросами разработки инструментальных систем для решения задач теории упругости с внедрением аналитических методов занимались КабуловВ. К., Толок В. О. [2]; построением инструментальной системы на ос© Овский А. Г., Толок В. А., 2010

постпроцессор, метод начальных функций.

нове метода конечных элементов занимался Го -менюк С. И. [3]. Их работы способствовали разработке новой системы на основе Maple.

ОПИСАНИЕ СИСТЕМЫ

Входной язык - расширенный язык Maple. Алфавит языка Maple включает 26 букв латинского алфавита, строчных (a-z) и прописных (A-Z), десять цифр (0-9) и 32 специальных символа. Подробное описание языка приведено в работе [4]. Расширения языка процедуры и функции: sdiff - символическое дифференцирование; sint - символическое интегрирование; operators - процедура вывода операторов решения плиты, пластины; mch - процедура разложения гиперболического косинуса в ряд по Маклоре-ну; msh - разложение гиперболического синуса; n -перевод символических рядов в числовые для двумерной задачи; nm - перевод в числовые ряды для трехмерного случая; integral - процедура интегрирования по параметру; galerkin2D - процедура Галер-кина для двумерной задачи; galerkin3D - трехмерной; makloren - превращение тригонометрических функций в разложения Маклорена; symbolism - проведение символических операций дифференцирования и интегрирования; semi - процедура решения для полуплоскости и полупространства; seminitial -процедура начальной инициализации, задание фундаментального решения.

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

Препроцессор отвечает за:

а) выбор размерности задачи (двумерная или трехмерная);

б) выбор системы координат (декартовая, полярная, цилиндрическая);

в) реализация символьных операций дифференцирования и интегрирования;

г) вывод решения в символической форме;

д) вывод решения в виде операторов [5].

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

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

Процессор - важнейшая часть работы системы. Процесс его работы можно условно разбить на следующие этапы:

а) перевод решения из символической формы в интегрально-дифференциальную;

б) проведение аналитического дифференцирования, интегрирования [6];

б) вывод аналитического решения задачи.

В роли постпроцессора выступают функции и процедуры, осуществляющие числовой счет по выведенной аналитической формуле. Далее графические процедуры системы визуализируют результат.

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

Строение препроцессора

Алгоритм 1. В препроцессор системы вошел алгоритм построения аналитического решения для балок, плит и пластин в двумерной и трехмерной постановке. Суть его в следующем: решается система из четырех уравнений теории упругости для двумерной постановки и из шести для трехмерной [7], [8].

Используется решение бигармонического уравнения VV U = 0 в форме операторно-символических Ф-функций. Процесс вывода детально описывается в работе [5]:

f(x, y, z) = fo (x, y)cos (yz) + f (x, y) sin(Yz) +

+f (x, У) zcos(Yz) + f3( x, y) z sin (yz ), (1)

72 72

сумма производных

где Y , 2 2

V dx dy d 0 d

a = — p = —; sin, cos - символические разложе-

dx dy

ния Маклорена.

В случае двумерной задачи Ф-функция записывается в виде

f( x, y) = fo (x) cos (ay) + fi (x )sin (ay) +

+f,(x)ycos(a x) + f (x)y sin (ay),

d

где a = ■--- - символическое обозначение производной.

Далее программируется второй метод из работы [5]. Однако, чтобы проводить аналитические операции над символическими разложениями Маклорена sin и cos, как над обычными функциями, требовалось доказать, что эти разложения обладают свойствами тригонометрических функций. Именно этому вопросу и была посвящена работа [9]. Благодаря доказательству закона ортогональности для общей трехмерной задачи все символические преобразования над разложениями Маклорена sin и cos в системе считаются допустимыми и дают правильные результаты. По методу Ф-функций решаются уравнения теории упругости [5], [7], [8].

Этот процесс реализован в процедуре operators.

> S1:= eval(value(S), z = 0):

S2:= eval(diff(value(S), z), z = 0):

> S3:= eval(diff(value(S), '$'(z, 2)), z = 0):

[S1[], S2[], S3[]]:

solve(%, [u1, u2, u3, v1, v2, v3, w1, w2, w3, xxl, xx2, xx3, yyl, yy2, yy3, zz1, zz2, zz3]); assign(%); factor(%);

> R:= collect(simplify(algsubs(alphaA2+betaA2 = gammaA2, %)), gamma, factor)[]:

subs(R, U); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

U:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]); subs(R, V); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

V:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]); subs(R, W); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

W:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]); subs(R, Z); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

Z:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]); subs(R, Y); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

Y:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]); subs(R, X); simplify(%); collect(%, u0); collect(%, v0); collect(%, w0); collect(%, zz0); collect(%, yy0);

X:= sort(collect(%, xx0), [u0, v0, w0, zz0, yy0, xx0]);

В процедуре используются следующие операторы и функции языка Maple. Функция eval(<expr>,<пере-

менная = значение>) - вычисление выражения при заданном значении входящей в него переменной; <expr>

- выражение, которое необходимо вычислить, <переменная> - имя входящей в <expr> переменной. Функция value(<expr>) - вычисление выражения, в кото -рое входят инертные переменные. Оператор

diff(<expr>,<переменная>$<порядок производной>) -взятие производной в аналитической форме. Функция solve(<уравнение|[система уравнений]|{система урав-нений}>,<решение|[решения]|{решения}>) - аналитическое решение уравнения или системы уравнений. При этом система уравнений может задаваться в виде списка перечисляемых уравнений, обладающего упорядоченностью, или в виде множества уравнений. Порядок следования уравнений во множестве не важен. Список уравнений заключается в прямые скобки [], множество - в фигурные {}. После вывода решений переменным необходимо присвоить их значения, для этого используется функция assign(<expr>). Присвоенные значения переменных преобразовываются с помощью функции factor(%) - разложение полинома на множители. Функция algsubs(<переменная1 = значение 1>, <переменная2 = значение2>, ..., <переменна-яМ = значение^, <expr>) - алгебраическая замена переменных их значениями и алгебраическое преобразование выражения <expr>. Функция subs(<переменная1 = = значение1>, <переменная2 = значение2>, . , <пере-меннаяМ = значение^, <expr>) - замена переменных их значениями без алгебраического преобразование выражения. Функция simplify(<expr>|<методы упро-щения>| <assume = свойство>) - упрощение математического выражения <expr> по заданным методам <методы упрощения>. В качестве методов могут быть выбраны опции exp, ln, sqrt, trig, radical, power, свойство assume - указание диапазона значений, принимаемых переменными в упрощении, может принимать значения complex - комплексные значения, real - действительные числа, positive - положительные числа, integer - целые числа, RealRange(a, b) - интервал действительных чисел (a, b). Функция collect(<expr>, <набор переменных>|<методы преобразования>) - функция приведения подобных членов выражения <expr> по выбираемым именам переменных <набор переменных>; <методы преобразования> - перечисление методов преобразований выражений за скобками приведенных членов. Может принимать значения combine -представление в форме произведения скобок, factor -разложение на множители, normal - сокращение дробей, simplify - полное упрощение, recursive - приведение подобных членов при степенях первой переменной в списке, далее по второй и т. д., distributed - при-

ведение коэффициентов при членах, содержащих всевозможные произведения степеней переменных в списке или множестве, причем суммарная степень всех переменных возрастает от наименьшей к наибольшей. По умолчанию в collect работает метод recursive. Функция sort(<expr>) - сортировка полинома по степеням от наибольшей к наименьшей.

Получается общее решение, из которого выделяются операторы [9]. Этот процесс осуществляет процедура operat.

> operat:=proc(res, per, vec) local oper, dn, fr; if has(oper, sin) then oper:=simplify(eval(subs(vec, res)/per, gamma=sqrt(alphaЛ2+betaЛ2)));

oper:=collect(simplify(subs(alphaЛ2+betaЛ2=gammaЛ2, oper)),[gamma, cos, sin, nu]); dn:=simplify(numer(oper)); fr:=denom(oper); dn:=collect(dn,[gamma, cos, sin, nu, z]); fr:=collect(fr, gamma); dn:=subs(alphaЛ2+betaЛ2=gammaЛ2, dn); dn/fr; else

oper:=simplify(eval(subs(vec, res)/per,

gamma=sqrt(alphaЛ2+betaЛ2)), power, radical, sqrt):

oper:=combine(simplify(subs(alphaЛ2+betaЛ2=gammaЛ2,

oper), power, radical, sqrt));

dn:=numer(oper); fr:=denom(oper);

dn:=collect(dn,[per, nu, gamma, z, exp]);

fr:=collect(fr, gamma);

dn:=subs(alphaЛ2+betaЛ2=gammaЛ2, dn);

dn/fr; fi;

end proc:

В указанных выше процедурах добавлены процедуры numer(<expr>) - выделение числителя выражения <expr> и denom(<expr>) - знаменателя, соответственно, и оператор has(<expr>,<подвыражение>), который возвращает логическое значение true, если <подвыражение> содержится в <expr>.

Алгоритм 2. В препроцессор был введен алгоритм, позволяющий получать решения задач теории упругости для полуплоскости. Основная идея алгоритма принадлежит Толоку В. О., аспирантом Ов-ским А. Г. он был реализован в Maple.

Используются функции библиотеки Vlasov. m. Основная идея алгоритма следующая.

Решение бигармонического уравнения VV W =0 строится в виде wіx, y) = WQіx, y) + ууіx, y), где w^x, у) и ^x, у) - гармонические функции-реше-

Л d2w , d2w

ния уравнения A2w = —- +------------- Общее решение

dx ду

краевой задачи в случае полуплоскости для уравнения Лапласа A2w = 0 имеет вид wQ і x, у) =

1 00

=11 П J

yw 0(5)d5 (x-J)2+y2

. Для начальной прямой решение

бигармонического уравнения будет иметь вид = ,, + ;

-w

дУ

У = 0

ду' + W + У ду

- w0

w1(x’ У) = ^ + w,

У =0

1 7

где w 1 = w 1 (x, у) = п I

дУ

yw1 (5) dJ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

------------J|-----J, w,

(x - 5) + у

(2)

(J) - нахо-

дится из уравнений теории упругости в процессе решения задач [10]. Выразим гармоническую составляющую у. Решив уравнение, получим:

w

і 00

(x’ У) = п I

п ,

і 00 + "JI

п

2у wo(5)d5

yw1(t-)dt,

(x-jf+y2

Запишем выражение (3) для оу( x, у), имеем

(3)

( ч 1 7 2y3wQ(J) „ ,

у( x, у) = п I---------dJ +

1 до)

где °y = Dfy

7

+ ~ I

п -7

th-

д x

“(іx - J)2+ У2)2

(іx - J)2+ у2)

(4)

выражение для производной

напряжения оу на прямой у = 0, согласно Власову [7].

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

оу(X У) = П I ^оУ+

71 г

х у 2

+ ^ I тХу(4)4. (5)

71 г

Здесь г4 = ((х - Ч)2 + у2)2 - сокращенное обозначение. Далее подставляя в уравнения теории упругости для двумерного случая [8] и произведя интегрирования, получим выражения для перемещений и напряжений в случае плоской деформации:

Vх-У> = I = П 12у'(х4-1^)о"©й5 +

о. I5 W'dx -12 j -0(5)dj +

0 у -7 r

+1-1 ^їJ5l) xQy(5)d 5;

-7 r

x - 5 1

u = I 2G[(1-v)оx- vоy]dx =

2 Gп

2G

0

(1 - 2v)arctgxUJJ::^ - (JxJJ--JJyy

y r2

оу (5)dJ +

1-- I

G п J

2G п

2

(1- v)(lnr2 + C)-У2 r2

Txy(5) dj;

x - 5

u =

f f Ty - -Ju]

I IG dyJ

dx =

1-- I

G п I

2G п -1-- I

(1- v)(ln(r2) + C) -y2

оу(5)d5 -

2 Gп

(1 - 2v)arctgfx—J54] - (x J^JJ">Jy/ v У J r

T°xy(5)d5. (6)

Преобразования (5), (6) в разработанной системе реализуются с помощью следующих алгебраических операций:

оу := фо0 + ут0;

т = - Рфо0 - Р-утР.

а а ’

о := |^ю0 + |:-2У]с0.

х ' 2 2 ’

аа

22 , „ , а фг0 а уг1

оу = - афи0 - ауи1-—в—-—-Ц—;

:= 1р2фо0 + 1 |[->2;\|-п:(0 :И |->^г-'(:|)<^0 11 2 а3О 2 а3О 2 а3О

1в у\|/т0 1у\|/т0 1уфо0,

2 а3 О 2 аО 2 аО ’

1 [Зу\!л;0 1у\|п0

:= .Jl^.J^ +

v ' 2 a2G 2 a2G 2 PG

1)лJ|))JJ)T)JQ 1 \f<JJCJ|Q + 1ут0 + 1фо0 -2 PG _2 PG :z (JJOJJ 2 PG '

d d 1 x 5 1 У

Здесь a = d-x e = d? af = Ifdx, ef = Ifdy -

X - Ч л У

йх г йу а 1 и dX, В"7

0^0

замена операций интегрирования и дифференцирования на умножение и деление; ф =

--2-------y--3--

((x - 5)2+ у2 )2

d5, W = п-1

п

-y-

((x - 5)2+ у2)

d5 -

сокращенные обозначения; О - модуль сдвига.

Преобразования в препроцессоре осуществляются в строгом порядке без нарушения преобразований.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

r

о

Все операции дифференцирования и интегрирования сведены к умножению и делению.

Строение процессора

После предварительной подготовки и указания граничных условий начинает работать процессор. Он переводит операторно-символическую форму решения в формульную. Осуществляется для каждого из полученных операторов с помощью процедуры nm для трехмерного и n для двумерного случая. Учитывается свойство тригонометрических функций в рядах (2) и (3) менять знак при дифференцировании. После взятия всех производных разложения Макло-рена в символическом решении результат преобразуется в числовой [8].

Текст на языке Maple процедур nm и n:

> vlasov[nm]:=proc(res, per)

local i:: integer, rs, op1, op2, op3, po:: anything, str:: string;

global z, alpha, beta, gamma;

op1:=op(per);

op2:=op(op1[1]);

op3:=op(op2[1]);

rs:= nops(op2[1]); po:=1;

for i from 1 to rs do

po:=po*op3[i]; od;

rs:=res;

if po<>0 then

rs:=subs(sin=sinh, cos=cosh, rs);

rs:=subs(alphaA3=diff(po, x$3)/po, betaA3=diff(po, y$3)/ po, rs);

rs:=subs(alphaA2=diff(po, x$2)/po, betaA2=diff(po, y$2)/ po, rs);

rs:=subs(alpha=diff(po, x)/po, beta=diff(po, y)/po, rs); fi;

rs*po;

end proc;

> vlasov[n]:=proc(res, per)

local i:: integer, rs, po:: anything, str:: string;

global y, alpha, gamma;

po:=op(per)[1];

rs:=res;

if po<>0 then

rs:=subs(sin(alpha*y)=sinh(gamma*y), cos(alpha*y)=cosh(gamma*y), rs); rs:=expand(rs);

rs:=subs(alphaA3=diff(po, x$3)/po, rs); rs:=subs(alphaA2=diff(po, x$2)/po, rs); rs:=subs(alpha=diff(po, x)/po, rs); fi; rs*po; end proc;

После этого применяется процедура Галеркина и получается результат в числовой форме:

> vlasov[galerkin2D]:= proc (inp, r:: anything) local st; global gamma, y, S; integral(inp*r, x = 0.. S)

end proc;

> vlasov[galerkin3D]:= proc (inp, r1, r2:: anything) local str, t;

global gamma, z, Q, S, R; str:= inp;

t:= remove(has, str, rl); str:= select(has, str, r2); str:= simplify(select(has, str, r1)/(r1*r2));

(1/4)*str*t*S*R end proc;

В процедурах используются функции работы со структурой выражений op(<expr>) - подъем по бинарному дереву структуры выражения вверх, в результате получается последовательность выражений. Функция nops(<expr>) - подсчет количества выражений в последовательности выражений op. Функция ex-pand(<expr>) раскрывает скобки в выражении <expr>. Использованы также процедуры выделения подвыражения из заданного выражения select(has, <expr>, <выражение>), где has указывает на выделение подвыражения, где встречается выражение имени, или оператора. Функция remove(has, <expr>, <выражение>), наоборот, удаляет выделяемое подвыражение.

В библиотеку вошли созданные автором процедура интегрирования и процедура взятия модуля числа. Стандартные процедуры системы Maple не рассчитаны на обработку сложных аналитических выражений. Этот недостаток Maple вызывал зависание вычислительного ядра инструментальной системы при расчете задач методом начальных функций [6]. Он был программным способом устранен автором. Ниже приведен текст на языке Maple процедур интегрирования и взятия модуля числа.

> vlasov[fabs]:=proc(inp) local per; per:=evalf(inp);

if per<O then per:=-per; fi; per;

end proc;

> vlasov[integral]:=proc(input, perem) local arg, granl, gran2, result; arg:=op(perem)[1]; op(rhs(perem)); gran1:=%[1]; gran2:=%%[2]; result:=int(input, arg);

simplify(eval(result, arg=gran2)-eval(result, arg=gran1)); end proc;

Для того чтобы решить задачи в системе, необходимо запустить среду Maple и подключить откомпилированную библиотеку к создаваемому документу. Для этого в режиме worksheet Maple набирается следующая последовательность команд [З]:

> restart;

> read('c:/Vlasov. m');

> with(vlasov):

Решение задач теории плит, пластин

Для решения задач теории упругости для плит, пластин необходимо вызвать процедуру operators

со следующим списком параметров в скобках: vaxes

- обязательный параметр, задает систему координат (cartesian - обычная декартовая система, polar - полярная); vdimension - обязательный параметр, задающий размерность задачи (2 - плоская задача, 3 -трехмерная); vchange - необязательный параметр, он меняет ось, относительно которой строится решение в плоской задаче (принимает значение yes). По умолчанию строится решение относительно оси у, на практике нужно получать решение и для оси х; vtype - тип решения, bigarmonic - бигармоническое (exp - экспоненциальное). Для трехмерной задачи вместо необязательного параметра vchange используется обязательный vaxe (х, у, z - оси вывода). После вызова процедуры operators и задания начальной инициализации автоматически получаем решение общей задачи теории упругости. Пример вызова процедуры указан ниже:

> operators(vaxes=cartesian, vdimension=3, vaxe=z, vtype=bigarmonic):

> operators(vaxes=cartesian, vdimension=2, vtype=bigarmonic):

Общее решение представляется в операторно-символической форме и хранится в переменных U, V, X,

Y, sigmax, sigmay, tau в случае двумерной задачи и в U, V W X, Y, Z, sigmax, sigmay, tau - в трехмерном случае. Операторно-символическая форма, содержащая дифференциалы высших порядков, слишком сложна для проведения вычислительных операций. Поэтому, после подстановки начальных функций в общее дифференциальное решение двумерной и трехмерной задачи и проведения сложных математических операций, на выходе получается решение, содержащее числовые ряды [6]. Для двумерного случая эти операции осуществляются путем вызова процедур библиотеки n(expr), где expr - решение в операторной форме (а именно, через операторы Luu, Luv и т. д.) и num(expr) для трехмерной задачи. После перевода в числовую форму над решением производится процедура Галеркина. Для двумерной задачи это процедура galerkin2D(expr, sin(a[n]x)), трехмерной -galerkin3D(expr, sin(a[n]x)*cos(b[m]y)). После этого строятся уравнения, с помощью которых решается задача и находятся коэффициенты An, Bn для двумерной задачи и Anm, Bnm, Cnm - для трехмерной.

Решение задач для полуплоскости, полупространства

Эти задачи в системе решаются следующим образом. Вызываются процедуры:

> semi(saxes = cartesian, sdmension = 2, stype = napr);

>phi :=

2 •

((x -xi)2+ y2 )2

psi

(x — xi)2 + y2

R := sqrt((x-xi)2 + y2);

> seminitial(phi, psi, R):

Для решения задачи используются две процедуры. Первая процедура semi имеет следующий список параметров в скобках: saxes - обязательный параметр, задает систему координат (cartesian - обычная декар-товая система, polar - полярная); sdimension - обязательный параметр, задающий размерность задачи (2 - плоская задача, З - трехмерная); stype - тип решения; napr - напряжения (perem - перемещения). Вызвав процедуру semi, выбираем тип задачи. Передав два параметра процедуре seminitial, задаем, над какими функциями производятся операции. Третий параметр - переменная, относительно которой производятся упрощения. В поставленных задачах - это переменная R.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ТЕОРИИ

УПРУГОСТИ В ИНСТРУМЕНТАЛЬНОЙ

СИСТЕМЕ

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

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

Рассмотрим детально процесс построения модели решения двумерных и трехмерных задач для плиты и массива.

Задача 1. Рассмотрим свободно опертую по краям плиту длины S и толщины h, изгибаемую нагрузкой постоянной интенсивности P [10].

Выбираются начальные функции в виде

U0(x> y) = X sinA n Пп x,

n =1

V0(x> y) = X BncosSx.

n =1

На языке системы они записываются в виде:

> Uo:= Sum(Anm*sin(a[n]*x), n=1.. p);

> Vo:=Sum (Bnm*cos(a[n]*x), n=1.. p);

З

2

В результате коэффициенты An и Bn на Maple:

f f ппк' 2 ' rnzh f

An = - 3 4 hsin( nn) S e - 1 PS2e S (- 1 + v)/ - 2n2 n2h2sin (nn)4 S e

к к У У к к у

f nrth] f rnzh]4

+ n2 n2h2sin (nn)4 +

+ n2n2 h2sin( nn)4

e

к У

+ S2sin (nn)4

+ S2sin (nn)4 - h2n2 n2cos( nn)2sin( n n)2

- 2h2n2 n2cos( nn) 2sin( nn)2

V / f nrth'2

T

f nn-h]4 S

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

e

к У

e

к У

+ 2 hn2n2sin (nn) - 2 hn2n2

f nnh]2

e

nTZh

~S

- h2n2 n2cos( nn)2sin (n n)2 - 2S2sin (nn)4

f nrth]2 ~S

e

к У

v /

f nrth'2

T

e

к У

Ssin(nn) -

nn А 2л\

244 + h n n

rnzh ~S

e

к У У

Bn = 4sinnn

hnncos( n n) sin( nn)

22

+ hnncos(nn)sin(nn) - hn п

- hn2n2 + Ssin(nп)2

f nrth]2 ~S

e

V У

- Ssin( nn)

V /

^4 rnzh

PS2e S (- 1 + v)/

2

nn

кк

-2n2 n2h2sin (nn)4

f rnzh]2 ~S~

e

к У

+ n2 n2h2sin( nn)4 + n2 n2 h2sin (nn)4

f nrth] “5

e

к У

+ S2sin (nn)4

f n-zh] ~S

+ S2sin (n n)4 -

2 2 2 2 2 - h n n cos(nn) sin(nn)

f mzk

T

e

к У

- 2 h2n2n2cos( nn)2

f nTth"]

T

e

к У

V / 2

+ 2 hn2%2 Ssin( nn)2 -

- 2hn2n2

f n-jzh'' S

e

к У

S sin (nn)2 - h2 n2n2cos( n n)2sin( nn)2 - 2S2sin (nn)4

f nfh]2 S

e

к У

2 4 4 2 4 4

+ h n п +2h n n

f —П-к]2

S

e

к У

244

+ h n п

f -nh'4 S

Задача 2. Рассмотрим длинный в направлении x > Uo:=Sum(Sum(Anm*sin(a[n]*x)*cos(b[m]*y), m=1.. p),

n=1.. p);

> Vo:=Sum(Sum(Bnm*cos(a[n]*x)*sin(b[m]*y), m=1.. p), n=1.. p);

трехмерный массив, нагруженный постоянной нагрузкой р в направлении этой оси, а также оси у. Размеры массива: длина (ось х) - £, ширина (по оси у) -Я, толщина (ось х) - Н.

Выбираются начальные функции в виде:

тт / \ х—' х—' л ■ пп т-п

ио(х,у) = х е х^^"я-у,

n =1 m =1

jz / \ х—' х—' d nn • m^n V0(xy) = X X B»»cosSx sin^y,

JJT У 4 ^-\ ^-\ v-'f П П •

W0(x y) = XX C-»cosSx sin^y.

n = 1 m = 1

На языке системы они записываются в следующем виде:

> Wo:=Sum(Sum(Cnm*sin(a[n]*x)*sin(b[m]*y), m=1.. p), n=1.. p);

Результаты для коэффициентов Anm, Bnm, Cnm, выведенные системой в трехмерном случае:

Anm = 0;

Bnm = 0;

2 2

Cnm = (4QS R y(- 1 + v + cos(mn) - cos(mn)v +

- cos(nn)v + cos(nn)v - cos(nn)cos(mn) +

4 2 2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

+ cos(nn)cos(mn)v))/(n nm(yhcosh(yh)n R +

+ h cosh(yh)ym2S2 - sinh (yh) n2R2 - sinh (yh) m2 S2)).

n =1 m = 1

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

Для полупространства решались задачи Фламана и Черутти.

Задача 3. Пусть изотропная среда занимает бесконечную область, ограниченную прямой. Такое полу-бесконечное тело называется полуплоскостью с границей. Рассмотрим задачу о действии нагрузки на границу полуплоскости у > 0:

т I = Р(х, £),

ху1у = 0

y=0

= r (x,;).

При заданных условиях компоненты напряженно-деформированного состояния не зависят от координаты w по z, а перемещение w = 0. Имеем плоское напряженно-деформированное состояние и плоскую деформацию. Краевая задача замыкается условием обращения в ноль компонентов напряженно-деформированного состояния на бесконечности.

Для задачи Черутти P(x, f) = 5(x - f)P - сосредоточенная сила, R(x, ;) = 5(x- f)R, R = 0.

Результат решения задачи Черутти для напряжений на Maple:

sigmay

:= y2(-2x + 2f) ,

п(( x - f)2+ y2)2’

sigmax

:= 2(x3 - 3x2- -I- 3x-2 - і;3).

п( x2 - 2xf + ;2 + y2)2

--2-y-

---2---y---3--

-2x; + ;2 +y2 (-x2 - 2x- + ;2 +y2)

tauxy :=

В случае задачи Фламана R (x, f) = 5(x - f)R, P(x, f) = 5(x- f)P, P = 0.

Решение на Maple для напряжений:

sigmay

---2---y---3--

п(( x - f)2+ y2) 2’

sigmax

:= 2y(x2-2x-; + -;2) ;

п(x2 - 2xf + f2 + y2)2

2y2x

---2---y---2---f-

:= (x2 - 2xf + f2 + y2)2 (x2 - 2x- + -2+у2)

ВЫВОДЫ

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

СПИСОК ЛИТЕРАТУРЫ

1. Аладьев В. З. Системы компьютерной алгебры: Maple: Искусство программирования / Аладьев В. З. - М. : Лаборатория базовых знаний, 2006. - 792 с.

2. Кабулов В. К. Алгоритмическая система для решения

задач теории упругости и пластичности, Сб. /

И. К. Кабулов, В. А Толок // Вопросы вычислительной и прикладной математики. - 1970. - № 4. - С. 37-45.

3. Гоменюк С. И. Объектно-ориентированные модели и методы анализа механических процессов / С. И. Гоменюк. - Никополь : Никопольская коммунальная типография, 2004. - 316 с.

4. Матросов А. В. Maple6. Решение задач высшей математики и механики / Матросов А. В. - СПб. : БХВ-Пе-тербург, 2002. - 52В с.

5. Овский А. Г. Использование системы Maple при реализации метода начальных функций Власова / Е. Е. Галан, Овский А. Г., В. А. Толок // Вісник Запорізького національного університету : Збірник наукових статей. Фізико-математичні науки. - 200В. -№ 1. - C. 16-26.

6. ОвскийА. Г. Моделирование схемы решения трехмерной задачи теории упругости в системе Maple /

A. Г. Овский, В. О. Толок // Гідроакустичний журнал. -200В. - № 3. - C. ВВ-97.

7. Власов В. З. Балки плиты и оболочки на упругом основании. / В. Власов, Н. Леонтьев - Москва : ФИЗМАТ-ГИЗ, 1960. - 491 с.

В. Толок В. А. Операторно-символьные ряды Власо-

ва В. З. в решении задач теории упругости в системе Maple / В. В. Шапар, В. А. Толок // Гідроакустичний журнал. - 2006. - № 3. - С. 66-74.

9. Овский А. Г. Использование системы компьютерной

математики Maple для доказательства закона ортогональности матриц прямого и обратного преобразований, составленных Власовым В. З. / А. Г. Овский,

B. А. Толок // Радіоелектроніка, інформатика, уп-

равління. - 200В. - № 1. - C. 7В-В5.

10. Горшков А. Г. Теория упругости и пластичности : учеб. для вузов / Горшков А. Г., Старовойтов Э. И., Талаковский Д. В. - М. : ФИЗМАТЛИТ, 2002. - 416 с.

Надійшла 1.07.2009 Після доробки 12.05.2010

Овський О. Г., Толок В. А.

ІНСТРУМЕНТАЛЬНА СИСТЕМА РОЗВ’ЯЗАННЯ ДВОВИМІРНИХ І ТРИВИМІРНИХ ЗАДАЧ ТЕОРІЇ ПРУЖНОСТІ НА БАЗІ MAPLE

У статті наведено опис інструментальної системи розв’язання двовимірних і тривимірних задач теорії пружності. Обчислювальне ядро системи складає Maple. Здійснено формалізацію основних алгоритмів з метою знаходження операцій програмування вказаних задач.

Як приклади роботи з системою наведено розв’язки конкретних задач.

Ключові слова: препроцесор, процесор, постпроцесор, метод початкових функцій.

Ovsky A., Tolok V.

DEVELOPMENT SYSTEM FOR SOLVING TWO-DIMENSIONAL AND THREE-DIMENSIONAL ELASTICITY THEORY PROBLEMS BASED ON MAPLE

The authors describe the development system for solving two-dimensional and three-dimensional problems of the theory of elasticity. Maple is a computing kernel of the system. The basic algorithms are formalized for the purpose of finding programming operations of the specified problems. Solutions of specific problems are given as examples of system operation.

Key words: preprocessor, processor, postprocessor, method of initial functions.

УДК 004.93

Олійник А. О.

Канд. техн. наук, старший викладач Запорізького національного технічного університету

МУЛЬТИАГЕНТНИЙ МЕТОД З ОПОСЕРЕДКОВАНИМ ЗВ’ЯЗКОМ МІЖ АГЕНТАМИ

Досліджено метод оптимізації на основі мультиагентного підходу. Розроблено мультиаген-тний метод з опосередкованим зв’язком між агентами, що передбачає виконання додаткових етапів відбору, схрещування та мутації. Проведено експерименти по розв’язанню задач оптимізації багатовимірних нелінійних функцій, що дозволило дослідити ефективність запропонованого методу.

Ключові слова: агент, генетичні оператори, мультиагентний метод, оптимізація, цільова функція.

ВСТУП

Останнім часом широкого застосування набули напрямки штучного інтелекту, основні ідеї яких узяті

з природи. До таких напрямків можна віднести: штучні нейронні мережі [1, 2], методи еволюційного пошуку [3, 4], методи оптимізації, засновані на моделюванні колективного інтелекту соціальних тварин [5, 6], штучні імунні системи [7] та ін. [8-13]. Суттєвими перевагами таких напрямів штучного інтелекту є можливість їхнього застосування до розв’язання слабоформалізованих задач та здатність до видобування знань з даних.

Зокрема, мультиагентні методи інтелектуальної оптимізації не висувають додаткових вимог до виду цільової функції, що дозволяє їх застосовувати при розв’язанні оптимізаційних задач, які виникають при побудові моделей складних багатовимірних об’ єктів, процесів та систем (на етапах відбору інформативних ознак, структурно-параметричного синтезу моделей, спрощення побудованих моделей). Крім того, на відміну від градієнтних методів багатовимірної нелінійної оптимізації, що традиційно застосовуються при побудові моделей, мультиагентні методи є методами глобальної оптимізації та не схильні до зациклення у локальних оптимумах.

© Олійник А. О., 2010

Для розв’язання завдань дискретної та безперервної оптимізації ефективно застосовується метод оптимізації на основі моделювання переміщення бактерій (Bacteria Foraging Optimization, BFO) [11]. Однак моделі поведінки живих істот, що лежать в основі роботи даного метода, є неповними та не зовсім відповідають своїм природним аналогам. Зокрема, в методі BFO не досить ефективним є механізм утворення нової множини рішень, що призводить до тривалих розрахунків при виконанні оптимізаційного процесу [11].

Тому актуальною є розробка доповнень існуючих моделей, що використовуються для моделювання поведінки живих істот, які забезпечують більш повну відповідність природним аналогам і кращу ефективність роботи зазначених методів оптимізації.

ПОСТАНОВА ЗАВДАННЯ

Метод BFO ефективно застосовується для розв’язання завдань оптимізації [11], однак математичні моделі, розроблені для даного методу, навіть на думку їх розробників [11] є неповними та не досить ефективними. Тому необхідно доробити відомі математичні моделі BFO для більш адекватного моделювання еволюційних процесів життєдіяльності бактерій.

i Надоели баннеры? Вы всегда можете отключить рекламу.