我认为问题是
德拉夫
。出于某种原因,我的模拟与
deltav = 0.04
。减少以下值,导致
VMPP.
=开路电压。我在求解器设置中禁用了“零点”并模拟系统使用
ODE23T.
求解器(我的系统使用电力电子块;
ODE23T.
&
ODE23TB.
主要与电力电子块一起使用)。
我不是在Simulink Matlab功能块内使用数组索引和循环的粉丝。万博1manbetx这就是我使用以下代码的原因:
功能[步,标志,VMPP] = FCN(v,v_old,p,p_old)
标志= 5;
VMPP = 35;
dv = 0.04;
如果isempty(v_old)||Isempty(P_old)
v_old = 30;p_old = 800;
结尾
delta_p = p - p_old;
delta_v = v - v_old;
如果delta_p> 0.
标志= 1;
如果delta_v> 0.
VMPP = V + DV;
eleesifdelta_v <0.
VMPP = V - DV;
结尾
eleesifdelta_p <0.
标志= -1;
如果delta_v> 0.
VMPP = V - DV;
eleesifdelta_v <0.
VMPP = V + DV;
结尾
eleesifdelta_p == 0.
标志= 0;
VMPP = V;
结尾
步= DV;
结尾
为了
v_old.
&
P_OLD.
,我使用延迟块并产生MOSFET / IGBT的栅极信号(占空比),我使用了PI控制器。PI收益由击中和试验选择。所有这些都在图中:
我用过一个
旗帜
变量记录的状态
delta_p.
。结果不是很准确,但是,它为我工作..
希望这有助于某人..