Добрый день, уважаемые!
Недавно столкнулся с потребностью использовать метод конечных элементов, для расчета электромагнитного поля в машине постоянного тока. Для того, что бы реализовать задуманное подобрал интересное решение, которое позволяет кроме моделирования электромагнитного поля, получить качественное преобразование результатов расчета, а так же выполнить их визуализацию.
При выборе ПО, реализующим МКЭ (метод конечных элементов), остановил свой взгляд на бесплатной программе FEMM, которую можно скачать с официального сайта.
Для управления процессом рассчета была выбрана система инженерных расчетов MATLAB R2010b, которая успешно справляется с возложенными на нее обязательствами с помощью надстройки OctaveFEMM, которая идет в дистрибутиве FEMM.
Установка OctaveFEMM происходит автоматически с установкой программы FEMM версии 4.2 и выше, и располагается в субдиректории mfiles. Для интеграции OctaveFEMM с MATLAB необходимо в командной строке системы MATLAB прописать строчки:
Для того, что бы начать сессию работы с OctaveFEMM необходимо использовать функцию openfemm, а для окончания сессии – closefemm.
Подробный мануал, для использования данной связки программ был переведен и дополнен мною, хочу поделиться результатами работы:
Перечень команд OctaveFEMM для решения электромагнитных задач.
• clearconsole – очищает окно LUA скрипта.
• newdocument(doctype) — создает новый препроцессорный документ и открывает окно препроцессора. Значение doctype зависит от типа рассматриваемой задачи. 0 – для магнитной задачи, 1 – для электростатической задачи, 2 — для задачи теплового потока, 3 – для задачи переменного потока. Альтернативой данной функции является — create(doctype).
• hideconsole – скрывает LUA консоль.
• hidepointprops – скрывает плавающее окно FEMM Properties.
• messagebox(’message’) – показывает всплывающее окно с сообщением message.
• opendocument(’filename’) – открывает файл с именем filename.
• print(item1,item2,...) – стандартная команда вывода на печать.
• prompt(’message’) – команда выведет сообщение message и будет ожидать от пользователя ввода строки, затем продолжит работу скрипта.
• showconsole – показывает плавающее окно LUA скрипта.
• showpointprops- показыват плавающее окно FEMM Properties.
• main_minimize – минимизирует главное окно FEMM.
• main_maximize – максимизирует главное окно FEMM.
• main_restore – восстанавливает нормальные размеры окна FEMM.
• main_resize(width,height) – изменяет размеры главного окна FEMM в соответствии с шириной и высотой (width и height).
Отличительной особенностью команд препроцессора является приставка mi_ перед функциями, которые обеспечивают интеграцию FEMM и MATLAB.
Команды добавления/удаления объектов:
• mi_ addnode(x,y) – добавляет точку с координатами x,y.
• mi_addsegment(x1,y1,x2,y2) – добавляет отрезок с координатами начала x1,y1 и координатами конца x2,y2.
• mi_addblocklabel(x,y) – добавляет label для блока с точкой (x,y).
• mi_addarc(x1,y1,x2,y2,angle,maxseg) –добавляет новую дугу от точки (x1,y1) до точки (x2,y2) с углом ‘angle’ через ‘maxseg’ сегментов.
•mi_drawline(x1,y1,x2,y2) – добавляет линию между точками с указаннами координатами.
•mi_drawpolyline([x1,y1;x2,y2’...]) – добавляет точки с указанными координатами и связывает их сегментами.
•mi_drawpolygon([x1,y1;x2,y2’...]) – добавляет точки с указанными координатами и связывает их сегментами до получения закрытого контура.
•mi_drawarc(x1,y1,x2,y2,angle,maxseg) – добавляет точки с указанными координатами и соединяет их дугой, с количеством сегментов maxseg.
• mi_drawrectangle(x1,y1,x2,y2) – добавляет точки с указанными координатами в углы прямоугольника, а затем соединяет их.
• mi_deleteselected –удаляет все выделенные объекты.
• mi_deleteselectednodes – удаляет все выделенные точки.
• mi_deleteselectedlabels – удаляет выделенные labels у блоков.
• mi_deleteselectedsegments – удаляет выделенный сегмент.
• mi_deleteselectedarcsegments – удаляет выделенную дугу.
Команды выбора геометрических единиц:
• mi_clearselected – снимает выбор со всех точек, отрезков, сегментов и дуг.
•mi_selectsegment(x,y) – выбирает сегмент, ограниченный точкой с координатами (x,y).
• mi_selectnode(x,y) – выбирает точку, приближенную к координатам (x,y) и возвращает координаты точки.
• mi_selectlabel(x,y) – выбирает label, к которому относится точка.
• mi_selectarcsegment(x,y) – выбирает дугу, с точкой с координатами (x,y).
• mi_selectgroup(n) – выбирает группу с label n.
Команды маркировки объектов:
• mi_setnodeprop(’propname’,groupno)- устанавливает для выбранной точки значение ‘propname’ и присваивает номер группы groupno.
• mi_setblockprop(’blockname’, automesh, meshsize, ’incircuit’, magdir, group,
turns) — Устанавливает для выбранного блока следующие свойства:
– Имя блока ’blockname’.
– automesh: 0 = построение расчетной сетки в соответствии с заданными размерами, 1 = автоматический выбор размера сетки и ее построение.
– meshsize: ограничение размера сетки для указанного Label.
– Блок содержит ток ’incircuit’
– Намагничивание направлено вдоль угла, измеряемого в градусах magdir
– Блок принадлежит к группе с номером group.
– Количество витков, которые связаны с данным блоком.
• mi_setsegmentprop(’propname’, elementsize, automesh, hide, group) – устанавливает свойства для выделенного сегмента:
– Граничные условия ’propname’
–Местный размер элемента не больше, чем elementsize.
– automesh: 0 = размер сетки зависит от величины elementsize, 1 = подбирается автоматическое значение размера расчетной сетки.
– hide: 0 = не скрыт в постпроцессоре, 1 = скрыт в постпроцессоре.
– Относится к группе с номером group.
• mi_setarcsegmentprop(maxsegdeg, ’propname’, hide, group) – устанавливает свойства выделенной дуги:
– Расчетная сетка охватывает не более maxsegdeg градусов.
– Граничные условия ’propname’
– hide: 0 = не скрыт в постпроцессоре, 1 = скрыт в постпроцессоре.
– Относится к группе с номером group.
• mi_setgroup(n) – устанавливает группу связанных элементов n.
• mi_ probdef(freq,units,type,precision,depth,minangle,(acsolver)) – изменяет параметры проблемы. Freq устанавливает частоту в Гц. Units устанавливает единицы измерения длины в данной проблеме, возможны следующие варианты — ’inches’, ’millimeters’, ’centimeters’, ’mils’, ’meters’, and ’micrometers’. Параметр type принимает два значения ‘planar’ для рассмотрения 2-D модели и ‘axi’ для рассмотрения осесимметричной модели. Параметр precision определяет точность, с которой необходимо решать задачу, например для точности 10-8 необходимо ввести 1Е-8. Параметр depth, отвечает за глубину модели. Параметр minangle указывает минимальное значение угла между элементами сетка, обычно это значение равно -30. Acsolver параметр отвечает за исследование переменного тока: 0 — последовательная аппроксимация, 1 – ньютоновская аппроксимация.
• mi_analyze(flag) – запускает решатель FEMM, для видимого окна укажите 0, для свернутого – 1.
• mi_loadsolution – загружает и отображает решение соответствующее текущей геометрии.
• mi_setfocus(’documentname’) — переключает программу FEMM на файл ‘documentname’.
• mi_saveas(’filename’) – сохраняет файл под именем ’filename’.
Команды расчетной сетки:
• mi_createmesh – запускает создание расчетной сетки.
• mi_showmesh – отображает сетку.
• mi_purgemesh –освобождает память и экран от расчетной сетки.
Команды масштабирования:
• mi_zoomnatural – активирует масштаб по размеру.
• mi_zoomout – активирует 50% масштаб.
• mi_zoomin – активирует 200% масштаб.
• mi_zoom(x1,y1,x2,y2) – активирует такой масштаб, что точка с координатами (x1,y1) располагается в верхнем правом углу, а точка с координатами (x2,y2) в левом нижнем углу.
• mi_showgrid – показывает точки сетки.
• mi_hidegrid – скрывает точки сетки.
• mi_grid_snap(’flag’) – установка flag в ’on’ привязывает к сетке, установка flag в ’off’ отключает привязку к сетке.
• mi_setgrid(density,’type’) — изменяет свойства сетки. Параметр density указывает на плотность сетки, параметр type может принимать два значения: ’cart’ и ’polar’ для ортоганальных и полярных координат соответственно.
• mi_refreshview – обновляет вид и содержимое главного окна.
• mi_minimize – минимизирует вид активного магнетизма.
• mi_maximize – максимизирует вид активного магнетизма.
• mi_restor – возвращает стандартный вид активного магнетизма.
• mi_resize(width,height) – производит изменение размеров основного окна в соответствии с шириной и высотой.
Свойства объектов:
• mi_addmaterial(’matname’, mu_x, mu_y, H c, J, Cduct, Lam d, Phi hmax, lam fill,
LamType, Phi hx, Phi hy, nstr, dwire) – добавляет новый материал с именем mathname и со свойствами:
– mu_x — магнитная проницаемость по оси x или по оси r.
– mu_y — магнитная проницаемость по оси y или по оси z.
– H_c – постоянная магнитная коэрцитивность в А/м.
– J – плотность тока в А/мм2.
– Cduct – электрическая проводимость материала в MS/m.
– Lam d – толщина пластинки из которой набран материал (применительно к шихтованному материалу).
– Phi hmax – угол задержки кривой гистерезиса, для нелинейных зависимостей BH.
– Lam fill – часть объема, занятая шихтованными листами, применительно к железу.
– Lamtype – может быть:
_ 0 – не шихтовано, либо шихтовано бесконечно плоскими листами;
_ 1 – шихтовано по оси x или r;
_ 2 – шихтовано по оси y или z;
_ 3 – магнитный проводник;
_ 4 – простой жильный провод;
_ 5 – гибкий многожильный провод;
_ 6 – прямоугольный провод;
– Phi hx – угол задержки петли гистерезиса в градусах по оси x для линейных задач.
– Phi hy – угол задержки петли гистерезиса в градусах по оси y для линейных задач.
– nstr — количество жил в многожилном проводе.
– dwire — диаметр каждой жилы многожильного провода в мм.
Обратите внимание, что все свойства должны быть заданы. Если вы не задали какое-либо свойство, то оно принимает значение по-умолчанию.
• mi_addbhpoint(’blockname’,b,h) — добавляет точку, к кривой намагничивания с координатами b и h, где индункция измеряется в Тл, а напряженность магнитного поля в А/м.
• mi_clearbhpoints(’blockname’) – удаляет все точки кривой намагничивания для материала с именем blockname.
• mi_addpointprop(’pointpropname’,a,j) – добавляет новую точку на кривой, с координатами a,j измеряемых в Вб/м и А соответственно.
• mi_addboundprop(’propname’, A0, A1, A2, Phi, Mu, Sig, c0, c1, BdryFormat) – добавляет новую обмотку с именем propname.
– для добавленной обмотки можно установить параметры A0, A1, A2 и Phi
если требуется. По умолчанию все они равны нулю.
• mi_addcircprop(’circuitname’, i, circuittype)- добавляет новый ток, с именем circuitname, значением i и параллельным, либо последовательным соединением проводников, circuittype 0 и 1 соответственно.
• mi_deletematerial(’materialname’) — удаляет материал с именем materialname.
• mi_deleteboundprop(’propname’)- удаляет обмотку ’propname’.
• mi_deletecircuit(’circuitname’) – удаляет ток circuitname.
• mi_deletepointprop(’pointpropname’) – удаляет точку свойств ’pointpropname’.
• mi_modifymaterial(’BlockName’,propnum,value) – данная функция позволяет изменять любое свойство материала в соответствии с таблицей:
propnum Symbol Description
0 BlockName Название материала
1 μx x (or r) магнитная проницаемость
2 μy y (or z) магнитная проницаемость
3 Hc коэрцитивность, А/м
4 J плотность тока, МА/м2
5 s электрическая проводимость, МС/м
6 dlam толщина пластинок, мм
7 fhmax угол задержки петли гистерезиса, градусы
8 LamFill заполняемость железом
9 LamType 0 = нет, 1 = параллельно x, 2= параллельно y
10 fhx угол задержки петли гистерезиса в градусах по оси x
11 fhy угол задержки петли гистерезиса в градусах по оси x
• mi_modifyboundprop(’BdryName’,propnum,value) – функция, с помощью которой можно модифицировать свойства обмотки.
propnum Symbol Description
0 BdryName Имя свойства
1 A0 установка параметра А
2 A1 установка параметра А
3 A2 установка параметра А
4 f установка фазы параметра А
5 μ маленькая удельная магнитная проницаемость
6 s маленькая электрическая проводимость
7 c0 смешанный параметр
8 c1 смешанный параметр
9 BdryFormat тип состояния обмотки
•mi_modifypointprop(’PointName’,propnum,value) — функция для модификации точки свойств.
•mi_modifycircprop(’CircName’,propnum,value) – функция для модификации свойств тока.
• mi_savebitmap(’filename’) — сохраняет файл в формате .bmp с именем filename.
• mi_savemetafile(’filename’) — сохраняет файл в формате .mtf с именем filename.
• mi_refreshview – перерисовывает текущий вид.
• mi_close – закрывает текущий препроцессорный документ.
• mi_shownames(flag) – функция для показа либо скрытия значения label. Если значение flag равно нулю, то происходит скрытие, при 1 – показ.
• mi_readdxf(’filename’) — эта функция импортирует эскиз из файла .dxf.
• mi_savedxf(’filename’) – функция, которая сохраняет геометрию в файле .dxf.
Набор команд, с помощью которых можно работать с моделью после расчета в программе FEMM.
• mo_lineintegral(type) – вычисляет линейный интеграл по указанному контуру.
Type Name Values 1 Values 2 Values 3 Values 4
0 B.n Полное значение Среднее значение — -
1 H.t Полное значение Среднее значение — -
2 Длина контура Площадь поверхности — - — 3 Сила, через тензор натяжения Сила по оси r/x Сила по оси z/y 2x r/x force 2x y/z force
4 Момент, через тензор натяжения Постоянная составляющая момента Двойной момент — -
5 (B.n)2 Полное значение Среднее значение — -
• mo_makeplot(PlotType,NumPoints,Filename,FileFormat) — позволяет Octave использовать средства программы FEMM для построения графиков. Если заданы значениея PlotType, Numpoints – количество точек в графике, FileName и Fileformat – имя файла и его расширение соответственно, для сохранения информации на жестский диск. Правильным являются следующие значения PlotType:
PlotType Definition
0 Potential
1 |B|
2 B• n
3 B• t
4 |H|
5 H • n
6 H • t
7 Jeddy
8 Jsource+Jeddy
Так же доступны следующие варианты переменной FileFormat:
FileFormat Definition
0 Многоколонный текст с легендой
1 Многоколонный текст без легенды
2 Форматирование в стиле mathematica
•mo_getprobleminfo – возвращает следующие значения, 1 – тип задачи, 2 – частота в Гц, 3- глубина задачи в метрах, 4 – единицу длина задачи.
• mo_getcircuitproperties(’circuit’) – используется для получения информации о токе с именем circuit. Возвращает одно из следующих значений:
– current — значение тока
– volts – падение напряжение на обмотке.
– flux – возвращает потокосцепление обмотки.
• mo_seteditmode(mode) – указывает тип объекта, с которым предстоит работать постпроцессору. Значения mode могут быть: point, contour, area.
• mo_selectblock(x,y) – выделяет блок, содержащий точку с данными координатами.
• mo_groupselectblock(n) – выделяет блок, элементы которого принадлежат группе n. Если не указана группа, то выделяются все блоки.
• mo_addcontour(x,y) – добавляет точку контуру с координатами (x,y). Эта функция аналогична работе в постпроцессорном файле .ans, нажатию правой кнопки мыши.
• mo_selectpoint(x,y) – выделяет точку, с координатами (x,y).
• mo_clearcontour – снимает выделение с контура, который был выделен.
• mo_clearblock — снимает выделение с блока.
• mi_zoomnatural – активирует масштаб по размеру.
• mi_zoomout – активирует 50% масштаб.
• mi_zoomin – активирует 200% масштаб.
• mi_zoom(x1,y1,x2,y2) – активирует такой масштаб, что точка с координатами (x1,y1) располагается в верхнем правом углу, а точка с координатами (x2,y2) в левом нижнем углу.
Команды просмотра:
• mo_showmesh – показывает расчетную сетку
• mo_hidemesh – скрывает расчетную сетку.
• mo_showpoints – показывает записи к точкам, попавшим в геометрию.
• mo_hidepoints — скрывает узловые точки от входной геометрии.
• mo_smooth(’flag’) — эта функция определяет необходимо ли производить сглаживание кривых намагничивания материалов. Если flag в состоянии on, то сглаживание будет активировано, если off, то выключено.
• mo_showgrid – показывает сетку точек.
• mo_hidegrid – скрывает сетку точек…
• mo_grid_snap(’flag’) — если flag в состоянии on, следовательно включается привязка к сетке, в противном случае она выключена.
• mo_setgrid(density,’type’) – изменение сетки. Параметр density отвечает за расстояние между точками сетки, а параметр type отвечает за полярные координаты, либо за декартовы.
• mo_hidedensityplot – скрывает плотность магнитного потока.
• mo_showdensityplot(legend,gscale,upper_B,lower_B,type) – показывает плотность магнитного потока:
– legend принимает значение 0 – не показывать, 1- показывать легенду.
– gscale указывает на 0- цветное построение, 1 – в серых тонах.
– upper_B – устанавливает верхний предел для отображения плотности потока.
– lower_B – устанавливает нижний предел для отображения плотности потока.
– type – тип отображения плотности потока.
• mo_hidecontourplot – скрывает участок контура.
• mo_showcontourplot(numcontours,lower_A,upper_A,type)- показывает контур участка со свойствами:
– numcontours – количество эквипотенциальных линий А.
– upper_A – верхний предел А.
– lower_A — нижний предел А.
– type- указывает тип построения — ’real’, ’imag’, ’both’ для отображения реальной части, мнимой части и вещественной части числа.
• mo_ showvectorplot(type,scalefactor) – контролирует отображение векторов, изображающих поле и силу.
• mo_minimize – минимизирует окно результата.
• mo_maximize – максимизирует окно результата.
• mo_restore – восстанавливает окно результата.
• mo_resize(width,height) – производит изменение размера окна результата до ширины и высоты указанных в аргументе.
Разные команды:
• mo_close – закрывает текущую постпроцессорную задачу.
• mo_refreshview – переисовывает текущий вид.
• mo_reload – загружает результат из файла.
• mo_savebitmap(’filename’) — сохраняет результат в .bmp файле с именем filename.
• mo_savemetafile(’filename’) — сохраняет результат в .mtf файле с именем
filename.
• mo_shownames(flag) — при flag=1 отображает названия всех label.
• mo_numnodes – возвращает количество узлов в расчетной сетке.
• mo_numelements — возвращает количество элементов в расчетной сетке.
• mo_getnode(n) – возвращает координаты n-ной точки.
• mo getelement(n) – возвращает следующие свойства n-ного элемента:
1. Индекс первого элемента узла
2. Индекс второго элемента узла
3. Индекс третьего элемента узла
4. x (или r) координату центра тяжести элемента
5. y (или z) координату центра тяжести элемента
6. единицу длины, используемую в задаче
7. номер группы, ассоциированной с данным элементом.
Думаю, что данная справочная информация будет полезна некоторым пользователям российских интернетов.
Недавно столкнулся с потребностью использовать метод конечных элементов, для расчета электромагнитного поля в машине постоянного тока. Для того, что бы реализовать задуманное подобрал интересное решение, которое позволяет кроме моделирования электромагнитного поля, получить качественное преобразование результатов расчета, а так же выполнить их визуализацию.
При выборе ПО, реализующим МКЭ (метод конечных элементов), остановил свой взгляд на бесплатной программе FEMM, которую можно скачать с официального сайта.
Для управления процессом рассчета была выбрана система инженерных расчетов MATLAB R2010b, которая успешно справляется с возложенными на нее обязательствами с помощью надстройки OctaveFEMM, которая идет в дистрибутиве FEMM.
Начало работы
Установка OctaveFEMM происходит автоматически с установкой программы FEMM версии 4.2 и выше, и располагается в субдиректории mfiles. Для интеграции OctaveFEMM с MATLAB необходимо в командной строке системы MATLAB прописать строчки:
addpath(’c:\\progra˜1\\femm42\\mfiles’);
savepath;
Для того, что бы начать сессию работы с OctaveFEMM необходимо использовать функцию openfemm, а для окончания сессии – closefemm.
Основные команды
Подробный мануал, для использования данной связки программ был переведен и дополнен мною, хочу поделиться результатами работы:
Перечень команд OctaveFEMM для решения электромагнитных задач.
Общие команды:
• clearconsole – очищает окно LUA скрипта.
• newdocument(doctype) — создает новый препроцессорный документ и открывает окно препроцессора. Значение doctype зависит от типа рассматриваемой задачи. 0 – для магнитной задачи, 1 – для электростатической задачи, 2 — для задачи теплового потока, 3 – для задачи переменного потока. Альтернативой данной функции является — create(doctype).
• hideconsole – скрывает LUA консоль.
• hidepointprops – скрывает плавающее окно FEMM Properties.
• messagebox(’message’) – показывает всплывающее окно с сообщением message.
• opendocument(’filename’) – открывает файл с именем filename.
• print(item1,item2,...) – стандартная команда вывода на печать.
• prompt(’message’) – команда выведет сообщение message и будет ожидать от пользователя ввода строки, затем продолжит работу скрипта.
• showconsole – показывает плавающее окно LUA скрипта.
• showpointprops- показыват плавающее окно FEMM Properties.
• main_minimize – минимизирует главное окно FEMM.
• main_maximize – максимизирует главное окно FEMM.
• main_restore – восстанавливает нормальные размеры окна FEMM.
• main_resize(width,height) – изменяет размеры главного окна FEMM в соответствии с шириной и высотой (width и height).
Команды препроцессора.
Отличительной особенностью команд препроцессора является приставка mi_ перед функциями, которые обеспечивают интеграцию FEMM и MATLAB.
Команды добавления/удаления объектов:
• mi_ addnode(x,y) – добавляет точку с координатами x,y.
• mi_addsegment(x1,y1,x2,y2) – добавляет отрезок с координатами начала x1,y1 и координатами конца x2,y2.
• mi_addblocklabel(x,y) – добавляет label для блока с точкой (x,y).
• mi_addarc(x1,y1,x2,y2,angle,maxseg) –добавляет новую дугу от точки (x1,y1) до точки (x2,y2) с углом ‘angle’ через ‘maxseg’ сегментов.
•mi_drawline(x1,y1,x2,y2) – добавляет линию между точками с указаннами координатами.
•mi_drawpolyline([x1,y1;x2,y2’...]) – добавляет точки с указанными координатами и связывает их сегментами.
•mi_drawpolygon([x1,y1;x2,y2’...]) – добавляет точки с указанными координатами и связывает их сегментами до получения закрытого контура.
•mi_drawarc(x1,y1,x2,y2,angle,maxseg) – добавляет точки с указанными координатами и соединяет их дугой, с количеством сегментов maxseg.
• mi_drawrectangle(x1,y1,x2,y2) – добавляет точки с указанными координатами в углы прямоугольника, а затем соединяет их.
• mi_deleteselected –удаляет все выделенные объекты.
• mi_deleteselectednodes – удаляет все выделенные точки.
• mi_deleteselectedlabels – удаляет выделенные labels у блоков.
• mi_deleteselectedsegments – удаляет выделенный сегмент.
• mi_deleteselectedarcsegments – удаляет выделенную дугу.
Команды выбора геометрических единиц:
• mi_clearselected – снимает выбор со всех точек, отрезков, сегментов и дуг.
•mi_selectsegment(x,y) – выбирает сегмент, ограниченный точкой с координатами (x,y).
• mi_selectnode(x,y) – выбирает точку, приближенную к координатам (x,y) и возвращает координаты точки.
• mi_selectlabel(x,y) – выбирает label, к которому относится точка.
• mi_selectarcsegment(x,y) – выбирает дугу, с точкой с координатами (x,y).
• mi_selectgroup(n) – выбирает группу с label n.
Команды маркировки объектов:
• mi_setnodeprop(’propname’,groupno)- устанавливает для выбранной точки значение ‘propname’ и присваивает номер группы groupno.
• mi_setblockprop(’blockname’, automesh, meshsize, ’incircuit’, magdir, group,
turns) — Устанавливает для выбранного блока следующие свойства:
– Имя блока ’blockname’.
– automesh: 0 = построение расчетной сетки в соответствии с заданными размерами, 1 = автоматический выбор размера сетки и ее построение.
– meshsize: ограничение размера сетки для указанного Label.
– Блок содержит ток ’incircuit’
– Намагничивание направлено вдоль угла, измеряемого в градусах magdir
– Блок принадлежит к группе с номером group.
– Количество витков, которые связаны с данным блоком.
• mi_setsegmentprop(’propname’, elementsize, automesh, hide, group) – устанавливает свойства для выделенного сегмента:
– Граничные условия ’propname’
–Местный размер элемента не больше, чем elementsize.
– automesh: 0 = размер сетки зависит от величины elementsize, 1 = подбирается автоматическое значение размера расчетной сетки.
– hide: 0 = не скрыт в постпроцессоре, 1 = скрыт в постпроцессоре.
– Относится к группе с номером group.
• mi_setarcsegmentprop(maxsegdeg, ’propname’, hide, group) – устанавливает свойства выделенной дуги:
– Расчетная сетка охватывает не более maxsegdeg градусов.
– Граничные условия ’propname’
– hide: 0 = не скрыт в постпроцессоре, 1 = скрыт в постпроцессоре.
– Относится к группе с номером group.
• mi_setgroup(n) – устанавливает группу связанных элементов n.
Команды, обозначающие проблему:
• mi_ probdef(freq,units,type,precision,depth,minangle,(acsolver)) – изменяет параметры проблемы. Freq устанавливает частоту в Гц. Units устанавливает единицы измерения длины в данной проблеме, возможны следующие варианты — ’inches’, ’millimeters’, ’centimeters’, ’mils’, ’meters’, and ’micrometers’. Параметр type принимает два значения ‘planar’ для рассмотрения 2-D модели и ‘axi’ для рассмотрения осесимметричной модели. Параметр precision определяет точность, с которой необходимо решать задачу, например для точности 10-8 необходимо ввести 1Е-8. Параметр depth, отвечает за глубину модели. Параметр minangle указывает минимальное значение угла между элементами сетка, обычно это значение равно -30. Acsolver параметр отвечает за исследование переменного тока: 0 — последовательная аппроксимация, 1 – ньютоновская аппроксимация.
• mi_analyze(flag) – запускает решатель FEMM, для видимого окна укажите 0, для свернутого – 1.
• mi_loadsolution – загружает и отображает решение соответствующее текущей геометрии.
• mi_setfocus(’documentname’) — переключает программу FEMM на файл ‘documentname’.
• mi_saveas(’filename’) – сохраняет файл под именем ’filename’.
Команды расчетной сетки:
• mi_createmesh – запускает создание расчетной сетки.
• mi_showmesh – отображает сетку.
• mi_purgemesh –освобождает память и экран от расчетной сетки.
Команды масштабирования:
• mi_zoomnatural – активирует масштаб по размеру.
• mi_zoomout – активирует 50% масштаб.
• mi_zoomin – активирует 200% масштаб.
• mi_zoom(x1,y1,x2,y2) – активирует такой масштаб, что точка с координатами (x1,y1) располагается в верхнем правом углу, а точка с координатами (x2,y2) в левом нижнем углу.
Команды просмотра:
• mi_showgrid – показывает точки сетки.
• mi_hidegrid – скрывает точки сетки.
• mi_grid_snap(’flag’) – установка flag в ’on’ привязывает к сетке, установка flag в ’off’ отключает привязку к сетке.
• mi_setgrid(density,’type’) — изменяет свойства сетки. Параметр density указывает на плотность сетки, параметр type может принимать два значения: ’cart’ и ’polar’ для ортоганальных и полярных координат соответственно.
• mi_refreshview – обновляет вид и содержимое главного окна.
• mi_minimize – минимизирует вид активного магнетизма.
• mi_maximize – максимизирует вид активного магнетизма.
• mi_restor – возвращает стандартный вид активного магнетизма.
• mi_resize(width,height) – производит изменение размеров основного окна в соответствии с шириной и высотой.
Свойства объектов:
• mi_addmaterial(’matname’, mu_x, mu_y, H c, J, Cduct, Lam d, Phi hmax, lam fill,
LamType, Phi hx, Phi hy, nstr, dwire) – добавляет новый материал с именем mathname и со свойствами:
– mu_x — магнитная проницаемость по оси x или по оси r.
– mu_y — магнитная проницаемость по оси y или по оси z.
– H_c – постоянная магнитная коэрцитивность в А/м.
– J – плотность тока в А/мм2.
– Cduct – электрическая проводимость материала в MS/m.
– Lam d – толщина пластинки из которой набран материал (применительно к шихтованному материалу).
– Phi hmax – угол задержки кривой гистерезиса, для нелинейных зависимостей BH.
– Lam fill – часть объема, занятая шихтованными листами, применительно к железу.
– Lamtype – может быть:
_ 0 – не шихтовано, либо шихтовано бесконечно плоскими листами;
_ 1 – шихтовано по оси x или r;
_ 2 – шихтовано по оси y или z;
_ 3 – магнитный проводник;
_ 4 – простой жильный провод;
_ 5 – гибкий многожильный провод;
_ 6 – прямоугольный провод;
– Phi hx – угол задержки петли гистерезиса в градусах по оси x для линейных задач.
– Phi hy – угол задержки петли гистерезиса в градусах по оси y для линейных задач.
– nstr — количество жил в многожилном проводе.
– dwire — диаметр каждой жилы многожильного провода в мм.
Обратите внимание, что все свойства должны быть заданы. Если вы не задали какое-либо свойство, то оно принимает значение по-умолчанию.
• mi_addbhpoint(’blockname’,b,h) — добавляет точку, к кривой намагничивания с координатами b и h, где индункция измеряется в Тл, а напряженность магнитного поля в А/м.
• mi_clearbhpoints(’blockname’) – удаляет все точки кривой намагничивания для материала с именем blockname.
• mi_addpointprop(’pointpropname’,a,j) – добавляет новую точку на кривой, с координатами a,j измеряемых в Вб/м и А соответственно.
• mi_addboundprop(’propname’, A0, A1, A2, Phi, Mu, Sig, c0, c1, BdryFormat) – добавляет новую обмотку с именем propname.
– для добавленной обмотки можно установить параметры A0, A1, A2 и Phi
если требуется. По умолчанию все они равны нулю.
• mi_addcircprop(’circuitname’, i, circuittype)- добавляет новый ток, с именем circuitname, значением i и параллельным, либо последовательным соединением проводников, circuittype 0 и 1 соответственно.
• mi_deletematerial(’materialname’) — удаляет материал с именем materialname.
• mi_deleteboundprop(’propname’)- удаляет обмотку ’propname’.
• mi_deletecircuit(’circuitname’) – удаляет ток circuitname.
• mi_deletepointprop(’pointpropname’) – удаляет точку свойств ’pointpropname’.
• mi_modifymaterial(’BlockName’,propnum,value) – данная функция позволяет изменять любое свойство материала в соответствии с таблицей:
propnum Symbol Description
0 BlockName Название материала
1 μx x (or r) магнитная проницаемость
2 μy y (or z) магнитная проницаемость
3 Hc коэрцитивность, А/м
4 J плотность тока, МА/м2
5 s электрическая проводимость, МС/м
6 dlam толщина пластинок, мм
7 fhmax угол задержки петли гистерезиса, градусы
8 LamFill заполняемость железом
9 LamType 0 = нет, 1 = параллельно x, 2= параллельно y
10 fhx угол задержки петли гистерезиса в градусах по оси x
11 fhy угол задержки петли гистерезиса в градусах по оси x
• mi_modifyboundprop(’BdryName’,propnum,value) – функция, с помощью которой можно модифицировать свойства обмотки.
propnum Symbol Description
0 BdryName Имя свойства
1 A0 установка параметра А
2 A1 установка параметра А
3 A2 установка параметра А
4 f установка фазы параметра А
5 μ маленькая удельная магнитная проницаемость
6 s маленькая электрическая проводимость
7 c0 смешанный параметр
8 c1 смешанный параметр
9 BdryFormat тип состояния обмотки
•mi_modifypointprop(’PointName’,propnum,value) — функция для модификации точки свойств.
•mi_modifycircprop(’CircName’,propnum,value) – функция для модификации свойств тока.
Различные команды:
• mi_savebitmap(’filename’) — сохраняет файл в формате .bmp с именем filename.
• mi_savemetafile(’filename’) — сохраняет файл в формате .mtf с именем filename.
• mi_refreshview – перерисовывает текущий вид.
• mi_close – закрывает текущий препроцессорный документ.
• mi_shownames(flag) – функция для показа либо скрытия значения label. Если значение flag равно нулю, то происходит скрытие, при 1 – показ.
• mi_readdxf(’filename’) — эта функция импортирует эскиз из файла .dxf.
• mi_savedxf(’filename’) – функция, которая сохраняет геометрию в файле .dxf.
Команды постпроцессора.
Набор команд, с помощью которых можно работать с моделью после расчета в программе FEMM.
• mo_lineintegral(type) – вычисляет линейный интеграл по указанному контуру.
Type Name Values 1 Values 2 Values 3 Values 4
0 B.n Полное значение Среднее значение — -
1 H.t Полное значение Среднее значение — -
2 Длина контура Площадь поверхности — - — 3 Сила, через тензор натяжения Сила по оси r/x Сила по оси z/y 2x r/x force 2x y/z force
4 Момент, через тензор натяжения Постоянная составляющая момента Двойной момент — -
5 (B.n)2 Полное значение Среднее значение — -
• mo_makeplot(PlotType,NumPoints,Filename,FileFormat) — позволяет Octave использовать средства программы FEMM для построения графиков. Если заданы значениея PlotType, Numpoints – количество точек в графике, FileName и Fileformat – имя файла и его расширение соответственно, для сохранения информации на жестский диск. Правильным являются следующие значения PlotType:
PlotType Definition
0 Potential
1 |B|
2 B• n
3 B• t
4 |H|
5 H • n
6 H • t
7 Jeddy
8 Jsource+Jeddy
Так же доступны следующие варианты переменной FileFormat:
FileFormat Definition
0 Многоколонный текст с легендой
1 Многоколонный текст без легенды
2 Форматирование в стиле mathematica
•mo_getprobleminfo – возвращает следующие значения, 1 – тип задачи, 2 – частота в Гц, 3- глубина задачи в метрах, 4 – единицу длина задачи.
• mo_getcircuitproperties(’circuit’) – используется для получения информации о токе с именем circuit. Возвращает одно из следующих значений:
– current — значение тока
– volts – падение напряжение на обмотке.
– flux – возвращает потокосцепление обмотки.
Команды выбора:
• mo_seteditmode(mode) – указывает тип объекта, с которым предстоит работать постпроцессору. Значения mode могут быть: point, contour, area.
• mo_selectblock(x,y) – выделяет блок, содержащий точку с данными координатами.
• mo_groupselectblock(n) – выделяет блок, элементы которого принадлежат группе n. Если не указана группа, то выделяются все блоки.
• mo_addcontour(x,y) – добавляет точку контуру с координатами (x,y). Эта функция аналогична работе в постпроцессорном файле .ans, нажатию правой кнопки мыши.
• mo_selectpoint(x,y) – выделяет точку, с координатами (x,y).
• mo_clearcontour – снимает выделение с контура, который был выделен.
• mo_clearblock — снимает выделение с блока.
Команды изменения масштаба:
• mi_zoomnatural – активирует масштаб по размеру.
• mi_zoomout – активирует 50% масштаб.
• mi_zoomin – активирует 200% масштаб.
• mi_zoom(x1,y1,x2,y2) – активирует такой масштаб, что точка с координатами (x1,y1) располагается в верхнем правом углу, а точка с координатами (x2,y2) в левом нижнем углу.
Команды просмотра:
• mo_showmesh – показывает расчетную сетку
• mo_hidemesh – скрывает расчетную сетку.
• mo_showpoints – показывает записи к точкам, попавшим в геометрию.
• mo_hidepoints — скрывает узловые точки от входной геометрии.
• mo_smooth(’flag’) — эта функция определяет необходимо ли производить сглаживание кривых намагничивания материалов. Если flag в состоянии on, то сглаживание будет активировано, если off, то выключено.
• mo_showgrid – показывает сетку точек.
• mo_hidegrid – скрывает сетку точек…
• mo_grid_snap(’flag’) — если flag в состоянии on, следовательно включается привязка к сетке, в противном случае она выключена.
• mo_setgrid(density,’type’) – изменение сетки. Параметр density отвечает за расстояние между точками сетки, а параметр type отвечает за полярные координаты, либо за декартовы.
• mo_hidedensityplot – скрывает плотность магнитного потока.
• mo_showdensityplot(legend,gscale,upper_B,lower_B,type) – показывает плотность магнитного потока:
– legend принимает значение 0 – не показывать, 1- показывать легенду.
– gscale указывает на 0- цветное построение, 1 – в серых тонах.
– upper_B – устанавливает верхний предел для отображения плотности потока.
– lower_B – устанавливает нижний предел для отображения плотности потока.
– type – тип отображения плотности потока.
• mo_hidecontourplot – скрывает участок контура.
• mo_showcontourplot(numcontours,lower_A,upper_A,type)- показывает контур участка со свойствами:
– numcontours – количество эквипотенциальных линий А.
– upper_A – верхний предел А.
– lower_A — нижний предел А.
– type- указывает тип построения — ’real’, ’imag’, ’both’ для отображения реальной части, мнимой части и вещественной части числа.
• mo_ showvectorplot(type,scalefactor) – контролирует отображение векторов, изображающих поле и силу.
• mo_minimize – минимизирует окно результата.
• mo_maximize – максимизирует окно результата.
• mo_restore – восстанавливает окно результата.
• mo_resize(width,height) – производит изменение размера окна результата до ширины и высоты указанных в аргументе.
Разные команды:
• mo_close – закрывает текущую постпроцессорную задачу.
• mo_refreshview – переисовывает текущий вид.
• mo_reload – загружает результат из файла.
• mo_savebitmap(’filename’) — сохраняет результат в .bmp файле с именем filename.
• mo_savemetafile(’filename’) — сохраняет результат в .mtf файле с именем
filename.
• mo_shownames(flag) — при flag=1 отображает названия всех label.
• mo_numnodes – возвращает количество узлов в расчетной сетке.
• mo_numelements — возвращает количество элементов в расчетной сетке.
• mo_getnode(n) – возвращает координаты n-ной точки.
• mo getelement(n) – возвращает следующие свойства n-ного элемента:
1. Индекс первого элемента узла
2. Индекс второго элемента узла
3. Индекс третьего элемента узла
4. x (или r) координату центра тяжести элемента
5. y (или z) координату центра тяжести элемента
6. единицу длины, используемую в задаче
7. номер группы, ассоциированной с данным элементом.
Думаю, что данная справочная информация будет полезна некоторым пользователям российских интернетов.