当前位置: 首页 > news >正文

如何用matlab灵活控制feko的求解

https://bbs.rfeda.cn/read.php?tid=3778

Feko中的模型和求解设置等都可以通过editfeko进行设置,其文件存储为.pre文件,该文件可以用文本打开,因此,我们可以通过VB、VC、matlab等工具对.pre文件进行读写操作,以达到更灵活的使用feko。同样,对于.out文件,我们也可以进行读操作。

熟练使用对.pre文件和.out文件的操作后,我们可以方便的计算模型在各种情况下的结果,如螺旋天线每增加一圈,天线方向图的变化;飞行器角度的变化对rcs的影响,这些都可以用matlab来处理,而不用每次修改模型来实现。

首先我们先了解matlab如何调用feko文件的,有以下两个函数需要了解:

dos('prefeko 文件名')  
dos (‘runfeko 文件名')  

存储的.m文件与feko文件放在同一目录下,不然就得加上路径。

下面举例说明如何控制求解,以天线罩为例:
对于feko,只能求出天线罩对天线方向图的影响,如果要看天线罩每旋转一个角度对天线方向图的变化需要不断修改模型,工作量极大。我们就用matlab控制天线罩旋转角度,使它进行循环,不用人工干预求解。

1、首先建立好模型,设置好求解,天线罩的旋转角度用变量代替,我们就对该变量进行循环。操作如下:在IN卡下边添加FM卡,在FM卡下边添加#jiaodu变量,添加TG卡,TG卡用来控制模型的平移与旋转,在该项目中,我们是把该基本模型沿y轴旋转,初始#jiaodu是0度。

2、做好以上工作后,保存好工程文件,然后打开matlab,建立m 文件,我们需要角度为0-50度,可以设为 :

for i=1:1:5,#jiaodu为10*i

下面对文件进行读写 :

fid_r=fopen(‘文件名r’);
fid_w=fopen(‘文件名.tmp’,‘w’);
while ~feof(fid_r)line_r=fgetl(fid_r);g=strfind(line_r, #jiaodu= )  %找到该角度变量进行修改if g>0newvalue=num2str(10*(i-1));line_r=strcat(prestr,newvalue);endfprintf(fid_w,'%s\n',line_r);
end %end while
fclose(fid_r);
fclose(fid_w);

copyfile('文件名.tmp',新文件名)存储新的文件名
用下面两个命令在matlab下运行feko(其实feko在后台运行),便可以得出计算结果。

dos('prefeko 新文件名')  
dos (‘runfeko 新文件名')

3、同理,提取.out文件的结果也可以在matlab中实现,需要用到的函数是uigetfile,该函数可以遍历.out文件,提取我们所需要的数值。用strfind找到目标具体数值进行提取。具体操作和前面的读写操作几乎一样,这里就不再啰嗦了。

总结:

用matlab来控制feko的求解还是很方便的,代码也不多,步骤有三:

  1. 建立模型;
  2. 编辑控制卡,设好变量;
  3. 用matlab控制变量的循环。值得注意的是,每循环一次就得求解一次,并提取所需要的结果,否则文件就会被覆盖掉。解决的办法是可以利用循环取不同的文件名,如name_1,name_2等。

http://www.mrgr.cn/news/24168.html

相关文章:

  • Open-Vocabulary SAM: 分割并交互式识别两万类别。
  • 地址解析协议(ARP)
  • Python画笔案例-043 绘制“篱笆“
  • RabbitMQ 的事务消息了解吗【RabbitMQ 事务消息实战】
  • 【JS】函数形参数量规则
  • 中电金信:源启混沌工程平台(V4)与东方通TongwebV7.0完成适配认证
  • 空气开关跳闸的原因及解决办法
  • 存储虚拟化
  • 面试官:聊聊MySQL的binlog
  • POW和POS区别
  • CSS层叠样式表(Cascading Style Sheets)
  • 面向对象需求分析
  • SSH公钥的身份验证(免密登录)
  • 识别变压器引线
  • Python中的class和__init__方法
  • 变压吸附制氮机的结构特点
  • 缓冲器(跟随器)电路设计
  • 深度学习速通系列:混淆矩阵是什么
  • [Python学习日记-14] Python中基础语法的补充(变量增删改的过程、垃圾回收机制、变量指向关系、身份运算和None)
  • 二、Android Studio集成ffmpeg so