- •5. Составление скриптов на языке Lua
- •5.1. Из Энциклопедии языков программирования:
- •5.2. Когда выгодно применять Lua-программы?
- •5.3. Несколько советов
- •5.4. Перевод английских слов, использованных в Lua-командах
- •5.5. Примеры
- •5.5.1. Пример 1. Задача: построить равномерное магнитное поле с заданным значением индукции в гладком воздушном зазоре между двумя плоскими сердечниками при наличии в зазоре стального бруса
- •5.5.1. Краткий анализ
- •5.5.3. Пример 2. Оптимизация размеров поперечного сечения магнитоэлектрической синхронной машины
- •5.5.4. Пример 3. Расчет зависимости момента, обусловленного зубчатостью сердечника статора от углового положения ротора
- •5.5.5. Пример 4. Поле гармонических токовых слоев в гладком
5.5. Примеры
5.5.1. Пример 1. Задача: построить равномерное магнитное поле с заданным значением индукции в гладком воздушном зазоре между двумя плоскими сердечниками при наличии в зазоре стального бруса
Составим Lua-сценарий для задачи, рассмотренной в разделе «Простейшие полевые задачи». На рис. 5.1., повторяющем рис. 1.5. этого раздела, приведен результат решения.
Рис. 5.1. Граничные условия и результат решения задачи о равномерном поле в плоском зазоре
Несколько усложним задачу, поместив в зазор стальной брус с прямоугольным поперечным сечением и относительной магнитной проницаемостью, равной 1000.
Начать работу можно следующим образом.
Открыть окно программы FEMM, открыть консоль (окно ввода) Lua, ввести команды: создания fem-файла, сохранения fem-файла, модификации (изменения параметров) fem-файла (рис. 5.2.).
Соответствующие команды (предварительно, как уже было сказано, их удобнее написать в Word-файле):
create("c:\\MyFEMMfiles\\Uniform_gap_field.fem",0)
mi_saveas("c:\\MyFEMMfiles\\Uniform_gap_field.fem")
mi_probdef(0,"millimeters","planar",1e-8,1,20)
Обратите внимание на то, что в адресах файлов следует писать двойные слеши.
Нулевое значение второго параметра первой команды означает, что создается файл магнитостатической задачи (электростатической задаче соответствует единица)
После выполнения этих команд появляется рабочее окно программы FEMM и в правильности задания характеристики созданного файла Uniform_gap_field.fem можно убедиться, нажав клавишу Problem.
Рис. 5.2. Начало работы с Lua-сценарием
Далее следует создать и открыть текстовый файл для записи результатов:
outfile = "c:\\MyFEMMfiles\\Uniform_gap_field_res_1.txt "
handle=openfile(outfile,"w")
Определим граничные условия и свойства сред (воздух и сталь):
mi_addboundprop("left",-0.1,0,0,0,0,0,0,0,0)
mi_addboundprop("right",0.1,0,0,0,0,0,0,0,0)
mi_addmaterial("air")
mi_addmaterial("iron_1000",1000,1000)
Результаты исполнения этих команд можно посмотреть, нажав клавишу Properties.
Далее следуют графические построения – задаются координаты угловых точек и проводятся соединяющие их отрезки прямых:
mi_addnode(0,0)
mi_addnode(-100,0)
mi_addnode(100,0)
mi_addnode(-100,50)
mi_addnode(100,50)
mi_addsegment(-100,0,100,0)
mi_addsegment(-100,50,100,50)
mi_addsegment(-100,0,-100,50)
mi_addsegment(100,0,100,50)
mi_addnode(-20,10)
mi_addnode(20,10)
mi_addnode(-20,30)
mi_addnode(20,30)
mi_addsegment(-20,10, 20,10)
mi_addsegment(-20,30, 20,30)
mi_addsegment(-20,10, -20,30)
mi_addsegment(20,10, 20,30)
mi_zoomnatural()
Последняя команда позволяет увидеть результаты выполненных построений в «натуральном» масштабе на экране компьютера.
Следующие действия – присвоение граничных условий:
mi_selectsegment(-100,1)
mi_setsegmentprop("left")
mi_clearselected()
mi_selectsegment(100,1)
mi_setsegmentprop("right")
mi_clearselected()
и присвоение имен и свойств блоков:
mi_addblocklabel(-80,40)
mi_selectlabel(-80,40)
mi_setblockprop("air",0,1,"0",0,0,0)
mi_clearselected()
mi_addblocklabel(-10,20)
mi_selectlabel(-10,20)
mi_setblockprop("iron_1000",0,1,"0",0,0,0)
mi_clearselected()
mi_refreshview()
Левой и правой границам области задачи присваиваются условия Дирихле – задаются заранее вычисленные значения векторного магнитного потенциала, обеспечивающие в зазоре при отсутствии стального стержня равномерное магнитное поле с индукцией 1 Тл. Задание условий Дирихле в рассматриваемом примере означает, что левую и правую границы мы полагаем совпадающими с силовыми линиями поля. Это положение, верное при отсутствии в зазоре ферромагнитных тел или проводов с токами, в данном случае является допущением.
На верхней и нижней границах области задачи граничные условия явно можно не задавать, т.к. однородные условия Неймана в программе FEMM задаются по умолчанию.
После того, как полевая задача полностью сформулирована, можно приступать к ее решению:
mi_analyze()
и загрузке результатов:
mi_loadsolution()
Для обработки результатов решения предназначены команды постпроцессора программы FEMM:
Для более наглядного представления картины поля можно, например, изменить число силовых линий в том же диапазоне значений векторного магнитного потенциала:
mo_showcontourplot(100,-0.1,0.1)
После этого картина поля, представляющая решение задачи, выглядит следующим образом:
Рис. 5.3. Картина поля, представляющая решение задачи
Графики распределения индукции вдоль определенным образом выбранных контуров (в том числе и для последующего гармонического анализа) могут быть получены с помощью следующих команд:
Выделение контура на поверхности нижнего сердечника (с направлением слева направо) для считывания результатов:
mo_addcontour(-100,1)
mo_addcontour(100,1)
Запись результатов в текстовый файл (число считываемых значений в данном случае равно 2048):
mo_makeplot(2,2048,"c:\\MyFEMMfiles\\Uniform_gap_field_res_1.txt",1)
Рис. 5.4. Распределение индукции вдоль поверхности нижнего сердечника. Отрицательные значения означают, что векторы индукции направлены сверху вниз
