目录

目录

目录

基础知识

什么是系统辨识

辨识模型

噪声

矩阵运算

模型

时间序列模型 Time series model

方程误差模型 Equation error type model

输出误差模型 Output error type model

最小二乘法 Least Squares Principle

迭代最小二乘辨识 RLS identification

迭代最小二乘辨识的推导(对ARX模型)

最终结论

几个重要概念

带遗忘因子的迭代最小二乘辨识算法 FF-RLS

数据饱和

带遗忘因子的 RLS

固定记忆的 RLS

基础篇总结


基础知识

什么是系统辨识

根据测得的输入输出,通过最小化误差标准函数,确定数学模型中未知的参数取值

Identification can be defined as the determination of a mathematical model from the observed input and output data by minimizing some error criterion function.

四个基本要素:

  • A data set 数据集

  • A set of candidate models 模型类

  • criterion function 指标函数

  • optimizaiton approaches 优化方法

辨识模型

在传递函数中,我们常用微分算子 s 的分式来表达输入输出之间的关系。在系统辨识中,我们根据 移位算子 z 的差分方程来表达输入、输出、噪声之间的关系

在系统辨识算法中,为了让不同的情况,不同的算法有共通的体系结构,我们所有的算法均是基于 辨识模型(identification model) 进行推演

辨识模型的特点:    无参变量\已知量 = 带参变量*待辨识参数 + 白噪声

噪声

随机变量:形容随机事件的数学描述

随机过程:随时间变化的随机变量,依赖于时间 t 和事件 w,当时间固定时,即随机变量

白噪声 White Noise:

Question: which terms as follows belong to white noise if v(t) is white noise:

根据白噪声的定义和性质可知,ABC仍然属于白噪声,而D不满足第三个条件

矩阵运算

  • f 列向量对 x 列向量的偏导:

  • f 标量对 x 列向量的偏导:

  • f 列向量对 x 标量的偏导:

  • lemma 1

  • lemma 2

  • 链导法则 chain rule


模型

系统辨识中的模型均采用差分方程 difference function 的形式表达,其中

常用模型如下

时间序列模型 Time series model

  • 自回归模型 AutoRegressive (AR) model

其中,v是白噪声,na是自回归信号的阶

  • 滑动平均模型 Moving Average (MA) model

  • 自回归滑动平均模型 AutoRegressive Moving Average (ARMA) model

  • 确定性ARMA模型 Deterministic ARMA (DARMA) model

  • 自回归整合滑动平均模型 AutoRegressive Integtated Moving Average (ARIMA) model

方程误差模型 Equation error type model

以下命名中的字母分别对应,输出信号类型、噪声类型、输入X

输出误差模型 Output error type model

以下命名中的字母分别对应,输出OE、输入类型、噪声类型


最小二乘法 Least Squares Principle

此章为最小二乘法的推导过程,作为系统辨识算法推理的基础,详见最小二乘估计


迭代最小二乘辨识 RLS identification

最小二乘辨识算法的核心,在于将现有模型转化为 辨识模型(identification model) 用以参数辨识

迭代最小二乘辨识的推导(对ARX模型)

为了凑成辨识模型,我们定义 θ 和 φ 以便后期计算,可得相应的辨识模型

根据最小二乘法中得到的结论,参数 θ 的最小二乘估计为  

据此,将 LSE 中求逆的部分单独定义为  

为了保证算法的递推性,需要将 LSE 中的各变量递推关系式写出,如下

上述公式表示了各个变量在当前时刻与前一个时刻的递推关系,我们将上述递推关系代入 LSE 中得到递推的 LSE(此步骤目的是得到 θ(t) 与 θ(t-1) 之间的递推关系)

经过上面复杂的推导,终于获得了 递推最小二乘估计(Recursive Least Squares Estimation)算法

最终结论

由于矩阵求逆在实际运算中非常不友好,甚至不能保证可逆,因此引入以下矩阵多项式求逆算法:

代入到 P(t) 的递推关系式中,如下

P(t) 称为 协方差矩阵(covariance matrix)

为了表示方便,下面定义一个新的变量 L(t)

于是,可以得到递推最小二乘辨识的完整算法:

几个重要概念

针对 RLSE 中各部分物理含义如下图所示

其中,根据 P(t) 的递推公式1.1,有下述情况需要考虑

可见,当且仅当 p0 取较大值时,P(t) 才能符合原有定义,否则算法会与实际值产生较大偏差

除此之外,在此区分定义两个概念:

新息(innovation)

残差(residual)

残差与新息的关系:


带遗忘因子的迭代最小二乘辨识算法 FF-RLS

数据饱和

根据 RLS 算法,我们可以有以下推导

从上述推理可以发现,由于协方差矩阵 P 具有正定且单调递减的特性,会随着时间的增长最终趋于零,从而导致后面新加入的数据,对 RLSE 的影响越来越小。

这种情况下,对于一个数据集,如果有效数据集中在前面,不会对算法结果产生影响,正常运行;然而,如果有效数据集中在后面,则 RLS 会根据前面的无效数据获得结果,且后面的有效数据因为算法这一问题,无法修正结果,此时 RLS 的最终结果就是错误的。针对这种,新加入数据无法正常修正辨识结果的现象,称为 数据饱和(data saturation)

data saturation: a phenomenon in which the new data have no attribution to improve the estimation of the parameter θ

带遗忘因子的 RLS

为了解决数据饱和的问题,针对迭代算法,我们在每一次运算时,可以通过手动削弱之前估计值的影响,来保证新加入的数据可以修正结果。

其中,0<ρ<1加权给过去的数据,用以削弱之前数据的影响,则之前的 RLS 算法(1.2)均发生改变

根据上面求得的参数,RLSE 为

可以发现,参数 P 和 L 均发生了改变,而 RLSE 的形式却没有变化。

不难发现,当引入了 遗忘因子 λ 后,P的正定性不改变,但是却不在满足单调递减的性质,也就不在趋于零了。数据饱和得以解决。

上图可以发现,采用传统的 RLS 算法,最后参数几乎不再变化,即几乎不受新数据影响;而遗忘因子较小时,参数误差呈发散状,达不到理想结果。一般而言,λ=0.98 效果较优,既可以削弱旧数据影响,还可以避免过快的衰减

这种通过加入遗忘因子,来增加新数据权重,削弱旧数据影响的方式,称为 带有遗忘因子的递推最小二乘辨识算法FF-RLS(Forgetting factor recursive least squares identification algorithm)

FF-RLS: the idea that introduce a factor for old data, in order to increase the contribution of new data and to reduce the influence of old data


基础篇总结

以上主要是针对系统辨识的目的、原理、基本推导方法进行总结归纳。对于更加复杂的模型和特殊问题的处理,见

主要掌握通用 RLS 算法(1.2),以及数据饱和现象及其应对方式,知晓遗忘因子的作用和对 RLS 算法的影响

系统辨识 Identification Algorithm(基础篇)相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第二十六章、Linux 核心编译与管理

    第二十六章.Linux核心编译与管理 最近升级日期:2009/09/18 我们说的 Linux 其实指的就是核心 (kernel) 而已.这个核心控制你主机的所有硬件并提供系统所有的功能,所以说,他重 ...

  2. 《算法笔记》——基础篇习题选择结构

    <算法笔记>--基础篇习题 第二章 C/C++快速入门--2.3选择结构 [习题A] 一元二次方程求根 Problem Description Thinking Notes Code Im ...

  3. 最全MySQL基础篇

    文章目录 导入表的问题 第三章_最基本的SELECT语句 1. SQL语言的规则和规范 1) 基本规则 2) SQL大小写规范(建议遵守) 3) 注释 4) 命名规则 2. 基本的SELECT语句 1 ...

  4. 学习C++:C++进阶(三)CMake基础篇---用一个小型项目了解CMake及环境构建

    V1.1 于2022年7月15日第二次修改:添加了比较多的解释图,解读了各类库的CMakelist.txt文件 目录 第一部分 基础篇(Basics) 1.0 本部分主要学什么(Intro) 1.1 ...

  5. Python机器学习基础篇三《无监督学习与预处理》

    前言 前期回顾: Python机器学习基础篇二<为什么用Python进行机器学习> 上面这篇里面写了文本和序列相关. 我们要讨论的第二种机器学习算法是无监督学习算法.无监督学习包括没有已知 ...

  6. 转战物联网·基础篇13-了解物联网之物连接相关通信技术(2)

    转战物联网·基础篇13-了解物联网之物连接相关通信技术(2) 三.硬件设备间组网的通信技术与通信协议(2) 11.6LoWPAN 12.PROFINET 13.EtherCAT 14.RFID.NFC ...

  7. 基础篇010.2 STM32驱动RC522 RFID模块之二:STM32硬件SPI驱动RC522

    目录 1. 实验硬件及原理图 1.1 RFID硬件 1.2 硬件原理图 2. 单片机与RFID硬件模块分析 3. 利用STM32CubeMX创建MDK工程 3.1 STM32CubeMX工程创建 3. ...

  8. 车载以太网基础篇之Eth Driver

    车载以太网基础篇之Ethernet Driver 前言 首先,请问大家几个小小问题,你清楚: 你知道Eth Driver模块的主要作用是什么吗? EthDriver与以太网控制器,以太网收发器,都有哪 ...

  9. Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

    目录 1.信号与槽的概念 2.信号与槽的基础函数 2.1.创建信号函数 2.2.连接信号函数 2.3.断开信号函数 2.4.发射信号函数 3.信号和槽的使用方法 3.1.内置信号与槽的使用 3.2.自 ...

  10. Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

    目录 1. 水平布局类(QHBoxLayout) 2.垂直布局类(QVBoxLayout) 3.网格布局类(QGridLayout) 3.1.单一的网络布局 3.2.跨越行.列的网络布局 4.表单布局 ...

最新文章

  1. pxe linux 配置文件,Linux PXE 部署
  2. CocoaPods远程私有库
  3. 如何判断服务器遭到***
  4. 简单的测试可以防止最严重的故障
  5. 使用SQL命令行更改数据库字段类型
  6. mail 命令发送附件
  7. div添加一个点击事件(绑定点击事件)
  8. October CMS - 快速入门 1 安装
  9. 静态页面编写规范02
  10. vlan 的三种模式
  11. html在线拍照功能,html5实现调用摄像头并拍照功能
  12. 【typecho插件】typecho邮箱插件LoveXiaozhou是一款Typecho邮件通知类插件、小周
  13. 面试阿里,你必须知道的背景知识——双非上岸阿里巴巴系列
  14. python求斜边上的高_直角三角形斜边上的高如何求?
  15. mac 快速显示/隐藏隐藏文件快捷键
  16. unity导入模型昏暗(对比度低)解决办法
  17. 平安产险深圳分公司:温暖护航 2021中国平安中超联赛圆满落幕
  18. 论文阅读: Spatial transformer networks
  19. 十万 百万 级数据处理 以及可视化 画图
  20. BIM模型之建模精度(Level of Detail, LOD)

热门文章

  1. 数字图像处理 关于matlab的图像处理操作
  2. 360服务器被劫持怎么修复,360浏览器网络劫持导致主页被改怎么办?360浏览器网络劫持导致主页被改的解决办法...
  3. 使用 GreenSock 来制作 SVG 动画
  4. 快捷方式全部变成LNK文件修复方法
  5. 自己做的商城系统流程图,分享给大家.
  6. 速达5000维护服务器,财务软件速达5000为什么连不上服务器
  7. 适合产品经理不同阶段的书籍和课程
  8. 【升级版】和秋叶一起学Office
  9. 标准Io编程学习笔记
  10. 处理IOStream异常