- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
利用matlab实现Feko编程和控制
1. 用CadFeko或EditFeko生成*.pre文件;
2. 用matlab修改其中变量,如频率Frequency,但要注意*.pre文件是有格式要求的;
3. 保存修改后的*.pre文件;
4.在matlab下用 dos('runFeko *.pre')运行即可,用dos('postFeko *')即可显示后处理,*表示您预存的文件名,
5.用此方法理论上可以实现任意时域波形计算,方法为先用FFT将时域变化到频域,利用上述方法在频域完成计算,计算每一个频点结果,然后再IFFT。
小编真是厉害呀!
用时域方法计算就行
不用这么麻烦
另外,FEKO的矩量法称不上大姐大。
还有那个软件的mlfmm比feko做的好,求教, cst?
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>0
newvalue=num2str(10*(i-1));
line_r=strcat(prestr,newvalue);
end
fprintf(fid_w,'%s\n',line_r);
end %end while
fclose(fid_r);
fclose(fid_w);
用copyfile('文件名.tmp',新文件名)存储新的文件名,用dos('prefeko 新文件名')
dos (‘runfeko 新文件名')两个命令在matlab下运行feko(其实feko在后台运行),便可以得出计算结果。
3、同理,提取.out文件的结果也可以在matlab中实现,需要用到的函数是uigetfile,该函数可以遍历.out文件,提取我们所需要的数值。用strfind找到目标具体数值进行提取。具体操作和前面的读写操作几乎一样,这里就不再啰嗦了。
总结:
Quote:
用matlab来控制feko的求解还是很方便的,代码也不多,步骤有三:
1、建立模型;
2、编辑控制卡,设好变量;
3、用matlab控制变量的循环。值得注意的是,每循环一次就得求解一次,并提取所需要的结果,否则文件就会被覆盖掉。解决的办法是可以利用循环取不同的文件名,如name_1,name_2等。
5楼的果然是高手呀!
强大
在网上找了好久终于明白了,那么我同样想问,能否用遗传算法求解?
厉害,学习了!
CST微波工作室培训课程套装,专家讲解,视频教学,帮助您快速学习掌握CST设计应用
上一篇:谁能说一下FEKO中几种算法的区别啊
下一篇:关于FEKO激励源