分享一个之前简单的笔记供大家参考。如果只是想对系统辨识有点了解然后直接拿来用的,看看这个然后用matlab上的系统辨识工具箱就够了;如果想对系统辨识有深入的研究,推荐看一下朱豫才教授的《过程控制的多变量系统辨识》,然后看一下Lennart Ljung的《System identification theory for the user》(有厚度也有难度)。
系统辨识三要素
1. 数据
2. 模型集(线性 or 非线性,连续 or 离散 等):灰箱模型即结构已知(from physical law)参数带估计;黑箱模型即模型结构需要自己选择且参数没有物理意义
3. 准则:用于确定什么样的模型才是best的
模型验证
1. 根据先验知识判断是否符合系统的物理特性,比如增益方向,时间常数等;
2. 根据未用于训练的实验数据进行验证,比较模型的仿真输出和实际观测输出。
线性系统
线性回归
系统以线性回归表示为
其中
为参数向量,
为回归向量(通常包含过去时刻的输入输出值)。
等价于
非线性系统也可以表示成线性回归的形式,比如在回归向量里包含
等。
最小二乘估计
定义残差(residuals)为
最小二乘估计即:
对
求导,利用极值条件可以得到
在 Matlab 里的实现就是
观察可以知道
利用 Cholesky 分解
,其中
是下三角矩阵,matlab代码
因此最小二乘估计的解为:
1. 通过 forward substitution 求解
2. 通过 backward substitution 求解