Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2012-07-12, 10:57   #1
zdx2001
初级会员
 
注册日期: 2012-07-12
年龄: 40
帖子: 1
声望力: 0
zdx2001 正向着好的方向发展
默认 ode45求解Jiles-Atherton模型出现问题,求助!!

程序是参考另一个磁滞模型修改的,但应用JA模型始终图形不对,检查了几遍也不清楚问题出在哪,请各位高手,大侠帮忙一看,小弟谢过!!

代码如下:

function hysteresis
tspan=0:0.0015:10;
y0=0;
[t,y]=ode45(@odefun,tspan,y0);
A=500;
H=A*sin(2.3*t);
y;
H;
figure
plot(H,y)
xlabel('H')
ylabel('M')
title('Hysteresis curves')
size(y)
size(H)
function dydt=odefun(t,y)
alpha=8e-5;
c=0.55;
Ms=1.47e6;
k=60;
a=40;
A=500;
H=A*sin(2.3*t);
He=H+alpha*y;
if (He/a)<0.01
Man=Ms*((He/a)/3-((He/a)^3)/45+2*((He/a)^5)/945);
DMan=(1/a)*Ms*(1/3-((He/a)^2)/15+2*((He/a)^4)/189);

else
Man=Ms*(coth(He/a)-a/He);
DMan=Ms*((-1/a)*((csch(He/a))^2)+a/He^(-2));
end

Delt=sign(2.3*A*cos(2.3*t));
%DeltM=(1+Delt*sign(Man-y))/2;
dydt=2.3*A*cos(2.3*t)*((Man-y)+Delt*c*k*DMan)/(Delt*k-alpha*((Man-y)+Delt*c*k*DMan));
%dydt=2.3*A*sin(2.3*t)*(DeltM*(Man-y)+Delt*c*k*DMan)/(Delt*k-alpha*(DeltM*(Man-y)+Delt*c*k*DMan));
zdx2001 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:05


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.