Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по ИТ.pdf
Скачиваний:
740
Добавлен:
31.03.2015
Размер:
2.25 Mб
Скачать

Моделирование электромагнитных полей c помощью программы FlexPDE

Краткая информация о программе FlexPDE

FlexPDE – программа, предназначенная для построения сценарных моделей решения дифференциальных уравнений методом конечных элементов, и специализирующаяся на моделировании векторных полей, включая электромагнитные. FlexPDE по сценарию, написанному пользователем, производит операции, необходимые для того, чтобы преобразовать описание системы дифференциальных уравнений в частных производных в модель для расчета методом конечных элементов, найти решение для этой системы и представить результаты в графической форме. Модели могут быть одномерными, двухмерными и трехмерными. Студенческая версия свободно скачивается с официального сайта программы http://www.pdesolutions.com, обладает таким же функционалом, как и промышленная версия, но имеет ограничения: пять дифференциальных уравнений и 100, 800 или 1600 узлов сетки для одномерных, двухмерных и трехмерных задач соответственно.

FlexPDE не ограничивает пользователя заранее заданным списком прикладных задач или видов уравнений. Выбор вида дифференциальных уравнений в частных производных полностью зависит от пользователя. Язык сценария позволяет пользователю описывать в естественном формате математический аппарат его системы дифференциальных уравнений в частных производных и структуру области решений в целом. Например, в сценарии имеется раздел EQUATIONS (УРАВНЕНИЯ), в котором уравнение Лапласа можно представить как Div(grad(u)) = 0

Аналогично, в сценарии имеется раздел BOUNDARIES (ГРАНИЧНЫЕ УСЛОВИЯ), в котором геометрические границы двумерной области решений описываются по кривой периметра, Start(x1,y1) line to (x2,y1) to (x2,y2) to (x1,y2) to finish. Следующее описание дается для версии FlexPDE 6.

Составление сценария расчета

Сценарий описания задачи представляет собой текстовый файл. Содержание этого файла представляет собой ряд разделов, каждый из которых идентифицируется при помощи заголовка. Чаще всего используются следующие разделы: TITLE – заголовок программы, COORDINATES, VARIABLES, SELECT, DEFINITIONS, EQUATIONS, BOUNDARIES, PLOTS, SUMMARY, END – обозначает конец программы.

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

COORDINATES

Описывает систему координат (декартову, цилиндрическую или сферическую). Двухмерная и трехмерная декартовы системы координат описываются командами: cartesian1, cartesian2, cartesian3.

VARIABLES

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

SELECT

Данный раздел предназначен для задания параметров сетки, точности решения задачи и т.п.

DEFINITIONS

10

Это раздел задания вспомогательных переменных и определений задачи. В роли определений выступает задание параметров материалов, констант, функций и т.д. При наборе определений следует учесть, что некоторые имена зарезервированы (например, нельзя использовать букву t, поскольку она зарезервирована как переменная времени). Все выражения, используемые в данной секции, являются вспомогательными к основным уравнениям, которые описываются в следующей секции. Примеры выражений приведены в таблицах 1-3.

Таблица 1

Определение

Пример

 

Eps_metal=1e6

Относительная диэлектрическая

Eps_diel = 88

проницаемость εrε0 материалов и сред

Eps_air=1

 

Eps0 = 8.854e-12

Относительная магнитная

mu = 1

проницаемость μμ0

 

Параметры расчетной области,

r_provod = 0.02

R = 0,10

геометрические размеры модели

R0 = 10*R

 

Данные о заданных токах, зарядах,

U_provod = 500

напряжений и т.п.

I = 1

 

S=800e-6

 

J = I/S

Таблица 2. Вспомогательные формулы расчета физических величин электрического поля

 

 

Определение

Пример

 

 

 

Ex=-dx(U)

 

Напряженность электрического поля

Ey=-dy(U)

 

Eabs=sqrt(Ex^2+Ey^2)

 

 

 

 

 

 

E = -grad(U)

 

Энергия электрического поля

W = integral(0.5*eps*eps0*E^2)

 

Электрический заряд.

 

 

Следует учесть, что из теоремы

Q = eps*eps0*sintegral(normal(grad(U)),

 

'ребро или область1', 'ребро или

 

Остроградского-Гаусса следует, что

 

область2',…)

 

 

 

 

 

 

 

Электрическая емкость.

 

 

Следует учесть, что конденсатор

C = q/(U1-U0)

 

накапливает энергию

C = 2*W/(U1-U0)^2

 

W = CU2/2=qU/2=q2/(2C)

 

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

Определение

 

Пример

 

 

B = curl(Ax,Ay,0)

Индукция магнитного поля

 

Bxx= -dz(Ay)

 

Byy= dz(Ax) { "By" is a reserved word. }

 

 

 

 

Bzz= dx(Ay)-dy(Ax)

Энергия магнитного поля

 

W = integral(0.5*mu*m0*B^2)

Потокосцепление, магнитный поток

 

F = sintegral(B, 'имя ребра или области

 

1', 'имя ребра или области 2',…)

 

 

 

11

 

Индуктивность.

 

Следует учесть, что катушка

L = F/I

индуктивности накапливает энергию

L = 2*W/I^2

W = LI2/2

 

Кроме того, в разделе определений можно вычислить физические величины по заранее известным формулам для дальнейшего сравнения результата численного решения с теорией. Например, известно, что электрическая емкость плоского конденсатора вычисляется по формуле С = εrε0S/d, где εr – относительная диэлектрическая проницаемость, S – площадь пластин, d – расстояние между ними. После построения модели плоского конденсатора и численного расчета электростатического поля программа сравнит емкость идеального и реального конденсатора.

EQUATIONS

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

div( eps * grad( v)) = 0.

Для магнитного поля также можно записать уравнение Лапласа:

Ax: div(grad(Ax)/mu) = 0 Ay: div(grad(Ay)/mu) = 0

Здесь запись Ax и Ay требуется для указания соответствия уравнения переменной.

BOUNDARIES

Раздел предназначен для задания геометрии и граничных условий. Каждый блок (область) задачи начинается с команды REGION N ‘Имя области (латиницей)’, где N – порядковый номер области. Далее регион описывается точкой, отрезками от точки до точки, дугами и другими более сложными объектами (таблица 4).

Таблица 4. Геометрические объекты

Объект

Пример

Точка

NODE POINT (x, y)

Прямоугольник, полигон

LINE TO (x1,y1) TO (x2,y2) TO (x3,y3) TO CLOSE

Дуга, окружность, эллипс

ARC TO (x1,y1) to (x2,y2)

 

ARC ( RADIUS = R ) to (x,y)

 

ARC ( CENTER = x1,y1 ) to (x2,y2)

 

ARC ( CENTER = x1,y1 ) ANGLE=angle_degrees

 

 

Например, следующий сценарий описывает модель, представленную на рис. 1:

DEFINITIONS

eps = 1 { значение по умолчанию} BOUNDARIES

REGION 1 'domain'{ расчетная (основная) область задачи } START(0,0) LINE TO (10,0) TO (10,10) TO (0,10) TO CLOSE

REGION 2

eps = 2 { иное значение для двух областей ниже }

START 'box1' (1,1) LINE TO (2,1) TO (2,2) TO (1,2) TO CLOSE START 'box3' (5,5) LINE TO (6,5) TO (6,6) TO (5,6) TO CLOSE

REGION 3 { используется по умолчанию }

START 'box2' (3,3) LINE TO (4,3) TO (4,4) TO (3,4) TO CLOSE

12

Рис. 1. Геометрическая модель

Проверить геометрию модели можно с помощью кнопки Domain Review Граничные условия задаются для контуров (ребер) и точек геометрической модели.

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

Таблица 5.

Граничные условия

 

Граничное условие

Пример

Условие Дирихле (задание потенциала)

VALUE (U) = 220

Условие для потока переменной сквозь

NATURAL (U) = 01

границу, в частности условие Неймана

LOAD (U) = expression

(задание производной n ).

 

 

 

 

Скачкообразное

изменение переменной,

CONTACT (U) = EDS

например задание ЭДС

 

Граничные условия указываются перед командами LINE и ARC: BOUNDARIES

REGION 1 START(0,0)

VALUE(u) = 0 LINE TO (1,0) { значение на нижней границе } NATURAL(u)=0 LINE TO (1,1) { значение на правой границе } VALUE(u)=0 LINE TO (0,1) { значение на верхней границе }

NATURAL(u)=0 LINE TO CLOSE { значение на левой границе }

REGION 2

NODE POINT (0.5, 0.5) POINT VALUE(u)=250

С команды FEATURE (аналогично команде REGION) начинается описание набора линий и дуг, не являющихся частью модели и предназначенных для последующих расчетов. Формат команды следующий: FEATURE START(0,0) LINE TO(10,10)

TIME

Если переменные зависят от времени, то указывается раздел TIME, в котором указываются период времени, в течение которого проводится расчет. Например, следующим образом: TIME 0 TO 1

1 Однородное условие Неймана устанавливается по умолчанию для всех контуров (ребер).

13

PLOTS

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

Таблица 6. Графики

График

Пример

Эквипотенциальные линии

CONTOUR(U)

 

REPORT(C) as "Емкость (Ф)"1

 

CONTOUR(U) painted

 

CONTOUR(Ax, Ay) painted

 

CONTOUR (U) as 'Потенциал около проводника'

 

ZOOM(x0, y0, Δx, Δy)

 

 

Картина векторного поля

VECTOR(E) as 'Напряженность электрического

 

поля'

Зависимость физической величины

ELEVATION(U) as 'Потенциал от стены до

вдоль какого-либо пути

проводника' from (x0, y0) to (x1, y1)

 

ELEVATION(U) on 'box2'

Трехмерный график

SURFACE(U)

Если переменные зависят от времени, то перед построением графиков сразу после команды PLOTS указываются моменты времени, для которых будут строиться графики в следующем формате: FOR t = начальный момент BY шаг TO конечный момент.

Построение графиков зависимости физических величин от времени в конкретных точках осуществляется в дополнительном разделе HISTORIES командами history(u) at (x1,y1) (x2,y2).

SUMMARY

Раздел описывает представление результатов расчета в текстовом виде. Для этого используется команда REPORT. Например:

SUMMARY

REPORT(C) as "Емкость (Ф)" REPORT(C0) as "Емкость в теории (Ф)" REPORT(W) as "Энергия"

Система обозначений

Программа принимает стандартные команды расчета функций sqrt(), sin(), cos(), max(), min() и т.п. Обрабатываются команды для работы с векторами и комплексными числами. Поскольку программа работает с векторными полями, имеются команды для работы с векторами. Вектор может быть указан либо своей переменной (например, E), либо собран из составляющих Ex,Ey, может быть задан командой vector(Ex,Ey,Ez) (см. таблицу 7.

Таблица 7. Работа с векторами

Описание

Команда

Длина вектора

MAGNITUDE ( vector )

MAGNITUDE ( argx, argy {, argz } )

 

Векторное произведение векторов

CROSS (vector1, vector2)

Скалярное произведение векторов

DOT (vector1, vector2)

Нормальная и тангенциальная

NORMAL ( vector )

составляющие вектора к поверхности

NORMAL ( argx, argy {, argz} )

границы (используется в разделе

TANGENTIAL(vector)

BOUNDARIES и тех местах, где имеется

TANGENTIAL ( argx, argy {, argz } )

1 Следует отметить, что кириллица не поддерживается. Рекомендуется использовать латиницу.

14