[关闭]
@wuqi0616 2017-07-23T10:18:01.000000Z 字数 1414 阅读 800

速度中高速模型下的模型辨识[1]

三轴运动平台


1、激励信号的选取:

选择激励信号:必须对系统充分激励,实现从系统输出信号中获取尽可能多的系统特性。因此在系统可操作区域选择尽可能多的频率值和幅值作为激励信号。

输入信号为:

  1. feedVelocity(i,1)=3500*sin(2*3.1415926535*12*0.005*Kk)...
  2. +2500*sin(2*3.1415926535*3*0.005*Kk)...
  3. +2500*sin(2*3.1415926535*0.75*0.005*Kk)...
  4. +1500*sin(2*3.1415926535*0.1875*0.005*Kk)...
  5. +10000;

此处输入图片的描述
可以看到,我采用的激励信号为多频率正弦波的线性叠加,包括12Hz、3Hz、0.75Hz、0.1875Hz。
系统采样时间:为5ms
伺服器反馈时间:为5ms
最高的频率:为12Hz,经实验采集数据得,在上述条件下,改系统不能响应更高的频率信号。

2、模型的选取

对输出数据进行适当处理(线性化),剔除均值。
此处输入图片的描述
可以利用线性化模型估计系统的模型。

相比于非线性模型而言,线性模型简单并能达到实际精度要求。
这里采用ARX模型
此处输入图片的描述
考虑白噪声或者有色噪声的不同模型原理图

3、实验步骤

1、测试系统的有效工作频带。
2、选择输入测试信号、选择辨识模型
3、控制系统初始运行在1000r/min,使得系统能够充分响应给定的输入信号。
4、获得系统的响应输出。调用matlab自带工具箱(ident)辨识离散时间序列模型。

得模型:
此处输入图片的描述
由于系统辨识参数模型算法得到的辨识模型都为离散模型,而先进控制中应用的模型却常用传递函数形式(连续模型),所以这里需要用到模型转换:

  1. num=[0.3352];
  2. den=[1 -0.6692 0 0];
  3. dsys=tf(num,den,0.005);%系统传递函数,采样时间5ms
  4. % bode(dsys,P);
  5. csys=d2c(dsys,'tustin'); %采用双线性变换
  6. [num,den]=tfdata(csys,'v');%获得s传函的分子和分母

这里采用最常用的模型转换方法---双线性变换[2]

得模型:
此处输入图片的描述
此处输入图片的描述
采用双线性变换之后,明显可以发现系统相位特性与系统的离散时间模型不一致,而系统的幅频特性在低频部分是一致的。

4、模型验证---离散时间序列模型的验证

随意改变输入信号叠加项数、幅值或频率三个参数,观察仿真模型的估计误差:
仿真原理图
此处输入图片的描述
1、改变幅值与频率
此处输入图片的描述
蓝色:实际输出
黄色:预测输出
此处输入图片的描述
横坐标:时间
纵坐标:转速
可以看出:经过模型预测的输出与实际输出的误差转速约为最大90r/min。
2、改变项数
这里只保留一项输入正弦波
此处输入图片的描述
蓝色:实际输出
黄色:预测输出
此处输入图片的描述
横坐标:时间
纵坐标:转速
可以看出:经过模型预测的输出与实际输出的误差转速约为最大100r/min。

主要参考文献:


[1] Ling T G, Rahmat M F, Husain A R, et al. System identification of electro-hydraulic actuator servo system[C]// International Conference on Mechatronics. IEEE, 2011:1-7.
[2] 方崇智,萧德云,系统辨识理论及应用,北京:清华大学出版社,2015
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注