一、为什么进行系统识别
系统建模有两种方法:
- 机理分析法(First Principles Modeling),又称白箱(white-box)建模法:通过物理、化学、生物等学科的相关原理写书数学模型;
- 辨识法(Identification),又称黑箱(black-box)建模法,根据测量得到的输入输出数据得到模型。
任何一个系统都有一个真实的模型,而且真实系统严格来说是非线性且时变的,因此只能用有限维线性时不变系统模型来近似。即便是近似,真实的模型在绝大多情况下通过机理分析法是很难获得的,即使能够获得,一般也及其复杂而无法使用的。在这种情况下,辨识法就成了我们为数不多的选择,目的是希望得到的模型是复杂度在可接受的范围内,能够基本反映真实系统的模型。
二、系统识别的基本思想
假设我们通过那次观察,测得系统的输入为:
测得系统的输出为:
假定系统的数学模型如下:
其中
要想取得极值,需要
便可以获得模型的参数估计值
三、如何识别直流电机系统模型
以下算例是对MATLAB案例的解释,原文请看Estimate Nonlinear Grey-Box Models。
以简单的直流电机为例,一个典型的直流电机的数学模型如下:
其中
电压平衡方程式为:
反电势方程为:
力矩方程为:
转子的力矩平衡方程为:
因为
则可以得到直流电机的状态方程为:
其中状态变量为电机转角和转速:
因为我们要识别电机模型,负载没有影响,因此可以假定
现在我们要通过模型识别来确定
为了确定电机的动态模型,我们可以在开环状态下施加随机的PWM控制信号(输入),然后对输出进行采样记录,这样我们就有了输入、输出以及模型三个必要的要素,这个过程要通过试验来获得,比如我们获得的电压和电机转角数据如下:
电压和转速数据如下:
速度一般是通过位置微分得到的,可见速度已经出现一定的噪音。在前面我们建立方程的时候,我们知道:
因此我们可以通过电机的基本参数来预估
很不幸,由于建模的过程中很难面面俱到,实际通过机理分析得到的模型和实际的物理模型还是有较大的差别的。这时候就要用到我们的模型识别了!——识别的结果见下图:
可见,电机转角曲线基本吻合,速度曲线吻合度也非常高!误差如下:
误差基本呈白噪音形态,这属于测量噪音,通过软件层面(模型识别)是无法消除的,只能提高硬件水平(传感器精度)。值得一提的是,本算例中忽略了电感,当然我们还可以增加电流状态变量以及电流测量,对电感的影响也加以辨识,情况会复杂一些,感兴趣的可以试一下。