许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  Python调用FEKO实现自动化电磁仿真:代码与视频教程

Python调用FEKO实现自动化电磁仿真:代码与视频教程

阅读数 6
点赞 0
article_banner

有朋友看完了我前面一篇文章(利用程序让FEKO仿真工程文件自己排队算好等着你)后留言表示:这都啥时代了,还光顾着用Matlab?美帝都要卡脖子不让用了,居然还不会用Python?

图1 全民是不是都在学Python?

这不,我都被这话说得热血沸腾:不就是个Python吗,谁不会啊?我有这么菜吗?

图2 把我说得像菜花蛇一样菜——我有这么菜吗?

话说这Matlab和Python之争,也不是一天两天了,凭着开源的优势,Python的确是有后来居上的态势。

图3 Matlab vs Python?

不过,俺们都是成年人了,Matlab和Python是哪个更好不重要,重要的是——作为成年人,我全都要。是的,Matlab和Python的程序我都想要,我猜你肯定也是!

图4 成年人的标志之一——“我全都要”!

不过,事情可没有那么简单,无论你是去谷歌家,还是私会美丽的度娘,都会发现,这块信息,在网上真是个0啊! 谷歌家好不容易搜出一个结果,还是利用Python直接处理feko计算结果的,压根没有涉及调用FEKO计算的事。

图5 谷歌家的搜索结果

算了,人一定要靠自己,还是我自己来吧。

图6 “人一定要靠自己”

经过我一番摸索、请教、尝试,终于可以给你们上干货了。

首先说明运行环境:

Python 版本:3.7.6

运行环境: Anaconda (Jupyter notebook and Spyder )

无论是Jupyter notebook还是Spyder,相信总有一款适合你,反正两个都能正常运行。

大致思路:

类似在Matlab里面运行dos命令的操作,在python中去复现相应的语句。这么简单?下面你看看就知道罗。

具体实施有以下几个步骤:

  1. 添加环境变量

以win10系统为例,“此电脑”——“属性”——“高级系统设置”——“环境变量”——“系统变量”——“编辑”——“path”,再将path增加FEKO的运行路径,一般默认路径是:

C:\Program Files\Altair\2021\feko\bin

注意:环境变量添加后,要重启生效,不重启的人就困在这吧。其他win7系统也很容易度娘一下得到类似结果。

图7 环境变量path的添加

添加和重启后,可以利用cmd命令调出dos命令的黑窗口,输入runfeko.exe,看看反应。

图8 cmd命令调出dos命令的黑窗口,输入runfeko.exe

如果有以下显示,则为正常。我们还可以基于此,写出更为复杂的控制命令语句。

图9 dos命令的黑窗口下输入runfeko.exe的反应
  1. 将FEKO计算工程文件放置于对应的Python工作文件夹。

例如Jupyter notebook通常对应的是 C:\Users\wuyifan

而Spyder通常对应的是 C:\Users\ wuyifan \.spyder-py3

而FEKO工程文件的重点是*.pre文件。

图10 *.pre文件的罗列显示
  1. 运行Python程序,将FEKO软件在后台调用计算,计算状态信息在dos命令黑窗口显示。

根据你自己计算资源和想法,Python程序的语句也可以设置不同,自行选定计算的核心等情况。常言道,真传一句话,假传万卷书。别瞎BB,talk is cheap. show me the code.

图11 别瞎BB,talk is cheap. show me the code.

这就来啦!具体典型语句如下图所示:

图12 调用FEKO计算的典型语句显示

正所谓难者不会,会者不难。看起来非常简单的几句代码,但是相信你翻遍了谷歌,度娘也没有任何直接收获。这几句确保运行的代码也的确也琢磨了不止一会呢。

作个简单说明吧:

  1. import os是导入os库的命令。其中,os就是“operating system”的缩写,顾名思义,os模块 提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。
  2. 通常,我们接着运行语句1即可开始调用FEKO进行电磁仿真计算。

这里,使用os.system("wyf")这是最简单的一种方法,其执行过程中会输出显示wyf命令执行的信息。

例如:print(os.system("mkdir dmz")) 输出:0

如果看到结果打印出0,表示命令执行成功;否则表示失败(再次执行该命令,输出:子目录或文件dmz已经存在。

一般来说,前面语句都不用管,就把cylinder_VV.pre这个改成你自己的FEKO工程文件即可。

np 后面的4是代表的调用的计算核心数,可以手动改成其他数目。偷懒的话,直接改成all。

  1. 如果你喜欢用变量呢,那么切记,要接着用语句3而不是语句2。

你如果坚持要语句2试试,保证一个死。

接下来,咱们看看效果如何。直接运行语句1的计算截图如下所示。

图13 FEKO计算进程占用CPU资源的显示(直接运行语句1)

左边会弹出dos的黑窗口,运行FEKO的计算信息,而任务管理器则显示FEKO的计算进程吃满了CPU资源。那么运行语句3会怎么样?请看下图,差不多,但是CPU占用的进程变成了windows命令处理程序。

图14 windows命令处理程序进程占用CPU资源的显示

前面2个计算都是在Spyder环境下运行的,如果你喜欢Juypter notebook,那么看到的情形就是下图罗。占坑的又是Python进程了,这么换来换去,还真是伦敦(轮着蹲CPU的坑)啊。

图15 Python进程下的FEKO子进程占用CPU资源的显示

多说两句讲解的内容(完全可以不看,哈哈):

如果代码是使用了start调用,那么运行完关闭dos窗口弹出的是runfeko的信息,这时进程与dos命令无关了。相应的,python程序中统计时间的函数也就不会计入FEKO程序的计算时间部分,仅仅只计入了这几行语句的内容。

如果直接在控制的语句中写d,因为d就在r""的语句内,就没有把d对应的字符串表达出来,而是以d字符串形式,所以,调用FEKO计算会失败。如下图所示。

计算文件夹下多个feko的pre文件.ipynb
3.2K
·
百度网盘
以变量形式调用pre计算FEKO文件.py
714
·
百度网盘

类似的,如果我们还想利用Python实现类似其他的应用,例如类似利用matlab一键生成FEKO近场仿真云图的自动化报告基于matlab建立海面模型导入Altair FEKO软件开展海面电磁仿真,显然都不是很难了。怎么样,这回又让FEKO拜倒在你Python的石榴裙下了吧!

我忘了说,自动化部分就是增加了循环语句,都在附件的代码里面。请点赞吧,关注吧,少年!还有代码和视频等着你呢!


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空