微波仿真论坛_matlab feko_图文_第1页
微波仿真论坛_matlab feko_图文_第2页
微波仿真论坛_matlab feko_图文_第3页
微波仿真论坛_matlab feko_图文_第4页
微波仿真论坛_matlab feko_图文_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab 与Feko软件混合目录概述模型的建立EditFeko中控制卡的编辑Matlab调用Feko 讨论Matlab对Feko结果文件的处理Matlab调用Feko的几个要点Matlab调用Feko的几个要点在Matlab以如下形式调用Fekodos(prefeko OnespiralAnt;dos (runfeko OnespiralAnt;其中的OnespiralAnt为Feko工程文件的名称,prefeko和runfeko是Feko关键字符串,分别表示Feko预处理和Feko求解器在Matlab定义一个变量,该变量对应于Feko的.pre文件中某一个变量(如:工作频率、几何模型的尺

2、寸变量、模型旋转角等,这样,就可以用Matlab控制Feko中的这个变量,每改变一次该变量的值就可以重新生成一个新的.pre文件,然后调用runFeko运行新生成的.pre文件;同样,可以应用Matlab像处理文本一样来处理Feko的结果文件.out,来对仿真结果进行处理。Matlab生成的.m文件需要和Feko的工程文件、.pre文件及输出文件存放在同一文件夹中。举例(单螺旋天线问题描述以单螺旋为例来说明如何用Matlab控制Feko可以在CadFeko中进行建模;也可以在EditFeko中进行建模;(有些问题用EditFeko处理会非常方便Matlab可以控制Feko脚本文件.pre中的某

3、个或某几个变量,在该例子中是控制螺旋天线的旋转角度#alphaMatlab控制Feko的结果文件(.out,(要想很好的处理结果文件,必须对其格式非常清楚读取内部的源阻抗数值目录概述模型的建立EditFeko中控制卡的编辑Matlab调用Feko 讨论Matlab对Feko结果文件的处理螺旋天线的建立(CadFeko 建立Feko工程文件“OneSpiralAnt”双击Variables添加以下变量:freq=3.0e+10n=6.5, lambda=c0/freqD=lambda/pi,s=0.225*lambda,seg_len=lambda/15seg_rad=lambda/200tri

4、_len=lambda/20.0a=0.75*lambda 点击图标添加螺旋曲线helix点击图标把helix模型分成两部分 选择小的一部分更名为:feed模型建立 点击图标创建地板ground 网格剖分 选中所有模型点击图标进行模型合并,并把新生成的模型更名为spiral 把馈源位置的线元更名为feed点击菜单“Meshcreate mesh”或按住键盘Ctrl+M进行网格剖分 目录概述模型的建立EditFeko中控制卡的编辑Matlab调用Feko 讨论Matlab对Feko结果文件的处理EditFeko处理按住Alt+2进行预处理,并保存工程文件按住Alt+1调出EditFeko 在IN

5、卡下边添加FM卡在FM卡下边添加“#alpha=0”然后添加TG卡* TG卡用来控制模型的平移与旋转,在该项目中,我们是把该基本模型沿y轴旋转#alpha角度,初始值是0度修正FR卡 添加A1卡添加FF卡所有的控制卡添加完毕后保存该文件 Spiral.feed目录概述模型的建立EditFeko中控制卡的编辑Matlab调用Feko 讨论Matlab对Feko结果文件的处理Matlab部分处理点击Matlab程序中的M-file editor或先进入Matlab主程序,在主程序中点击菜单“FileNewM file”进行.m文件的制作部分(可以命名为OneSpiralAnt.m第一步添加如下命令

6、clear all; %清除工作间的变量和函数第二步添加循环(该循环的目的是为了得到不同的旋转角alpha,循环变量用i表示,i的变化范围是从1到5,步长为1,alpha表示为10*ifor i=1:1:5第一部分:初始化变量部分;第二部分:文件的读写部分;第三部分:生成新的脚本文件;第四部分:Matlab中调用Feko;end % 结束for循环循环中的第一部分描述第一部分:变量的初始化special_str_1=prefeko ;special_str_2=runfeko ;project_name= OneSpiralAnt_;prestr=#alpha=; % Initialise a

7、 variable for special string注释:变量special_str_1、special_str_2和project_name是为了最终装配最终的字符串形式“runfeko OneSpiralAnt_1.pre”而设定的,因为在循环中,我们是以OneSpiralAnt_1.pre、OneSpiralAnt_2.preOneSpiralAnt_5.pre的形式来存储脚本文件的,而且每循环生成一个.pre脚本文件,我们会运行一次Feko软件,这样处理就相对比较灵活了prestr变量是一个关键字符,用于存储模型的旋转角度第二部分:文件的读写部分fid_r=fopen(OneSpi

8、ralAnt.pre,r; % Define a file reading point (定义读文件指针fid_w=fopen(OneSpiralAnt.tmp,w; %Define a file writting point (定义写文件指针while feof(fid_r % while not the end of the file (如果不是文件的结尾就继续循环 line_r=fgetl(fid_r; % get each line value (遍历每一行的值g=strfind(line_r,#alpha=; % whether this line need be modified(

9、是否是需要修改的那一行if g0 %如果是需要修改的那一行,则在ifend区间修改这一行的值newvalue=num2str(10*(i-1;line_r=strcat(prestr,newvalue; % modify this lines value, line_r=#alpha=10or 20end% 通过fprintf语句把line_r的值写入fid_w指向的文件OneSpiralAnt.tmp中fprintf(fid_w,%sn,line_r; % write each line to the file OneSpiralAnt.tmp end %end while (结束读写脚本文

10、件循环fclose(fid_r; % close file reading point (关闭读文件指针fclose(fid_w; % close file writting point (关闭写文件指针第三部分:生成新的脚本文件% get and save each .pre file in the form of OneSpiralAnt_1.pre,OneSpiralAnt_2.pre.% new_file_name分别为OneSpiralAnt_1.pre, OneSpiralAnt_2.pre, OneSpiralAnt_3.prenew_file_name=strcat(OneSp

11、iralAnt_,num2str(i;new_file_name=strcat(new_file_name,.pre;% 把文件OneSpiralAnt.tmp中的内容拷贝到new_file_name中,即生成上边提到的5个.pre文件中copyfile(OneSpiralAnt.tmp,new_file_name;第四部分:Matlab调用Feko% Assemble the “prefeko OneSpiralAnt_i.pre”stringsspecial_str_1=strcat(special_str_1,project_name;special_str_1=strcat(speci

12、al_str_1,num2str(i;special_str_1=strcat(special_str_1,.pre;% Assemble the “runfeko OneSpiralAnt_i.pre”stringsspecial_str_2=strcat(special_str_2,project_name;special_str_2=strcat(special_str_2,num2str(i;special_str_2=strcat(special_str_2,.pre;%invoke feko functions (通过dos函数调用prefeko、funfekodos(specia

13、l_str_1; % dos(prefeko OneSpiralAnt_1.predos(special_str_2; % dos(runfeko OneSpiralAnt_1.pre%;完整的Matlab代码结果文件分析 alpha=0alpha=10alpha=20alpha=30alpha=40EditFeko文件中alpha 角度的变化alpha=0alpha=40 alpha=10alpha=20alpha=30目录概述模型的建立EditFeko中控制卡的编辑Matlab调用Feko 讨论Matlab对Feko结果文件的处理模型建立和EditFeko控制卡的编辑省略(前边已有描述重点

14、放在matlab文件的编写点击Matlab程序中的M-file editor或先进入Matlab主程序,在主程序中点击菜单“FileNewM file”进行.m文件的制作部分(可以命名为OneSpiralAnt_1.m第一部分添加clear all语句;clear all;第二部分添加Feko的调用(前边已经详细描述了调用过程;dos(prefeko OneSpiralAnt.pre;dos(runfeko OneSpiralAnt.pre;在Matlab文件通过函数uigetfile 搜寻Feko输出结果文件(.out,并把文件名存储在filename变量中,文件的路径存放在pathname

15、变量中;filename,pathname=uigetfile(*.out,Click on the file for processing;定义文件读指针以便对结果文件进行读操作;fid=fopen(filename; %impedance=; % 定义一个阻抗数组,以便存储从结果文件中得到的阻抗值end_flag=0; % 定义一个文件结尾标记,为0表示没有到达文件结尾,为1表示到达文件结尾通过while循环来遍历整个文件,寻找我们关心的阻抗值;while end_flag = 0line=fgetl(fid; %读取文件的某行。if strfind(line,Finished: 0 %在line中查找“finished:”并返回其序号或列号。end_flag = 1; %表示如果结束了就设定结束标志end_flag为1。end %if% store all the impedances from the OUT file into an arrayg = strfind(line,Impedance in Ohm; %寻找阻抗值并将序号(行还是列呢?返回给变量g。if g 0impedance=str2num(line(20:29+i*s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论