identification.m
来自「预测控制中动态矩阵控制(DMC)的Matlab代码」· M 代码 · 共 22 行
M
22 行
%----------------------------subfunction-----------------------------------
function [AA,BB,z,zz,u]=identification(AAA,BBB,L,xx,na,nb)
u=U(L,xx);
nra=length(AAA)-1;
nrb=length(BBB)-1;
z=zeros(1,L);
for t=max(nra+1,nrb+2):L
z(t)=BBB*flipud(u(t-nrb-1:t-1)')-AAA(2:nra+1)*flipud(z(t-nra:t-1)');
end
ZL=z(na+1:L);
HL=CHL(na,nb,z,u);
theta=inv(HL'*HL)*HL'*ZL';
theta=theta';
AA=[1 theta(1:na)];
BB=theta(na+1:na+nb+1);
zz=zeros(1,L);
for t=max(na+1,nb+2):L
zz(t)=(BB*flipud(u(t-nb-1:t-1)')-AA(2:na+1)*flipud(zz(t-na:t-1)'))/AA(1);
end
AA
BB
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?