📄 msim.m
字号:
clear all;
delttime=.125e-3; %get time switch period
delttime1=5e-8; %get time sampling period
num1=(delttime/delttime1);
x1=0;%初始值
x0=x1;
n=160;
k=300; %内循环次数
T=10; %起始温度
T1=0.01; %中止温度
a=0.9; %退火过程系数
N=1;
PD=x1;
n1=n/2+fix(x1/1.5e-7);
sim('msimmodel');
data=load('EMI.mat');
dis1=data.ans;
dis=dis1(2,1:num1);
vare1=dis*dis';
while T>T1
for t=1:k
% vare1=energy(n1);
% for i=1:n;
% if abs(tbase(i)-x1)<1.5e-7
% vare1=energy(i);
% end
% end
x2=x1+1.5e-7*fix(10*(rand(1)-0.5));%step change range is 0~10 deta(t)
n2=n/2+fix(x2/1.5e-7);
if n2>=160
n2=160;
elseif n2<=1
n2=1;
end
% if x2>=1.2e-5
% x2=1.2e-5
% else if x2<=-1.185e-5
% x2=-1.185e-5
% end
% end
% vare2=energy(n2);
PD=x2;
sim('msimmodel');%
data=load('EMI.mat');
dis1=data.ans;
dis=dis1(2,1:num1);
vare2=dis*dis';
% for i=1:n;
% if abs(tbase(i)-x2)<1.5e-7
% vare2=energy(i);
% end
% end
if(vare2-vare1)<0
n1=n2;
x1=(n1-n/2)*1.5e-7;
vare1=vare2;
elseif exp((vare1-vare2)/T)>0.5
n1=n2;
x1=(n1-n/2)*1.5e-7;
vare1=vare2;
end
% for i=1:n;
% if abs(tbase(i)-x1)<1.5e-7
% ret(t,N)=energy(i);
% end
% end
ret(t,N)=vare1;
end %end of for t=1:k
se(N,:)=x1; %每次退火计算所接受的最后状态
N=N+1; %退火次数
T=a*T; %退火过程
end %end of 'while'
num=1:N-1;
f=ret(k,num);
yax=max(f);
%--------------------------------------------------------------------------
han2=figure(2);
plot(num,f);
% title('Start temperature T=10 End temperature T1=0.01','FontWeight','bold');
% xlabel('annealing number','FontWeight','bold');
% ylabel('EMI noise energy(J)','FontWeight','bold');
title('初始温度 T=10 终止温度 T1=0.01','FontWeight','bold','FontSize',9.0);
xlabel('退火次数','FontWeight','bold','FontSize',9.0);
ylabel('噪声能量(J)','FontWeight','bold','FontSize',9.0);
ylable=[0 yax+0.2];
grid on;
minenergy=vare1;
% tdelay=x0-x1;
tdelay=x1;
% text(16,yax,['minumin energy of EmI is ',num2str(minenergy)],'FontWeight','Bold');
% text(16,yax-0.2,['delay time of pulse TD=',num2str(tdelay)],'FontWeight','Bold');
text(30,yax,['EMI噪声最小能量为',num2str(minenergy),'(J)'],'FontWeight','Bold','FontSize',9.0);
text(30,yax-0.2,['补偿电路滞后时间为',num2str(tdelay),'(s)'],'FontWeight','Bold','FontSize',9.0);
commdistb='temp-9-chipause';
saveas(han2,commdistb,'bmp');
%--------------------------------------------------------------------------
han1=figure(1);
plot(num,f);
title('Start temperature T=10 End temperature T1=0.01','FontWeight','bold');
xlabel('annealing number','FontWeight','bold');
ylabel('EMI noise energy(J)','FontWeight','bold');
% title('初始温度 T=10 终止温度 T1=0.01','FontWeight','bold','FontSize',9.0);
% xlabel('退火次数','FontWeight','bold','FontSize',9.0);
% ylabel('噪声能量(J)','FontWeight','bold','FontSize',9.0);
ylable=[0 yax+0.2];
grid on;
% minenergy=vare1;
% tdelay=x0-x1;
% tdelay=x1;
text(30,yax,['minumin energy of EmI is ',num2str(minenergy)],'FontWeight','Bold');
text(30,yax-0.2,['delay time of pulse TD=',num2str(tdelay)],'FontWeight','Bold');
% text(5,yax,['EMI噪声最小能量为',num2str(minenergy),'(J)'],'FontWeight','Bold','FontSize',9.0);
% text(5,yax-0.2,['补偿电路滞后时间为',num2str(tdelay),'(s)'],'FontWeight','Bold','FontSize',9.0);
commdistb='temp-9-enpause';
saveas(han1,commdistb,'bmp');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -