clc;
clear all;
NUM=xlsread('kaikou.csv');%%%%%%%将读取的频率及S参数放到NUM矩阵里
fre=(NUM(:,1))';%%%%提取频率作为横坐标
s11=(NUM(: ,2)+(j*(NUM(:,3))))';%%%li表示虚单位,提取出s11
s21=(NUM(: ,4)+(j*(NUM(:,5))))';%%%li表示虚单位,提取出s21
f=fre*(10^9);%%%%%%%将软件仿真的频率与实际频率统一
d=2.5e-3;%%%%%%%%板在厚度方向的周期函数
lengthF=length(f);%%%%%取得数据点的个数
f=f;%频率
d=d;%厚度
c_const=3e8;%光速
u0=4*pi*10^(-7);%真空磁导率
omega=2*pi.*f;%角频率
lambda0=c_const./f;%自由空间的波长0
k0=omega./c_const;%自由空间波数k0
eta0=1;%sqrt(u0/e0);%自由空间波阻eta0
% COMPUTE IMPEDANCE
num=(1+s11).^2-s21.^2;
den=(1-s11).^2-s21.^2;
eta=sqrt(num./den);
eta=eta.*sign(real(eta));
%%%%%%以上4步是为了计算等效阻抗
r=(eta-eta0)./(eta+eta0);
%%%%计算中间变量r
t=s21./(1-s11.*r);
%%%%%%计算中间变量t
n=imag(log(t))./(k0*d)-1i*real(log(t))./(k0*d);
deltaN=2.*pi./(k0.*d); %N实部随m的变化差值
maxNr=real(eta).*imag(n)./(sign(imag(eta)).*imag(eta)); %N实部允许的最大值
numM=fix(2.*abs(maxNr)./deltaN+1);%floor,cell,round,fix,m允许的最多根数
m=zeros(max(numM),lengthF);
for k=1:1:lengthF
for j=1:1:max(numM)
m(j,k)=nan; %m值矩阵默认值NAN设置
end
end
%m值获取,无解部分对应nan+鲁棒性修正,参考量robustness
robustness=zeros(1,lengthF);
for k=1:1:lengthF
if maxNr(k)>=0
if abs(real(n(k)))>maxNr(k) %计算偏移量OFFSET
offsetM=-fix((real(n(k))+sign(real(n(k)))*maxNr(k))/deltaN(k));
if abs(offsetM*deltaN(k)+real(n(k)))>abs((offsetM+sign(offsetM))*deltaN(k)+real(n(k))) %%%%%
%offsetM=nan;%偏移量无解的时候赋值NAN
robustness(k)=1;%%%%%%%%鲁棒性修正%%%%%%%%%
offsetM=offsetM+sign(offsetM);
% fprintf('n(%d) is error \n',k) %real(n)error
end
else
offsetM=0;
end
else
%%%%%%%%%鲁棒性进一步修正%%%%%%%%%
offsetM=-fix(real(n(k))/deltaN(k));
if abs(offsetM*deltaN(k)+real(n(k)))>abs((offsetM+sign(offsetM))*deltaN(k)+real(n(k)))
robustness(k)=2;
offsetM=offsetM+sign(offsetM);
end
%%%%%%%%%鲁棒性进一步修正%%%%%%%%%
%offsetM=nan;%本身无解的时候offset赋值NAN
end
%offset成为是否有解的判断依据
if 1~=isnan(offsetM)%对offset非NAN的进行进一步计算
j=1;
for offsetM2=-max(numM):1:max(numM) %最大偏移量设置
if j<=max(numM) %最大解数设置
if abs((offsetM2+offsetM)*deltaN(k)+real(n(k)))<=maxNr(k)
m(j,k)=offsetM2+offsetM;
j=j+1;
end
end
end
%%%%%%鲁棒性修正
if isnan(m(1,k))
m(1,k)=offsetM;
end
%%%%%%鲁棒性修正
end
end
%以上M值求解结果体现为从左到右有解首行必不为NAN,从上到下M值从小到大
%确定合理M值绘制图表
%%%%%modeM=mode(m);
%%%%%n=n+deltaN.*modeM;
modeM=zeros(1,max(numM)*lengthF);
for j=1:1:max(numM)
for k=1:1:lengthF
modeM((j-1)*lengthF+k)=m(j,k);
end
end
modeM=mode(modeM);
n=n+deltaN.*modeM;%%%%%%%多值性问题已经解决
ur=n.*eta;%%%%%计算等效磁导率
er=n./eta;%%%%%计算等效介电常数
%%%%%%%%%%%一下是结果显示
% figure(1)
% plot(f,real(eta),'r');hold on;plot(f,imag(eta),'b')
% figure(2)
% plot(f,real(n),'r');hold on;plot(f,imag(n),'b')
% figure(3)
% plot(f,real(er),'r');hold on;plot(f,imag(er),'b')
figure(4)
plot(f,real(ur),'r');hold on;plot(f,imag(ur),'b--')%b--蓝色虚线,g:o绿色的O组成的曲线
xlabel('Frequency');
ylabel('Effective Permeability');
%title('单元结构的等效磁导率与电磁场频率的关系');
legend('Real(μ)','Imag(μ)');
没有合适的资源?快使用搜索试试~ 我知道了~
Scatt_NRW超材料_
共1个文件
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 12 下载量 36 浏览量
2021-09-30
16:09:46
上传
评论 4
收藏 2KB ZIP 举报
温馨提示
电磁超材料等效参数提取,在HFSS或CST计算出超材料的S参数后,可利用该程序计算超材料的等效磁导率和介电常数
资源推荐
资源详情
资源评论
收起资源包目录
Scatt.zip (1个子文件)
Scatt.m 4KB
共 1 条
- 1
呼啸庄主
- 粉丝: 74
- 资源: 4702
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页