递推最小二乘法(三输入一输出ARX模型、所有样本数据权重为1)
假设:读者已经掌握了矩阵的基本运算、ARX模型结构、最基本的最小二乘法、MATLAB 编程语言
一、主要参考书籍
二、主要参考公式
三、ARX模型结构、以及最小二乘法回顾
四、MATLAB代码
%% 递推最小二乘法,是广义预测控制的基础之一
%% 程序版本迭代记录
%%%% 2022.10.2 最普通的RLS A_RLS.m
%%%% 2022.10.5 最普通的RLS,初始的三个矩阵通过小批量的历史数据利用一次性最小二乘法先得到 A_RLS_2.m
%% 清除
clc;clear;close all;
%% 导入数据
% all_data = readmatrix('F:\E\data_needed.xlsx','Sheet',4,'Range','B1000:H17001'); % 这是原始状态值
% all_data = readmatrix('F:\E\data_needed.xlsx','Sheet',4,'Range','I1000:O17001'); % 这是剔除异常值后状态值
all_data = readmatrix('F:\E\data_needed.xlsx','Sheet',4,'Range','P1000:V42001'); % 这是滤波后状态值
% all_data = readmatrix('F:\E\data_needed.xlsx','Sheet',4,'Range','W10000:AC42001'); % 这是增量值
%% 利用采样周期调整步长
sample_cycle = 30; % 采样周期 30s
sample_cycle_number = 2; % 2个采样周期为一个步长
predict_cycle = sample_cycle_number * sample_cycle; % 预测周期是sample_cycle_number个30s
%% 估计时延
delay_feed = sample_cycle * 20; % 600s
delay_coal = sample_cycle * 20; % 600s
delay_fan = sample_cycle * 12; %