1.4.1. Выполнение расчетов в пакете matlab
Пакет MATLAB содержит приложение PDE Toolbox (от англ. Partial Differential Equation – дифференциальное уравнение в частных производных). Приложение обеспечивает решение дифференциальных в частных производных методом конечных элементов в двухмерной постановке. Оно включает графический интерфейс; инструменты задания формы уравнений и граничных условий; процедуру автоматической генерации сетки конечных элементов; средства для визуализации полученного решения и его анимации. PDE Toolbox использует проекционную формулировку метода конечных элементов.
PDE Toolbox представляет собой набор специальных функций, напи-санных на языке MATLAB. Особое место среди всех функций PDE Toolbox занимают pdetool и pdeinit. При вызове этих функций из рабочего окна MATLAB разворачивается графический интерфейс, обеспечивающий решение задачи.
Запуск приложения PDE Toolbox приводит к появлению на экране окне графического интерфейса, изображённого на рис. 13.
В верхней части интерфейса располагается строка главного меню, включающего пункты "File", "Edit" и другие. Непосредственно под главным меню размещена панель, включающая инструменты PDETool, список видов задач "Application" и указатель значений координат x и y. Ниже расположены окно "Set formula" (ввод формулы) и собственно графическое окно для работы с изображением расчётной области. Внизу имеется информационная строка “Info” и кнопка "Exit" (выход). Рассмотрим кратко основные этапы решения задачи в PDE Toolbox на примере расчета распределения электрического потенциала в автоэмиссионной диодной ячейке (рис. 14).
Ячейка представляет собой двухэлектродную структуру, содержащую катод соскругленным на конце выступом и расположенный над ним анод. Будем полагать, что объемный заряд в межэлектродном пространствеотсутствует и распределение потенциала φ(x,y) подчиняется уравнению Лапласа (см. (4))
На первом этапе необходимо сформировать исходную геометрию задачи в графическом окне интерфейса PDETool (см. рис. 15).
Показанная на рис. 15 геометрия структуры составлена из набора геометрических фигур – прямоугольника R1, окружности E1 и многоугольника P1. Изображения электродов формируются с помощью команд пункта Draw (Рисовать) главного меню: Draw Mode – переключение в режим ввода (прорисовки) геометрии; Rectangle/square – ввод прямоугольника или квадрата с помощью мыши начиная от его верхней левой вершины; Rectangle/square (centered) – ввод прямоугольника или квадрата с помощью мыши начиная от его центра; Ellipse/circle – ввод эллипса или круга с помощью мыши начиная от верхней левой точки; Ellipse/circle (centered) – ввод эллипса или круга с помощью мыши начиная от центра; Polygon – прорисовка много-гольника отрезками ломаной линии, пока она не станет замкнутой; Rotate – поворот выделенных объектов вокруг некоторой точки; xport Geometry Description, Set Formula, Labels… – экспорт в базовую рабочую область MATLAB переменных описания геометрии. Быстрый вызов некоторых из этих команд обеспечивают элементы инструментальной панели – прямоугольник (квадрат), – эллипс (круг), – многоугольник. Для получения изображений произвольной формы служит строка "Set formula", располагающаяся под инструментальной панелью. В ней мож-о задать слияние нескольких фигур или "вычесть" их друг из друга используя. В данном случае используется формула R1–P1–E1, где R1 – прямоугольник (квадрат), P1 – многоугольник, E1 – эллипс (круг). Команды для редактирования изображения и настройки графического окна содержатся в следующих пунктах главного меню. Edit (Правка) содержит команды: Undo – отмена последнего действия; Cut – вырезать выделенный геометрический объект и поместить его в буфер; Copy – копировать выделенный объект в буфер; Paste – вставить геометрический объект из буфера; Clear – удалить выделенный объект; Select All – выделить все геометрические объекты.
Options (Опции) содержит команды: Grid – показать / скрыть координатную сетку; Grid Spacing – установить пределы и шаг сетки; Snap – округлять координаты указателя мыши; Axes Limits – установить пределы координатных осей; Axes Equal – установить одинаковый масштаб по осям x и y; Turn Off Toolbar Help – выключить подсказки по инструментальной панели; Zoom – показать с увеличением выделенную часть модели; Application – переключение вида задачи; Refresh – обновить изображение модели. Второй этап включает ввод граничных условий на граничных сегментах (см. рис. 16) и параметров уравнения. Определить условие на любом
из сегментов можно, выделив его двойным щелчком левой кнопки мыши. Соответствующие команды располагаются в разделах Boundary и PDE главного меню.
Boundary (Границы) содержит команды: Boundary Mode – ввод граничных условий; Specify Boundary Conditions… – ввод параметров граничных условий; Show Edge Labels – показать номера граничных сегментов; Show Subdomain Labels – показать номера зон; Remove Subdomain Border – удалить границу зон; Remove All Subdomain Borders – удаление всех границ зон; Export Decomposed Geometry, Boundary Cond’s… – экспорт в рабочую область MATLAB переменных описания граничных условий. PDE (Уравнение) содержит команды: PDE Mode – переключение в режим ввода параметров уравнения; Show Subdomain Labels – показать номера зон; PDE Specification– ввод параметров (коэффициентов) уравнения; Export PDE Coefficients– экспорт в базовую рабочую область переменных, описывающих PDE коэффициенты в расчётной области. Переход к выполнению этих команд также обеспечивается элементами инструментальной панели – граничные условия и – параметры уравнения. В качестве граничных условий (см. п.1.1) на нижней и верхней границах зададим электрические потенциалы электродов, то есть условие Дирихле: вверху (на аноде) φ = 1000 В и внизу (на катоде) φ = 0 В. На левой и правой границах зададим условие Неймана ∂φ/∂n = 0 (где n – нормаль к границе), учитывая определенную симметрию задачи. Для ввода условия на какомлибо сегменте границы необходимо его выделить и открыть диалоговое окно "Boundary Condition". В окне следует установить переключатель в режим Dirichlet или Neuman и задать числовые параметры.
Зададим параметры уравнения эллиптического типа, вызвав через меню или панель инструментов диалоговое окно "PDE Specification". Выберем тип уравнения – "Elliptic" Если в списке "Application" установлен "Electrostatics" (задача электростатическая), то в окне MATLAB уравнение имеет вид "–div(ε×grad(ϕ))=ρ", где ε − диэлектрическая проницаемость,ϕ − электрический потенциал, ρ − объемный заряд. В том случае, когда установлен режим "Generic Scalar" в списке "Application" (задача в обобщенной скалярной форме), запись уравнения в MATLAB имеет вид "–div(c×grad(u))+a×u=f". Зададим ε = 1, ρ = 0 (или c = 1, a = 0, и f = 0). На следующем этапе формируется сетка конечных элементов (см. рис. 17). PDE Toolbox поддерживает только симплекс-элементы, для которых характерны линейные функции формы (см. (22) и (23)). Пункт Mesh (Сетка) главного меню включает следующие команды для работы с сеткой: Mesh Mode – переключение в режим построения сетки; Initialize Mesh – генерация сетки; Refine Mesh – сгущение сетки; Jiggle Mesh – регуляризация сетки в пределах установленной величины; Undo Mesh Change – отменить последнее изменение сетки; Display Triangle Quality – отобразить в цвете показатель регулярности конечных элементов; Show Node Labels – показать номера узлов; Show Triangle Labels – показать номера конечных элементов; Parameters… – установить параметры генератора сетки; Export Mesh – экспорт сетки в базовую рабочую область. а рабочей панели этому разделу меню соответствуют элементы – генерация сетки и – сгущение сетки.
Следующий этап включает собственно решение задачи и его вывод в графическом виде (см. рис. 18). Соответствующие команды располагаются в пунктах Solve и Plot главного меню. Solve (Решение) содержит команды: Solve PDE – решить краевую задачу; Parameters… – установить параметры решателя; Export Solution… – экспорт решения в базовую рабочую область. На инструментальной панели разделу Solve соответствует элемент .
Plot (График) содержит команды: Plot Solution – отобразить решение; Parameters… – установить параметры отображения решения; Export Movie… – экспорт в базовую рабочую область информации, необходимой для анимации решения нестационарной задачи. На панели PDETool имеются элементы – настройка графики и – увеличить фрагмент.
Результаты расчета можно сохранить, обратившись к пункту File (Файл) меню, включающему команды: New – создать новую модель; Open… – открыть ранее сохранённую в m-файле модель; Save – сохранение модели в m-файле с текущим именем; Save As– сохранение модели в m-файле; Print – печать рисунка; Exit – закрытие приложения PDETool. В следующем примере рассмотрим расчет колебаний тонкой пластины квадратной формы (рис. 19), описываемых обобщенным гиперболическим уравнением вида
Будем считать, что пластина жестко закреплена на левой и правой границах – u = 0, а два других ее края свободны – ∂u/∂n = 0.Расчет с помощью PDETool будем проводить в следующем порядке. Вначале установим вид расчета "Generic Scalar" в окне "Application" (обычно этот режим выбран по умолчанию).
Начертим изображение пластины в графическом окне PDETool таким образом, чтобы ее центр совпал с началом координат (x = 0, y = 0) и стороны были равны a = b = 2, где a – размер по оси x, b – размер по оси y (см. рис.19). Будем задавать граничное условие Дирихле u = 0 на левой и правой сторонах. На двух других сторонах примем условие Неймана ∂u/∂n = 0. Укажем, что задача описывается уравнением гиперболического типа, и введем соответствующие коэффициенты c = 1, a = 0, f = 0, d = 1 (рис. 20).
Зададим параметры решения и начальные условия – исходную деформацию пластины при t = 0:
Для этого воспользуемся диалоговым окном "Solve Parameters", которое можно открыть выбрав пункты меню Solve → Parameters… (рис. 21). Вначале выберем шаг и верхний предел решения по времени. Для параметра Time введем строку "0:0.1:10". Таким образом, расчет будет выполняться по времени в пределах t = 0…10 с шагом ∆t = 0,1.
Начальные условия также записываются с учетом особенностей языка пакета MATLAB. Начальная деформация указывается строкой
"atan(cos(pi*x/2))" ,
а первая производная
"3*sin(pi*x) .*exp(sin(pi*y/2))" .
Относительную и абсолютную погрешность примем равными 0,01 и 0,001, сохранив установленные по умолчанию значения.Сформируем сетку и настроим графические параметры решения с помощью диалогового окна "Plot Selection" (рис. 22).
Завершающий этап – запуск решения задачи. После окончания вычислений в графическом окне интерфейса PDETool отображается деформация пластины в момент времени t = 10, а в дополнительном окне – анимация колебаний пластины (рис. 23).
Приложение PDETool поддерживает решение различных типов задач, описываемых дифференциальными уравнениями в частных производных. В приведенной ниже таблице представлены основные из этих вариантов. Первая строка – "общий вид" соответствует обобщенной задаче, остальные относятся к конкретным физическим приложениям. В таблицу не включены
задачи на собственные значения и системы дифференциальных уравнений.
- Решение дифференциальных уравнений в частных производных
- Классификация уравнений по математической форме
- Основы метода конечных разностей
- 1.2.3. Аппроксимация уравнения гиперболического типа
- 1.2.4. Аппроксимация уравнения параболического типа
- 1.2.5. Погрешность решения
- Основы метода конечных элементов
- Формирование сетки
- Конечно-элементная аппроксимация
- Построение решения
- 1.4. Использование пакетa matlab
- 1.4.1. Выполнение расчетов в пакете matlab
- 2. Указания к выполнению работы
- 2.1. Подготовка к работе
- 2.2. Порядок выполнения работы
- 2.3. Содержание отчета
- 2.4. Контрольные вопросы
- 3. Варианты заданий
- Задание № 2
- Часть 1.
- Часть 2.
- Библиографический список