最近在做一些系统辨识的学习工作,主要是为了给IPMC(一种柔性材料)的末端位移曲线进行建模。

我尝试了好几种辨识方法,有最经典的RLS,梯度校正估计法、极大似然参数估计法、以及离散时间模型参考自适应系统 (MRAS) 。

其中辨识成功的有RLS和MARS,其余两个都辨识失败了,目前原因未知,根据可辨识性相关理论(也是我后来才知道的),梯度校正法和极大似然法失败可能在于假定的被测系统对该算法来说是不可辨识的,不过也说明了这两个算法的适用性其实还是非常局限的,随便假定的模型就有很高概率是不可辨识模型。

关于RLS:

说实话,经典永流传这句话真的是有道理,它的适用性真是不错,就我的目前这几个算法的经验而言,RLS不管在收敛速度还是适用性都感觉是最好的,只要该系统是稳定的,就可以辨识,简单的判断方法就是判断离散传递函数的极点|Z|<1即可。

关于MARS:

这个算法用来发论文效果不错,实用性一般,该(离散)系统的传函只要是正实的就可以辨识,但有一个问题,有些情况,比如系统的系数很小的时候收敛速度很慢,这也是为什么实用性不好的原因,至于收敛速度和模型之间有没有简单的判断关系我目前还无暇研究。

关于输入信号:

常用的输入信号有阶跃信号、白噪声、M序列。M序列可以理解为白噪声的二值化版本,辨识系统的时候是强烈推荐使用白噪声或M序列进行辨识的,因为这样的信号可以充分激励系统的各个部分,结果就是辨识精度更高。而RLS在用阶跃信号的时也有相当不错的结果,看来RLS算法又赢得一分。