系统辨识入门:从最小二乘法到ARX模型,5步搞定黑箱建模
系统辨识入门从最小二乘法到ARX模型5步搞定黑箱建模在自动化控制和机械工程领域系统辨识是一项基础而关键的技能。面对一个未知的系统如何通过输入输出数据建立数学模型本文将带你从零开始用最小二乘法和ARX模型这两个经典工具分五个步骤完成黑箱建模的全过程。1. 理解系统辨识的基本概念系统辨识的核心思想是通过观测系统的输入输出数据建立描述系统动态特性的数学模型。与传统的机理建模白箱法不同系统辨识采用的是黑箱方法不需要深入了解系统内部的工作原理。为什么需要系统辨识复杂系统难以通过物理定律直接建模实际系统参数可能随时间变化某些物理参数难以直接测量便于计算机在线决策和控制系统辨识的三个基本要素输入输出数据必须包含足够反映系统特性的信息模型类如ARX、ARMAX等模型结构准则函数评价模型拟合质量的指标提示好的辨识数据应包含丰富的频率成分时域上变化剧烈且非周期性。2. 准备辨识实验与数据采集2.1 设计激励信号选择合适的输入信号对辨识结果至关重要。常用激励信号包括信号类型特点适用场景白噪声频谱平坦各频率成分均匀一般系统辨识M序列伪随机二进制信号近似白噪声实际工程应用多频正弦特定频率组合频域辨识设计原则信号幅度应使系统工作在感兴趣的范围内持续时间足够长以覆盖系统动态采样频率满足香农采样定理2.2 数据预处理采集到的原始数据通常需要进行以下处理去除直流分量去趋势滤波消除高频噪声数据标准化归一化分割训练集和验证集# Python示例数据预处理 import numpy as np from scipy import signal # 去趋势 detrended_data signal.detrend(raw_data) # 低通滤波 b, a signal.butter(4, 0.1, low) filtered_data signal.filtfilt(b, a, detrended_data) # 归一化 normalized_data (filtered_data - np.mean(filtered_data))/np.std(filtered_data)3. 最小二乘法参数估计最小二乘法是系统辨识中最基础、最常用的参数估计方法其核心思想是寻找使预测误差平方和最小的模型参数。3.1 线性回归模型考虑线性回归模型y(t) φ(t)^T θ e(t)其中y(t)是系统输出φ(t)是回归向量包含输入输出历史数据θ是待估参数向量e(t)是噪声项3.2 最小二乘解最小二乘估计量θ̂通过最小化损失函数得到J(θ) Σ[y(t) - φ(t)^T θ]^2解析解为θ̂ (Φ^T Φ)^(-1) Φ^T Y其中Φ是回归矩阵Y是输出向量。# Python实现最小二乘估计 import numpy as np # 构造回归矩阵Φ和输出向量Y Phi np.vstack([u[k-1], y[k-1]] for k in range(1,N)) Y np.array([y[k] for k in range(1,N)]) # 计算最小二乘估计 theta_hat np.linalg.inv(Phi.T Phi) Phi.T Y3.3 递推最小二乘法对于在线应用可以使用递推最小二乘算法初始化θ(0), P(0) for k 1 to N do K(k) P(k-1)φ(k)/(λ φ(k)^T P(k-1)φ(k)) θ(k) θ(k-1) K(k)(y(k) - φ(k)^T θ(k-1)) P(k) (I - K(k)φ(k)^T)P(k-1)/λ end for注意λ是遗忘因子(0λ≤1)用于处理时变系统λ越小对旧数据遗忘越快。4. ARX模型结构与辨识4.1 ARX模型定义ARX(AutoRegressive with eXogenous input)模型是最常用的线性动态模型之一其形式为y(t) a1 y(t-1) ... ana y(t-na) b1 u(t-1) ... bnb u(t-nb) e(t)或表示为A(q^-1)y(t) B(q^-1)u(t) e(t)其中q^-1是后移算子。4.2 ARX模型辨识步骤确定模型阶次通过试错法或信息准则(AIC、BIC等)选择na和nb构造回归矩阵包含输出和输入的延迟项参数估计使用最小二乘法估计系数a1...ana, b1...bnb模型验证检查残差是否接近白噪声阶次选择参考表系统类型建议na建议nb一阶系统1-21-2二阶系统2-32-3高阶系统3-53-54.3 ARX模型扩展根据不同的噪声特性可以扩展出多种模型结构ARMAX包含移动平均噪声项OE(输出误差)噪声仅作用于输出BJ(Box-Jenkins)独立的噪声模型5. 模型验证与应用5.1 模型验证方法残差分析检查残差是否接近白噪声# 残差自相关检验 from statsmodels.tsa.stattools import acf residuals y_true - y_pred acf_values acf(residuals, nlags20)交叉验证使用未参与训练的数据验证模型仿真比较对比模型输出与实际系统输出5.2 实际应用案例温度控制系统建模采集加热器输入电压和温度传感器输出数据使用递推最小二乘法在线辨识ARX模型基于模型设计PID控制器验证控制效果并调整模型参数关键参数设置经验采样周期选择系统响应时间的1/10~1/5数据长度至少包含5-10个系统主要时间常数遗忘因子时变系统常用0.95-0.99在实际项目中我发现初始模型阶次的选择对辨识结果影响很大。通过多次尝试不同阶次组合并比较AIC准则值最终确定最优模型结构。另一个常见问题是数据饱和这时采用渐消记忆法能显著改善参数估计的跟踪能力。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2442017.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!