Matlab中mpc的应用

g11=poly2tfd(12.8,[16.7 1],0,1);
g21=poly2tfd(6.6,[10.9 1],0,7);
g12=poly2tfd(-18.9,[21.0 1],0,3);
g22=poly2tfd(-19.4,[14.4 1],0,3);
gd1=poly2tfd(3.8,[14.9 1],0,8);
gd2=poly2tfd(4.9,[13.2 1],0,3);
tfinal=200;               %Model horizon N
delt=1;                   %sampling period
ny=2;                     %Number of outputs
model=tfd2step(tfinal,delt,ny,g11,g21,g12,g22);
plant=model;              %No plant/model mismatch
dmodel=[];  %Default disturbance model
dplant=tfd2step(tfinal,delt,ny,gd1,gd2)
P=90;M=30;                 %Horizons
ywt=[1 1]; uwt=[0.1 0.1]; %Q and R
tend=200;                  %final time for simulation
r=[-0.02 0.01];                   %Set-point change inXD XB
a=zeros([1,tend]);
for i=501:tend
a(i)=0.03*2.45;         % 3 %step in F at t=50 min.
end
dstep=[a'];
ulim=[-0.15 -0.15 .15 .15 1000 1000];%u limits
ylim=[];
tfilter=[];
[y1,u1]=cmpc(plant,model,ywt,uwt,M,P,tend,r,ulim,ylim,tfilter,dplant,dmodel,dstep);
figure(1)
subplot(211)
plot(y1)
legend('MPC','PID')
ylabel('wt-change')
subplot(212)
stairs(u1)     %Plot input as staircase functions
legend('R','S')
xlabel('Time(min)')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值