24小时热门版块排行榜    

查看: 2470  |  回复: 1

hxlxmc

新虫 (初入文坛)

[求助] JA磁滞回线模型 已有1人参与

求助:
       粒子群优化算法怎样与JA磁滞回线模型结合起来啊?或者怎样把JA模型的公式编成一个MATLAB函数文件?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lxshisan

新虫 (初入文坛)

【答案】应助回帖

function [x,y]=lx17()
u0=4*pi*(1e-7);
alpha=7.092e-4;
x12=linspace(0,2e4,100);
% x12=linspace(3000,4000,100);
x13=linspace(2e4,-2e4,200);
x14=linspace(-2e4,2e4,100);
M0=[0.0001,0];
% 样本1
[x,y11]=ode45(@ode_fun11,x12,M0);
[x,y12]=ode45(@ode_fun12,x13,[y11(100,1),y11(100,2)]);
[x,y13]=ode45(@ode_fun11,x14,[y12(200,1),y12(200,2)]);

figure;
plot(x13',y12(:,2),x14',y13(:,2));
xlabel('H');
ylabel('M');
title('样本1');
figure;
plot(x13',u0*(x13'+y12(:,2)),x14',u0*(x14'+y13(:,2)));
xlabel('H');
ylabel('B');
title('样本1');

% 样本2
[x,y21]=ode45(@ode_fun21,x12,M0);
[x,y22]=ode45(@ode_fun22,x13,[y21(100,1),y21(100,2)]);
[x,y23]=ode45(@ode_fun21,x14,[y22(200,1),y22(200,2)]);

figure;
plot(x13',y22(:,2),x14',y23(:,2));
xlabel('H');
ylabel('M');
title('样本2');
figure;
plot(x13',u0*(x13'+y22(:,2)),x14',u0*(x14'+y23(:,2)));
xlabel('H');
ylabel('B');
title('样本2');

% 样本3;
[x,y31]=ode45(@ode_fun31,x12,M0);
[x,y32]=ode45(@ode_fun32,x13,[y31(100,1),y31(100,2)]);
[x,y33]=ode45(@ode_fun31,x14,[y32(200,1),y32(200,2)]);

figure;
plot(x13',y32(:,2),x14',y33(:,2));
xlabel('H');
ylabel('M');
title('样本3');
figure;
plot(x13',u0*(x13'+y32(:,2)),x14',u0*(x14'+y33(:,2)));
xlabel('H');
ylabel('B');
title('样本3');
figure
plot(x13',u0*(x13'+y12(:,2)),'g',x14',u0*(x14'+y13(:,2)),'g',x13',u0*(x13'+y22(:,2)),'r',x14',u0*(x14'+y23(:,2)),'r',x13',u0*(x13'+y32(:,2)),'b',x14',u0*(x14'+y33(:,2)),'b');
grid on
% [x,Man]=ode45(@ode_fun,x12,0.0001);
%
% figure;
% plot(x,Man(:,1))
end
%样本1磁场增大求解方程
function dy=ode_fun11(x,y)
ms=1.5743e6;
a=499;
alpha=7.092e-4;
k=1154.6;
c=0.0198;
deta=1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
%样本1磁场减小求解方程
function dy=ode_fun12(x,y)
ms=1.5743e6;
a=499;
alpha=7.092e-4;
k=1154.6;
c=0.0198;
deta=-1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
%样本2求磁场增大解方程
function dy=ode_fun21(x,y)
ms=1.5755e6;
a=1408.1;
alpha=2.4e-3;
k=2356.5;
c=0.0382;
deta=1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
%样本2求磁场减小求解方程
function dy=ode_fun22(x,y)
ms=1.5755e6;
a=1408.1;
alpha=2.4e-3;
k=2356.5;
c=0.0382;
deta=-1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
%样本3求增大解方程
function dy=ode_fun31(x,y)
ms=1.5827e6;
a=1017.9;
alpha=1.2e-3;
k=2735.8;
c=0.1051;
deta=1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
%样本3求减小解方程
function dy=ode_fun32(x,y)
ms=1.5827e6;
a=1017.9;
alpha=1.2e-3;
k=2735.8;
c=0.1051;
deta=-1;
km=k*(1-0.96*(y(2)/ms)^2);
dy(1,1)=ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2)/(1-alpha*ms*(-(csch((x+alpha*y(1))/a))^2/a+a/(x+alpha*y(1))^2));
dy(2,1)=(-1/km/deta*(y(1)-y(2))-c/(1-c)*dy(1,1))/(alpha/km/deta*(y(1)-y(2))-1/(1-c));
end
2楼2016-09-12 23:53:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hxlxmc 的主题更新
信息提示
请填处理意见