dragonzww 发表于 2007-11-18 19:53

求助:分岔图matlab程序赐教指正!

function dc2dc2sim;

fff=inline([');',...
'exp(-2083.3333*0.0001*(1-mod(tn,0.0001)/0.0001)*[(2083.3333*0.001*()+10-vn*exp(-2*2083.3333*tn))/(9363.4188*0.001)*sin(9363.4188*0.0001*(1-mod(tn,0.0001)/0.0001))+(iref-10/20)*cos(9363.4188*0.0001*(1-mod(tn,0.0001)/0.0001))]+10/20]'],...
'vn','in','tn','iref');                           %%% fff=inline(['vn+1的表达式','in+1的表达式'],'vn','in','tn','iref')

kk=0.5:0.1:5.5;
nn=0:0.0001/10:0.0001;    %%%%%T=100us

xc=[];kc=[];

for iref=kk;   %%%i以ref 从0.5到5.5变化为参考作vn的分岔图;
   vn=0;
   in=0;
for tn=nn;
   for p=1:500;
       in=fff(vn,in,tn,iref);
   end
   for p=1:50;
       in=fff(vn,in,tn,iref);
       xc=;
       kc=;
   end
end
end
plot(kc,xc,'k.','markersize',2);            %%%%打印以Iref为变化参数的电流分岔图。



请版主、 superliu各位研友赐教问题所在,分岔图做不出来啊!谢谢!

octopussheng 发表于 2007-11-18 20:39

for p=1:500;
       in=fff(vn,in,tn,iref);
   end
这个循环的意思难道是去除前面的500次迭代数据?

dragonzww 发表于 2007-11-18 21:04

是啊,我是参考一些程序写的,请octopussheng版主看看有什么问题?

function boost1;
fff=inline('0.8872*x+1.2*16^2*(0.2874-k*(x-25))^2/(x-16)','x','k');
x0=25;
kk=0.07:0.0001:0.138;
xc=[];kc=[];
for k=kk;
   x=x0;
   for p=1:150;
       x=fff(x,k);
   end
   for p=1:50;
       x=fff(x,k);
       xc=;
       kc=;
   end
end
plot(kc,xc,'k.','markersize',2)



这段程序的分岔图在matlab中是正确的,octopussheng版主可以在matlab中看看!
我是就参考这个程序写的!!!

superliu 发表于 2007-11-19 02:43

问题出在“fff=inline”函数上面,建议你用一般函数表示,
即类似于的表达式;
V(n+1)=f(V(n),I(n));
I(n+1)=g(V(n),I(n));
此处f(),g(),就是你的函数
这样做肯定可以作出图来的;

dragonzww 发表于 2007-11-19 20:33

function dc2dc2sim;

vi=10;
L=0.001;
C=0.000012;
T=0.000100;
R=20;
k=1/(2*R*C);
w=sqrt(1/(L*C)-k^2);

kk=0.5:0.1:5.5;
nn=0:0.0001/10:0.0001;

xc=[];kc=[];
for iref=kk;
   vn=0;
   in=0;
for tn=nn;
   for p=1:150;
       tnbo=T*;
       vn=vi-exp(-k*tnbo)*[(k*vn*exp(-2*k*tn)-k*vi-(iref-vi/R)/C)*sin(w*tnbo)/w+(vi-vn*exp(-2*k*tn))*cos(w*tnbo)];
       in=exp(-k*tnbo)*[(k*L*(iref-vi/R)+vi-vn*exp(-2*k*tn))/(w*L)*sin(w*tnbo)+(iref-vi/R)*cos(w*tnbo)]+vi/R;
   end
   for p=1:100;
       tnbo=T*;
       vn=vi-exp(-k*tnbo)*[(k*vn*exp(-2*k*tn)-k*vi-(iref-vi/R)/C)*sin(w*tnbo)/w+(vi-vn*exp(-2*k*tn))*cos(w*tnbo)];
       in=exp(-k*tnbo)*[(k*L*(iref-vi/R)+vi-vn*exp(-2*k*tn))/(w*L)*sin(w*tnbo)+(iref-vi/R)*cos(w*tnbo)]+vi/R;
       xc=;
       kc=;
      
   end
   
end
end
       plot(kc,xc,'k.','markersize',2)


重新修改的程序为什么分岔图不正确啊,请版主研友帮忙啊!!!

octopussheng 发表于 2007-11-19 20:40

先谈一下个人的一点看法哈
kk=0.5:0.1:5.5;
nn=0:0.0001/10:0.0001;
这两句话定的步数会不会少了点呀?

能否考虑把plot(kc,xc,'k.','markersize',2)
放到for循环里面呢?

咕噜噜 发表于 2007-11-19 21:10

我倒觉得这里有问题
for p=1:150;
       tnbo=T*;
       vn=vi-exp(-k*tnbo)*[(k*vn*exp(-2*k*tn)-k*vi-(iref-vi/R)/C)*sin(w*tnbo)/w+(vi-vn*exp(-2*k*tn))*cos(w*tnbo)];
       in=exp(-k*tnbo)*[(k*L*(iref-vi/R)+vi-vn*exp(-2*k*tn))/(w*L)*sin(w*tnbo)+(iref-vi/R)*cos(w*tnbo)]+vi/R;
   end
   for p=1:100;
       tnbo=T*;
       vn=vi-exp(-k*tnbo)*[(k*vn*exp(-2*k*tn)-k*vi-(iref-vi/R)/C)*sin(w*tnbo)/w+(vi-vn*exp(-2*k*tn))*cos(w*tnbo)];
       in=exp(-k*tnbo)*[(k*L*(iref-vi/R)+vi-vn*exp(-2*k*tn))/(w*L)*sin(w*tnbo)+(iref-vi/R)*cos(w*tnbo)]+vi/R;
       xc=;
       kc=;

dragonzww 发表于 2007-11-19 21:17

for iref=kk;%iref从现在从0.5到5.5
   vn=0;
   in=0;
for tn=nn;%tn从0到T
......
end
   
end

end
       plot(kc,xc,'k.','markersize',2)

这两个循环行不行啊,特别是时间tn从0到T这样循环不知道行不行,两位版主花点时间帮我看看,谢谢!

octopussheng 发表于 2007-11-19 21:23

回复 #7 咕噜噜 的帖子

而且前面说略去前面的迭代数据,感觉循环里面并没有略去呀!,不知道小咕是什么看法

superliu 发表于 2007-11-20 18:10

我估计是这条有问题
for tn=nn;
。。。。
end

你的函数和tn,tn'都有关系,而且此处的“n”和“vn,in”是有关系的

总的说来,你的函数关系还是没有表示清楚。

在此循环范围内;
for p=1:150;   
   完整的函数关系表达式;      
   end
for p=1:100;
      完整的函数关系表达式;
       xc=;
       kc=;
      
   end

其实你的程序结构没有问题,只是函数关系没有表示清楚,耐心检查一下。

dragonzww 发表于 2007-11-21 19:59

分岔图及变换器系统原理图

要得到的分岔图如附件中的图1;
变换器系统图如附件中的图2,tn和tn'的关系如图;
在matlab中tn和tn'的函数关系不知如何正确表达完整的函数关系表达式;iref循环可以从0.5~5.5变化,但tn好象不知如何变化才能够作出如图的分岔图;

dragonzww 发表于 2007-11-21 20:16

tn是一个状态转换周期开关闭合的时间,tn'是该状态转换周期开关断开的时间,
从上图中可以看出:当iiref<=in时,开关闭合,时间为tn;当iiref>=in时,开关打开,时间为tn‘。
不知在matlab中tn循环 以及函数如何表达。

dragonzww 发表于 2007-11-21 20:21

分岔图是参考电流iref和电感电流in的关系,iref从0.5~5.5变化

分岔图是参考电流iref和电感电流in的关系,iref从0.5~5.5变化

superliu 发表于 2007-11-22 02:30

tnbo=T*;
这句表示什么意思?和(3.9)式写法什么有出入?

superliu 发表于 2007-11-22 02:36

从你的解释看来在某个时刻tn和tn’只有一个起作用,剩下的就是想办法,表示tn和tn’之间的这种关系。
页: [1] 2
查看完整版本: 求助:分岔图matlab程序赐教指正!