資源簡介
很好用的模型預(yù)測控制MATLAB程序!

代碼片段和文件信息
clear?all;
close?all;
Ts=0.5;%采樣周期0.5s
Tr=1;H=10;%參考軌跡時間常數(shù)為1預(yù)測時域優(yōu)化長度為10
Km=3;Tm=3;%預(yù)測模型的參數(shù)
beta=exp(-Ts/Tr);
alph=exp(-Ts/Tm);
%對象離散化
sys=tf(3[31]);
dsys=c2d(sysTs‘z‘);
[numden]=tfdata(dsys‘v‘);
%預(yù)測模型離散化
sysm=tf(Km[Tm1]);
dsysm=c2d(sysmTs‘z‘);
[nummdenm]=tfdata(dsysm‘v‘);
u_1=0;
y_1=0;
ym_1=0;
c=1;%設(shè)定值
for?k=1:1:100
????time(k)=k*Ts;
???
????
????%經(jīng)z變換后的離散化對象
????y(k)=-den(2)*y_1+num(2)*u_1;
????ym(k)=-denm(2)*ym_1+numm(2)*u_1;
????
????%修正后的過程輸出值ypav(k)=y(k)
????ypav(k)=y(k)
????
????%控制器輸出
????u(k)=((c-ypav(k))*(1-beta^H)+ym(k)*(1-alph^H))/(Km*(1-alph^H));
????
????
????%參數(shù)更新
????u_1=u(k);??
????y_1=y(k);
????ym_1=ym(k);
????
end
figure(1);
plot(timec‘b‘timey‘r‘);
axis([0?50?0?1.2])
xlabel(‘time(s)‘);ylabel(‘cy‘);
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????872??2009-05-08?17:04??PFC.m
- 上一篇:SVPWM的Simuli
nk仿真203655 - 下一篇:手寫板matlab