对于matlab中system identification中example中自带u2,y2进行状态方程识别,识别求得A,B,C,D。
为了便于PLC或其他执行部分进行预测,此处借用差分方程进行落地——挖掘过去数据,了解未来趋势。
function [YUCE] = CHAFENHANSHUNB(CC1,A,B,C,D)
%IN 输入数据 ON输出数据 PI1(y(k-1)系数),PIN2(y(k-2)系数),PO1(u(k-1)系数),PO2(u(k-2)系数)
% 二阶差分
% sys=ss(ss1.A,ss1.B,ss1.C,ss1.D);%提取 A B C D
% [num, den] = tfdata(sys,'v'); % 提取 分子和分母
% H=tf(num,den);%显示s传递函数 输入H回车就可以看到s传递函数结果
% dsys=c2d(H,0.001,'z');% z变换指令 ,输入dsys回车就可以看到z变换结果。
D1=CC1;
X23=load(D1).chafen;
IN=X23(:,1);
OUT=X23(:,2);
M=size(IN,1); %知道输入多少行
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sys=ss(A,B,C,D);%提取 A B C D