下面是我做的光伏阵列最大功率点跟踪模型和S函数。仿真出现下面的错误根本没结果。 最大功率点跟踪S函数(爬山法) global D; global Ik; global Vk; switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case {1,4,9}, sys = []; otherwise DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag)); end function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 3; sizes.NumOutputs = 1; sizes.NumInputs = 2; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = [0;0;0.5]; str = []; ts = [1 0]; function sys=mdlUpdate(t,x,u) sys = [x(1);x(2);x(3)]; function sys=mdlOutputs(t,x,u) Ik=x(1); Vk=x(2); Pk=Ik*Vk; D=x(3); I=u(1); V=u(2); P=I*V; d=0.0001; di=I-Ik; dv=V-Vk; dp=P-Pk; if dp==0 dd=0; else if dp>0 if dv>0 dd=d; else dd=-d; end else if dv>0 dd=-d; else dd=d; end end end D=D+dd; if D<0.001 D= 0.01; end if D>0.999 D= 0.999; end x(1)=I; x(2)=V; x(3)=D; sys =[D]; 希望大家帮帮忙吧!看看到底哪错了。谢谢! |
错误对话框
整个仿真图
光伏模型左半部分
光伏阵列右半部分
10 条回复