找回密码
 注册
Simdroid-非首页
查看: 67|回复: 2

画分岔图,出现Vectors must be the same lengths.

[复制链接]
发表于 2011-3-17 11:25:30 | 显示全部楼层 |阅读模式 来自 陕西西安
function tanqingweiqi
hold on;box on;%生成空的坐标轴
N=100;%设置迭代次数
Tn=[];%初始化
kg2a=5.83;
options=odeset('RelTol',1e-9);%设置微分方程求解选项
for kg1a=5:0.01:8;%计算不同的kg1a值
    x0=[0,0,500];%设置初值
    tspan=[0:0.001:3]
   y=ode4(@ODE317_2,tspan,x0,options,kg1a,kg2a)
    x0=y(end,:);
    for n=1:N;
        y=ode4(@ODE317_2,[0:0.001:0.005],x0,options,kg1a,kg2a);%求解微分方程
        x0=y(end,:);%更新初值
        xd=y(:,3);%提取求解结果
        [M,IK]=max(xd);%计算最大值
        if 1<IK & IK<length(xd);%判断是否为最大值内部点
            Tn=[Tn;M];%记录最大值
        end
    end
    plot(kg1a,Tn,'k.','markersize',1);%绘图
    Tn=[];%清空
   % pause(0.01);
end
end

function dy=ODE317_2(t,y,flag,kg1a,kg2a)
dy=zeros(3,1);
r=0.5;pb=1175;Fco=1400;Fco2=400;F=20000;
r1x=(kg1a*16.84*(1-y(1))*533529*exp(-76857/8.314/y(3))*(16.84*(1-y(1)))^0.674)/(kg1a*16.84*(1-y(1))+533529*exp(-76857/8.314/y(3))*(16.84*(1-y(1)))^0.674);
r2x=(kg2a*4.81*(1-y(2))*296452638*exp(-105858/8.314/y(3))*(4.81*(1-y(2)))^0.008)/(kg2a*4.81*(1-y(2))+296452638*exp(-105858/8.314/y(3))*(4.81*(1-y(2)))^0.008);
dy(1)=(pi*r*r*pb/Fco)*r1x;
dy(2)=(pi*r*r*pb/Fco2)*r2x;
dy(3)=(pi*r*r*pb/F)*(r1x*1000*(188.1276+0.0724*y(3)-4.2782*10^(-5)*y(3).^2+7.9724*10^(-9)*y(3).^3)+r2x*1000*(146.4633+0.06996*y(3)-2.7313*10^(-5)*y(3).^2+1.8928*10^(-9)*y(3).^3))/(1-0.14*y(1)-0.04*y(2))/(26.2932+0.01354*y(3)+6.1860*10^(-6)*y(3).^2-4.1355*10^(-9)*y(3).^3);
发表于 2011-3-17 15:22:02 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
1# lxx244lxx

  1. function tanqingweiqi
  2. hold on;box on;%生成空的坐标轴
  3. N=100;%设置迭代次数
  4. Tn=[];%初始化
  5. kg2a=5.83;
  6. options=odeset('RelTol',1e-9);%设置微分方程求解选项
  7. for kg1a=5:0.01:8;%计算不同的kg1a值
  8.     x0=[0,0,500];%设置初值
  9.     tspan=0:0.001:3;
  10.     [t,y]=ode45(@ODE317_2,tspan,x0,options,kg1a,kg2a);
  11.     x0=y(end,:);
  12.     for n=1:N;
  13.         [t,y]=ode45(@ODE317_2,0:0.001:0.005,x0,options,kg1a,kg2a);%求解微分方程
  14.         x0=y(end,:);%更新初值
  15.         xd=y(:,3);%提取求解结果
  16.         [M,IK]=max(xd);%计算最大值
  17.         if 1<=IK & IK<=length(xd);%判断是否为最大值内部点
  18.             Tn=[Tn;M];%记录最大值
  19.         end
  20.     end
  21.     plot(kg1a,Tn,'k.','markersize',1);%绘图
  22.     Tn=[];%清空
  23.     % pause(0.01);
  24. end

  25. function dy=ODE317_2(t,y,kg1a,kg2a)
  26. dy=zeros(3,1);
  27. r=0.5;pb=1175;Fco=1400;Fco2=400;F=20000;
  28. r1x=(kg1a*16.84*(1-y(1))*533529*exp(-76857/8.314/y(3))*(16.84*(1-y(1)))^0.674)/(kg1a*16.84*(1-y(1))+533529*exp(-76857/8.314/y(3))*(16.84*(1-y(1)))^0.674);
  29. r2x=(kg2a*4.81*(1-y(2))*296452638*exp(-105858/8.314/y(3))*(4.81*(1-y(2)))^0.008)/(kg2a*4.81*(1-y(2))+296452638*exp(-105858/8.314/y(3))*(4.81*(1-y(2)))^0.008);
  30. dy(1)=(pi*r*r*pb/Fco)*r1x;
  31. dy(2)=(pi*r*r*pb/Fco2)*r2x;
  32. dy(3)=(pi*r*r*pb/F)*(r1x*1000*(188.1276+0.0724*y(3)-4.2782*10^(-5)*y(3).^2+7.9724*10^(-9)*y(3).^3)+r2x*1000*(146.4633+0.06996*y(3)-2.7313*10^(-5)*y(3).^2+1.8928*10^(-9)*y(3).^3))/(1-0.14*y(1)-0.04*y(2))/(26.2932+0.01354*y(3)+6.1860*10^(-6)*y(3).^2-4.1355*10^(-9)*y(3).^3);
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-3-17 19:52:40 | 显示全部楼层 来自 陕西西安
2# qibbxxt
谢谢版主,想问下你的修改在什么地方,我看了半天没看出来。。还有就是这幅图应该怎么分析呢。。。因为刚开始学,有很多地方不懂。。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 23:29 , Processed in 0.044374 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表