• 大小: 1.87KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


定常广义预测控制(GPC)算法 matlab仿真程序

资源截图

代码片段和文件信息

%广义预测控制_定常GPC算法仿真
%被控模型为y(k)=1.5*y(k-1)-0.7*y(k-2)+u(k-1)+0.5*u(k-2)+e(k),其中e(k)为噪声
clc;
clear;
%预测模型
A=[0.7-1.51];

B=[0.51];
na=length(A)-1;
nb=length(B)-1;
%预测时域和控制时域
N=5;
Nu=4;
lmd=0.5;
%仿真步数
tim=100;
%扰动幅度
ampe=1;
%y(k)的最终给定值yr
yr=50;
%柔化因子a
a=0.5;
%一些计算的中间量
Z=[10];%表示z^(-1)
Zj=cell(1N-1);%Zj中存储的为z^(-j)次
for j=1:N-1
    Zj{j}(1)=1;
    Zj{j}(2:j+1)=0;
end
delta=[-11];%△
Adelta=conv(Adelta);%A△

%迭代求第一个丢番图方程中的EF
E=cell(1N);
F=cell(1N);
E{1}=[1];
F{1}=deconv(polyadd(1-Adelta)Z);
for j=1:N-1
    E{j+1}=polyadd(E{j}F{j}(na+1)*Zj{j});
   % F{j+1}=conv(polyadd(F{j}-(F{j}(na+1)*Adelta))Z);
   F{j+1}=deconv(polyadd(F{j}-(F{j}(na+1)*Adelta))Z);
end
%求第二个丢番图方程中的GH
G=cell(1N);
H=cell(1N);
for j=1:N
    EB=conv(E{j}B);
    H{j}=EB(1:length(EB)-j);
    G{j}=EB(length(EB)-j+1:length(EB));
end
%将EFGH左右翻转,因为MATLAB中的多项式系数是从高次到低次排列,而GPC算法中是相反的,这样翻转过来使用比较方便
for j=1:N
    E{j}=fliplr(E{j});
    F{j}=fliplr(F{j});
    G{j}=f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2271  2012-10-28 21:21  GPC\GPC_dingchang.m
     文件         275  2012-09-24 09:21  GPC\polyadd.m
     目录           0  2012-12-06 18:09  GPC\

评论

共有 条评论