• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > CST > CST使用问答 > 如何通过CST仿真出来的S参数获得SRR结构的等效电磁参数

如何通过CST仿真出来的S参数获得SRR结构的等效电磁参数

录入:edatop.com     点击:
    求助一下,用CST计算得出一个SRR结构的S参数,但是怎样继续求出结构的等效磁导率和等效介电常数呢?

网友回复:

嗯 对结构进行参数提取的方法有很多种。 
最简单的方法就是NRW法,很容易查找到,需要利用matlab来编写,程序不长大概100行左右

楼主留言:

请问你手上有没有已经编好的反演算法程序,能不能发给我一份,最近在做一个设计,谢谢!

网友回复:

通过反演计算,需要matlab编程。

网友回复:

同求,现在有没有结果?

网友回复:

17  
这是NRW法推导的公式,很简单的过程。本着学习提高的原则,建议楼主还是自己用matlab写写看先 
直接给你.m文件不好

网友回复:

路还很长啊

网友回复:

大家都努力努力

网友回复:

我4年前按照D.R.Smith在2000年的一篇论文写过一个.论文题目有点忘了,按照里面公式来就可以了先把CST仿真的S参数用matlab读进去,好象是要用到折射率的

网友回复:

千儿: 
[attachment=60699] 
这是NRW法推导的公式,很简单的过程。本着学习提高的原则,建议楼主还是自己用matlab写写看先 
直接给你.m文件不好  
谢谢大神分享,我刚开始的时候用别人的算法算的,可是中间有一段程序跟文章里的公式对不上,贴出代码,求个指导(红色行) 
=================================================================================== 
%function CSTRst_X(RstFileName,DataFileName,IniFileName,Cstfilename) 
%Cstfilename = 'S_X.s2p'; 
%RstFileName = 'S_X.txt'; 
%DataFileName = 'Rst_x.txt'; 
%IniFileName = 'iniPara.vol'; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
DPreproc(Cstfilename,RstFileName);  %CST分析结果预处理操作 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
S = load(RstFileName); 
s11 = S(:,1:3); 
index_S = [1 4 5]; 
s21 = S(:,index_S); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
[d,area,per]=DataGet(IniFileName);    %获取沿电磁波入射方向材料单胞厚度参数d 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
fre=s11(: ,1)*1e9; 
C=3e8; 
lamda=C./fre; 
k=2*pi./lamda; 
n=zeros(size(fre)); 
S11=s11(: ,2).*exp(1i*(s11(:,3)*pi/180)); 
S21=s21(: ,2).*exp(1i*(s21(:,3)*pi/180)); 
Z=zeros(size(fre)); 
Z1=sqrt(((1+S11).^2-S21.^2)./((1-S11).^2-S21.^2));     %阻抗 
Z2=-sqrt(((1+S11).^2-S21.^2)./((1-S11).^2-S21.^2)); 
z_mini=0.000000001;                            %阻抗的敏感度 
for count=1:size(fre) 
    if           abs(real(Z1(count)))>=z_mini 
            if real(Z1(count))>0 
                Z(count)=Z1(count); 
            else Z(count)=Z2(count); 
            end 
    else    if abs(S21./(1-S11.*(Z1-1)./(Z1+1)))<=1 
                Z(count)=Z1(count); 
            else Z(count)=Z2(count); 
            end 
    end 
end 
e_inkd=S21./(1-S11.*(Z-1)./(Z+1)); 
for fre_sample=1:size(fre) 
    if fre_sample==1 
        m=0; 
        n_f0=1/(k(fre_sample)*d)*((imag(log(e_inkd(fre_sample)))+2*pi*m)-1i*real(log(e_inkd(fre_sample)))); 
        n(fre_sample)=n_f0;  
    else 
        clear n_f0 
        n_f0=n(fre_sample-1); 
%       n(fre_sample+1)=GetNextn_f0(n_f0,fre_sample,e_inkd,k,d,S11,S21,Z1,Z2) 
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
        delta_1=-1+sqrt(1-2*(1-e_inkd(fre_sample)/e_inkd(fre_sample-1)));  %eq7,二项式求根,得到正负delta 
        delta_2=-1-sqrt(1-2*(1-e_inkd(fre_sample)/e_inkd(fre_sample-1))); 
        n_f1_near_1=(delta_1+1i*n_f0*k(fre_sample-1)*d)/(1i*k(fre_sample)*d); 
        n_f1_near_2=(delta_2+1i*n_f0*k(fre_sample-1)*d)/(1i*k(fre_sample)*d);     %eq7求出n_f1近似值的两个根 
        n_f1_imag=imag(1/(k(fre_sample)*d)*((imag(log(e_inkd(fre_sample)))+2*pi)-1i*real(log(e_inkd(fre_sample)))));  
        duibi_1=abs(abs(imag(n_f1_near_1))-abs(n_f1_imag));  %与eq4求出的n_f1真值的虚部作对比确定近似值的一个根 
        duibi_2=abs(abs(imag(n_f1_near_2))-abs(n_f1_imag)); 
        if duibi_1<duibi_2 
            n_f1_near=n_f1_near_1; 
        else n_f1_near=n_f1_near_2; 
        end 
        m=-100:100;    %由eq7求出的n_f1近似值确定真值的m,以及求出采样频率f1的n 
        n_f1_mui=1/(k(fre_sample)*d)*((imag(log(e_inkd(fre_sample)))+2*pi*m)-1i*real(log(e_inkd(fre_sample)))); 
        duibi_3=abs(abs(real(n_f1_near))-abs(abs(real(n_f1_mui)))); 
        min_duibi_3=min(duibi_3); 
        xxxx=size(m); 
        for count_duibi_3=1:xxxx(1,2) 
            if min_duibi_3 == duibi_3(count_duibi_3) 
                find_dim=count_duibi_3; 
            end 
        end 
        n_f1=n_f1_mui(find_dim); 
        n(fre_sample)=n_f1;            
    end 
end 
n_real=real(n); 
n_imag=imag(n); 
ep_real=real(n./Z); 
ep_imag=imag(n./Z); 
mu_real=real(n.*Z); 
mu_imag=imag(n.*Z); 
%FinalM2=[s11(:,1),-n_real,n_imag,real(Z),-imag(Z),-ep_real,ep_imag,-mu_real,mu_imag]; 
n1=-n_real+1i.*n_imag; 
Gamma=1i.*2*pi*n1.*fre./C; 
alphaa=d.*real(Gamma); 
Betaa=d.*imag(Gamma); 
rst = [s11(:,1)'; -n_real'; -mu_real';-ep_real']; 
fid = fopen(DataFileName,'wt','n','US-ASCII'); 
fprintf(fid,'%6.8f  %12.8f  %12.8f %12.8fn',rst); 
fclose(fid); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

网友回复:

谢谢了楼主了

申明网友回复良莠不齐,仅供参考。如需专业解答,请学习易迪拓培训专家讲授的CST视频培训教程

上一篇:CST MWS的optimizer时间过长
下一篇:CST MWS中Transient Solve求解器结果如何看频域波形

CST培训课程推荐详情>>

  网站地图