利用matlab 一键生成FEKO近场仿真云图的自动化报告
基于FEKO软件可以方便计算各种电磁仿真结果,其中当然少不了常见的电磁场云图 分布。下面的云图你一定不陌生,你也期望用类似的花里胡哨的云图结果去取悦你的boss或甲方爸爸吧。
想象一下,你的boss或甲方爸爸看了你的云图示例后龙颜大悦,大笔一挥仿真经费xxx万(真的么)!!!而你还没有来得及高兴,很快就发现,经费对应的工作量几乎是海量(例如成百上千幅云图)的,尤其是画图、截图到报告里这种无聊的费时操作。毫无疑问,你这个周末又泡汤了。
幸好有我和你一样既不想加班,还想蹭公司的空调偷懒摸鱼,我们可以懒则思变,学着利用matlab来解决这个问题。
解决思路如下:
将FEKO软件计算的近场仿真结果设定为EFE文件,再利用matlab读取并一一画图,自动贴图到word文档之中。
具体怎么办呢,请看详细的干货:
1, 在FEKO软件中可以一次将软件的近场求解设置完毕,例如近下图所示的NearField1 ,NearField2 ,NearField3 …….(By the way, 如果你也是这么连近场设置的默认命名都懒得修改,那你阅读本文真是值了!)
2, 在近场设置里面,千万记得在高级(advanced)这一栏的输出设置中,勾选输出场为ASCII文件,*.efe和*.hfe。这个很重要,是偷懒很关键的一步。想一下,如果你设置这个,那就得从out文件中海量的数据中去大海捞针,实在是令人崩溃。如果想再省力的话,可以先在NearField1里面设置好,再复制NearField1,改名为NearField2,依次类推。
3, 于是,你就可以在FEKO工程文件所在路径下(切记,是你的工程文件路径,不是FEKO软件的安装路径)看到生成的*.efe和*.hfe。我们接下来以*.efe为例,将它们复制到matlab的工作路径下。
如果你有兴趣用记事本之类的软件打开efe文件,就可以看到,我们真正想要的有用数据是在某一行之后,例如第18行才有实际数据。如下图所示。
4, 所以,我是根据这个数据格式编写相应的读写程序,My_AutoWord_yuntuPlot.m是主函数,myyuntu.m是个函数文件(所谓函数文件,意思就是看都不用看,也能运行主程序)。请自觉忽略我文件命名的土气,否则你没法接下去享受它给你带来的快感。
5, 接着,就是见证奇迹的时刻到了。请运行My_AutoWord_yuntuPlot.m文件,程序就开始自动将一幅幅云图画图弹出来显示供你检阅,同时自动将其一一复制粘贴到word之中。剩下的,你只需稍加修改(格式、字体,结论等),报告即可大功告成。
效果演示如下,具体的操作视频稍后会上传。
作为示意,我仅仅列了三个近场仿真数据,你试着多放数据吧。学着韩信说的,“多多益善”。
最后,对于这个程序做几点说明,供有兴趣的朋友参考。
1、 程序的读取分为2部分,开始是将*.efe文件批量改为*.txt文件,便于matlab进一步处理;然后,以txt形式将所有电场数据以矩阵形式读取进去,9列,后面分别为各个坐标下的实部虚部。这些细节,你都可以在基于记事本打开的*.efe文件中容易看出来。看不出来也无所谓,反正我的程序都给你读出来了。
2、 程序基于电场数据画二维云图,云图的二维上下限是基于你在NearField1设置里面确定,目前默认的是xoy平面的云图,你可以类似的写出xoz平面等。
3、 主程序中调用了一个画云图的M函数文件,设置与具体的云图需求是对应的;如果你对云图的要求有所不同,记得那个M文件也要同步一下的。
4、 接着,是程序调用word软件,建立文档,并将生成的云图一一复制粘贴到word中,并附上图题。够贴心吧!
相信,你基于这个程序,处理老板或甲方爸爸要求的海量云图报告不需要加班了,或者说边喝着咖啡,程序就替你把活都干差不多了。
原创不易,喜欢的朋友,别忘了点赞和关注,收藏和评论哈!
对代码感兴趣的朋友,可以私信等联系我哈!