请问如何将滞环加如程序
各位前辈,小弟变成实现高功率因数整流器的仿镇时,老师让我将滞环环节加入,请问该如何加呢??附,程序如下: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]