本视频聚焦于MATLAB函数mem_con.m的应用讲解,深入探讨了利用最小二乘法进行系统参数识别的技术细节,并提供详细的问答环节。适合工程和科研人员学习参考。
我编写了一个使用最小二乘法辨识系统参数的函数,并且实现了有限定记忆最小二乘递归算法(用于识别量测噪声为白噪声系统的参数)以及广义最小二乘算法(用于处理量测噪声为有色噪声的情况及考虑参数扰动)。对于前者,即限定记忆最小二乘的方法,其辨识结果是正确的。然而,在使用广义最小二乘方法进行系统参数的估计时,虽然模型参数看起来正确无误,但得到的噪声参数却与预期不符。
我将简要概述一下广义最小二乘算法的工作原理:该递推过程采用两步迭代的方式,首先为所有未知量(包括噪声和模型参数)设定初始值。第一步假设已知噪声参数的情况下,利用最小二乘法估计出系统模型的参数;第二步则使用最新获得的模型参数去更新对噪声特性的认识。上述循环会持续进行直至满足预设精度标准或数据用尽为止。
我的困惑在于:既然辨识过程中需要依赖正确的噪声特性来准确推算系统参数,为何在错误地估计了噪声的情况下还能得到看似合理的模型参数?为此我上传了一些相关文件以供参考和讨论:
- LSE.mdl: 包含系统的数学描述
- mem_con.m: 限定记忆最小二乘算法的源代码
- GLS.m: 广义最小二乘法的具体实现
这些程序中已附带了基本说明,便于理解。希望有经验的朋友能够帮忙检查一下广义最小二乘部分的编程逻辑是否有误,并提出改进意见,在此先表示感谢。