Femm是一个免费的有限元软件,可以进行2维平面或2维轴对称的电、磁、热的有限元仿真分析。
通常会用femm做磁路的仿真,优化磁路设计,或者计算Bl值。实际上femm的功能还有不少拓展的空间,可以求解Bl(X)、Le(x)等等磁路的非线性,短路环对Le(x)的影响等等。
其自带了Lua脚本语言的输入窗口和编译器,可以直接执行Lua命令。
或者也可以耦合Matlab、Mathematica、Octave(类似Matlab的免费软件)
Femm软件的帮助文件中有详细讲解如何进行接口参数调用。Femm官网也有对应的案例参考。
Femm官网网址,可能需要翻墙
http://www.femm.info/wiki/HomePage
附录一款产品求解磁路Bl(x)和Le(x)的Lua命令,注释已经写得很详细清晰:
-- Model NameModelName = 'Woofer.fem';-- Maximum excursion + /- from the centered position:Xlim = 10;-- Movement increments used during the analysisdX = 0.1;---------------------------------------- Analyze BL and incremental inductance at 1 mm steps between
- Xlim and + Xlimopen(ModelName);mi_saveas('temp.fem');mi_selectgroup(1);mi_movetranslate(0, -Xlim);mi_clearselected();showconsole();clearconsole();print('Disp(mm)','BL(N/A)','Inductance(uH)');for k=-Xlim,Xlim,dX do mi_modifycircprop('icoil',1,1); mi_analyze(1); mi_loadsolution(); mo_groupselectblock(1); fz = mo_blockintegral(12); parm1,R,fl1 = mo_getcircuitproperties('icoil'); mo_close(); mi_modifycircprop('icoil', 1, 0); mi_analyze(1); mi_loadsolution(); parm1,parm2,fl0 = mo_getcircuitproperties('icoil'); L = (fl1 - fl0)*10^6; print(k, fz, L); mi_selectgroup(1); mi_movetranslate(0, 1);endmi_close();remove('temp.fem');remove('temp.ans');print('');print('DC coil resistance = ',R);