@wuqi0616
2017-07-23T10:18:01.000000Z
字数 1414
阅读 800
三轴运动平台
选择激励信号:必须对系统充分激励,实现从系统输出信号中获取尽可能多的系统特性。因此在系统可操作区域选择尽可能多的频率值和幅值作为激励信号。
输入信号为:
feedVelocity(i,1)=3500*sin(2*3.1415926535*12*0.005*Kk)...
+2500*sin(2*3.1415926535*3*0.005*Kk)...
+2500*sin(2*3.1415926535*0.75*0.005*Kk)...
+1500*sin(2*3.1415926535*0.1875*0.005*Kk)...
+10000;
可以看到,我采用的激励信号为多频率正弦波的线性叠加,包括12Hz、3Hz、0.75Hz、0.1875Hz。
系统采样时间:为5ms
伺服器反馈时间:为5ms
最高的频率:为12Hz,经实验采集数据得,在上述条件下,改系统不能响应更高的频率信号。
对输出数据进行适当处理(线性化),剔除均值。
可以利用线性化模型估计系统的模型。
相比于非线性模型而言,线性模型简单并能达到实际精度要求。
这里采用ARX模型。
![]()
考虑白噪声或者有色噪声的不同模型原理图
1、测试系统的有效工作频带。
2、选择输入测试信号、选择辨识模型
3、控制系统初始运行在1000r/min,使得系统能够充分响应给定的输入信号。
4、获得系统的响应输出。调用matlab自带工具箱(ident)辨识离散时间序列模型。
得模型:
![]()
由于系统辨识参数模型算法得到的辨识模型都为离散模型,而先进控制中应用的模型却常用传递函数形式(连续模型),所以这里需要用到模型转换:
num=[0.3352];
den=[1 -0.6692 0 0];
dsys=tf(num,den,0.005);%系统传递函数,采样时间5ms
% bode(dsys,P);
csys=d2c(dsys,'tustin'); %采用双线性变换
[num,den]=tfdata(csys,'v');%获得s传函的分子和分母
这里采用最常用的模型转换方法---双线性变换[2]
得模型:
![]()
![]()
采用双线性变换之后,明显可以发现系统相位特性与系统的离散时间模型不一致,而系统的幅频特性在低频部分是一致的。
随意改变输入信号叠加项数、幅值或频率三个参数,观察仿真模型的估计误差:
仿真原理图
1、改变幅值与频率
蓝色:实际输出
黄色:预测输出
横坐标:时间
纵坐标:转速
可以看出:经过模型预测的输出与实际输出的误差转速约为最大90r/min。
2、改变项数
这里只保留一项输入正弦波
蓝色:实际输出
黄色:预测输出
横坐标:时间
纵坐标:转速
可以看出:经过模型预测的输出与实际输出的误差转速约为最大100r/min。