hydwxb2004 发表于 2007-6-8 08:50

请问如何将滞环加如程序

各位前辈,小弟变成实现高功率因数整流器的仿镇时,老师让我将滞环环节加入,请问该如何加呢??附,程序如下:
clear;                              %清除工作空间所有的变量
global D L R C Vi;                  %定义全局变量
Kp=2.0;                               %PI调节器的比例环节比例系数
Ki=1/1500.0;                        %电源反馈的比例系数
Kv=1/1500.0;                        %输出电压反馈的比例系数
KI=1.0;                               %PI调节器的积分环节比例系数
x0=;                        %电压、电流的初始值
R=100;L=2.0e-4;C=4.70e-4;               %电阻、电感、电容值
U0=x0(2,1);
Ud0=x0(2,1);is0=x0(1,1);Im(1)=36.66;e(1)=0;%给定初始值
Ts=100.0e-6;                           %定义步长
for n=1:8000                        
   Udg=U0*Kv;                           %输出电压给定
% if(n>=1000),R=200;end                  
   T(n)=(n-1)*Ts;                     %定义时间参数
   Ud(n)=Ud0;is(n)=is0;               %给电压、电感赋值
   es(n)=abs(311*sin(100*pi*Ts*(n-1)));%电源电压
   Vi=es(n);
   esp(n)=es(n)*Ki;
   Udp(n)=Ud(n)*Kv;                   %输出电压采样
   e(n+1)=Udg-Udp(n);               %偏差信号
   dIm(n+1)=Kp*(e(n+1)-e(n))+KI*e(n+1);%增量式PI调节器模型
   Im(n+1)=Im(n)+dIm(n+1);
   isg(n)=Im(n+1)*abs(sin(100*pi*Ts*(n-1)));%给定电流值
   %if(isg(n)>
   
   
   ukp(n)=esp(n)-L*(isg(n)-is(n))*Ki/Ts;%调制波uk
   d(n)=1-ukp(n)/Udp(n);                %占空比控制规律
   if(d(n)>1),d(n)=0.98;end         %限幅
   if(d(n)<0),d(n)=0;end
   D=d(n);
   tto1=(n-1)*Ts;                     %时间范围
   ttf1=n*Ts;
   sj0=;
   =ode45('boost1',sj0,x0);      %调用龙格-库塔算法
   =size(x);                     %求行列数
   x0(:)=x(q,:);                      %将运算结果赋给电压、电流初值
   y(n,:)=x(q,:);
   Ud0=x0(2,1);is0=x0(1,1);
   if(rem(n,500)==0),disp(n);end
end
t1=0:Ts:(n-1)*Ts;
t2=0:Ts:n*Ts;
%t1=0:Ts:2000*Ts;
%t2=0:Ts:2000*Ts;
figure(1)
subplot(2,2,1)
plot(t1,es,'r');
hold on;
plot(t1,Ud,'b')
title('输入电压e_s-r输出电压U_d-b');
subplot(2,2,2)
plot(t2,Im,'b');
title('Im');
subplot(2,2,3)
plot(t1,isg,'g');
title('给定电感电流isg');
subplot(2,2,4)
plot(t1,is,'y');
title('电感电流is');
figure(2)
plot(d);
title('占空比');
figure(3)
plot(ukp/Ki);
title('uk');
figure(4)
plot(e);title('偏差信号e');
figure(5)
plot(t1,es,'r');
hold on;
plot(t1,is*5,'k');
hold on;
plot(t1,Ud/2,'b');
% axis();
title('突减负载:红色代表输入电压,黑色代表输入电流,绿色代表输出电压');


子程序:
function zdot=boost1(tt,x)
global D L C R Vi
zdot=zeros(2,1);
zdot(1)=Vi/L+(D*x(2))/L-x(2)/L;
zdot(2)=x(1)/C-(x(1)*D)/C-x(2)/(R*C);

我的联系方式:QQ290597647   邮箱:lys198573@163.com

[ 本帖最后由 hydwxb2004 于 2007-6-8 09:17 编辑 ]
页: [1]
查看完整版本: 请问如何将滞环加如程序