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 + -
显示快捷键?