发明内容
为了克服现有系统不稳定或非实时操作、控制精度低等不足,本发明提供一种基于RTX(Real Time Extension)的深度模拟器实时控制系统,解决了传统深度模拟器实时性和通用性的矛盾,提高了闭环控制回路的控制精度。
本发明解决其技术问题所采用的技术方案是:深度模拟器包括控制系统和液压系统,其中控制系统包括工业控制计算机、PCI-1716数据采集卡和PCI-1723数据输出卡,液压系统包括液压泵站、电液伺服阀和双量程压力传感器。
液压泵站提供稳定的油源给电液伺服阀的压力腔;使压力腔产生相应的压力,压力分为两路,一路加载到用户传感器上,另一路加载到双量程压力传感器上,所述的双量程压力传感器包括0-10MPa压力传感器和0-2MPa压力传感器,PCI-1716是16位16通道多功能数据采集卡,其中0通道与0-10MPa压力传感器相连,用于获取大量程传感器反馈的代表深度的电压信号,2通道与0-2MPa压力传感器相连,用于获取小量程传感器反馈代表深度的电压信号;将PCI-1716采集的双量程传感器反馈电压信号输送到工业控制计算机,由其完成信号转换、双量程自动切换和卡尔曼滤波,将反馈电压信号转化为压强信号作为系统反馈值,工业控制计算机接收仿真主机传递来的数字深度信号转换为压强信号,作为深度模拟器系统的参考输入值,由工业控制计算机求解误差量并进行PID运算,将运算后代表深度的数值量转换为电压信号通过PCI-1723数据输出卡控制电液伺服阀的开口大小及进、出油,使工作腔产生相应的压力。
所述的PCI-1723为16位8通道数据输出卡,可输出-10~10VDC、0~20mA及4~20mA等类型信号,根据功能需求,采用-10~10VDC方式,其中0通道向液压系统的伺服阀输出控制电压信号。
本发明提供一种基于RTX的深度模拟器实时控制方法,包括以下六个步骤:
(1)实时获取仿真主机传送来的数字深度信号,并将其转换为压强信号,作为深度模拟器的参考输入;
(2)RTX实时控制模块周期性地采集与双量程传感器相连接的PCI-1716上0通道和2通道的电压信号;
(3)将PCI-1716上0通道和2通道的电压信号转换为压强信号,并进行双量程传感器压力自动切换和接力区平滑处理;
为保证系统具有大的工作范围,且在浅水时深度模拟器有很高的仿真精度,本发明采用双量程传感器自动切换反馈控制,即在浅水时用小量程传感器(0-2MPa)反馈信号,在深水时用大量程传感器(0-10MPa)反馈信号,这样理论上浅水时的测量精度将提高5倍,大大提高了整个系统的仿真精度。但如果在切换点附近数据处理不妥,系统在此点处很可能产生振荡,因此在系统设计时需解决的主要问题是选择切换区域,即接力区,并对该区域的压力值进行平滑处理。针对此问题,设计自动平滑处理算法平滑压力反馈值,以保证系统的稳定。具体方法如下:
设0-10MPa的传感器输出值经转换得到的压强值为P1,设0-2MPa的传感器输出值经转换得到的压强值为P2,P为数据处理后的压强值,则
当P2≤0MPa时,P=0;
当0MPa<P2<1.8MPa时,P=P2;
当1.8MPa≤P2<2.2MPa时,
当P2≥2.2MPa时,P=P1。
(4)采用卡尔曼滤波算法对平滑处理后的数据进行滤波处理,并将滤波后的结果作为深度模拟器的反馈信号;
由于深度模拟器各设备本身工作时引起的噪声和外界环境引起的干扰等都会对采集的信号产生影响,这样也就导致计算的结果产生误差,为此本发明采用卡尔曼滤波算法对平滑处理后的数据进行滤波处理,在每个递推周期中实现对被估计量的时间更新和测量数据更新,其中时间更新由上一步的测量数据更新结果和设计卡尔曼滤波器时的先验信息确定,量测更新则在时间更新的基础上根据实时获得的测量数据确定。具体的算法步骤为:
A.建立深度模拟器系统的数学模型
深度模拟器系统闭环传递函数为
将其转换为状态空间表达式,离散化后得到以下差分方程:
X(k+1)=φ(k)X(k)+Γω(k)
Z(k)=H(k)X(k)+ω(k)
其中X(k)为状态向量,φ(k)为状态转移矩阵,Γ(k)为噪声驱动阵,ω(k)为均值为0,方差为σ2(k)的高斯白噪声,Z(k)为系统输出变量,H(k)为观测矩阵。
B.状态一步预测
C.状态估计
D.滤波增益
E.一步预测均值方差
F.估计均方误差
给定初始值
和P
0,根据k时刻的测量值Z
k,就可递推计算得k时刻的状态估计
然后通过观测方程求出k时刻卡尔曼滤波平滑处理后
的值。
(5)求解深度模拟器参考输入与反馈之间的误差,并进行PID运算;
(6)将PID运算后的压强值转换为电压信号,并通过电液伺服阀电/液转换,使其转化为压强施加于传感器上。
本发明的有益效果是:本发明基于RTX的深度模拟器实时控制系统,满足了水下航行器半实物仿真低延时、高实时的要求;基于卡尔曼滤波算法和双量程传感器压力自动切换的平滑处理方法,减小了仿真误差,使静态精度提高到0.13%,动态频带大于10Hz,大大地提高了系统的控制精度。
下面结合附图和实施实例对本发明进一步说明。
具体实施方式
如图1所示,本发明包括控制系统和液压系统两部分,其中控制系统由工业控制计算机、PCI-1716数据采集卡和PCI-1723数据输出卡等构成;液压系统由控制台和液压泵站构成。系统的结构图如图1所示,各模块功能如下:
a)液压泵站提供稳定的油源给伺服阀的压力腔;
b)控制台包括电液伺服阀和双量程压力传感器等,主要是用于执行电信号到压力信号的转换;
c)PCI-1716是16位16通道多功能数据采集卡,其中0通道与0-10MPa压力传感器相连,用于获取大量程传感器反馈的代表深度的电压信号,2通道与0-2MPa压力传感器相连,用于获取小量程传感器反馈代表深度的电压信号;
d)PCI-1723为16位8通道数据输出卡,可输出-10~10VDC、0~20mA及4~20mA等类型信号。根据功能需求,采用-10~10VDC方式,其中0通道向液压系统的伺服阀输出控制电压信号。
e)工业控制计算机将仿真主机传递的数字深度信号转换为压强信号作为深度模拟器系统的参考输入值,将PCI-1716采集的双量程传感器反馈电压信号通过信号转换、双量程自动切换和卡尔曼滤波转化为压强信号作为系统反馈值,求解误差量并进行PID运算,将运算后代表深度的数值量转换为电压信号用于控制电液伺服阀的开口大小及进、出油,使工作腔产生相应的压力,一路经压力传感器变换反馈压强信号回送给控制系统;另一路加载到用户传感器上。
本发明所述的基于RTX的深度模拟器实时控制方法,包括以下步骤,其流程图如图2所示:
1)实时获取仿真主机传送来的数字深度信号,并将其转换为压强信号,作为深度模拟器的参考输入;
2)周期性地采集与双量程传感器相连接的PCI-1716上0通道和2通道的电压信号;
3)将PCI-1716上0通道和2通道的电压信号转换为压强信号,并双量程传感器压力自动切换和接力区平滑处理;
为保证系统具有大的工作范围,且在浅水时深度模拟器有很高的仿真精度,本发明采用双量程传感器反馈控制,即在浅水时用小量程传感器(0-2MPa)反馈信号,在深水时用大量程传感器(0-10MPa)反馈信号,这样理论上浅水时的测量精度将提高5倍,大大提高了整个系统的仿真精度。但如果在切换点附近数据处理不妥,系统在此点处极可能产生振荡,因此在系统设计时需解决的主要问题是选择切换区域,即接力区,并对该区域的压力值进行平滑处理。针对此问题,设计自动平滑处理算法平滑压力反馈值,以保证系统的稳定。具体方法如下:
设0-10MPa的传感器输出值经转换得到的压强值为P1,设0-2MPa的传感器输出值经转换得到的压强值为P2,P为数据处理后的压强值,则
当P2<0MPa时,P=0;
当0MPa<P2<1.8MPa时,P=P2;
当1.8MPa≤P2<2.2MPa时,
当P2≥2.2MPa时,P=P1。
4)采用卡尔曼滤波算法对平滑处理后的数据进行滤波处理,并将滤波后的结果作为深度模拟器的反馈信号。
由于深度模拟器各设备本身工作时引起的噪声和外界环境引起的干扰等都会对采集的信号产生影响,这样也就导致计算的结果产生误差,为此本发明采用卡尔曼滤波数据平滑处理方法,在每个递推周期中实现对被估计量的时间更新和测量数据更新,其中时间更新由上一步的测量数据更新结果和设计卡尔曼滤波器时的先验信息确定,量测更新则在时间更新的基础上根据实时获得的测量数据确定。具体的算法步骤为:
a)建立深度模拟器系统的数学模型
深度模拟器系统闭环传递函数为
将其转换为状态空间表达式,离散化后得到以下差分方程:
X(k+1)=φ(k)X(k)+Γ(k)ω(k)
Z(k)=H(k)X(k)+ω(k)
其中,X(k)为状态向量,φ(k)为状态转移矩阵,Γ(k)为噪声驱动阵,ω(k)为均值为0,方差为σ2(k)的高斯白噪声,Z(k)为系统输出变量,H(k)为观测矩阵。
b)状态一步预测
c)状态估计
d)滤波增益
e)一步预测均值方差
f)估计均方误差
给定初始值
和P
0,根据k时刻的测量值Z
k,就可递推计算得k时刻的状态估计
然后通过观测方程求出k时刻卡尔曼滤波平滑处理后
的值。
5)求解深度模拟器参考输入与反馈之间的误差,并进行PID运算;
6)将PID运算后的压强值转换为电压信号,并通过电液伺服阀电/液转换,使其转化为压强施加于传感器上。
由于深度模拟器主要是用于水下航行器的航行深度模拟,也可用作一般压力变送器的静、动态加压试验,因此对发明的深度模拟器分别进行了静态测试、动态测试和半实物仿真试验,以检验所发明装置的性能。
(1)静态测试
静态测试是计算参考输入值与深度传感器反馈信号值之间的误差,从而得到深度模拟器控制系统的控制精度。具体的测试方法是针对只使用0-10MPa的深度传感器,双量程深浅水自动切换不含接力区平滑处理和双量程深浅水切换含接力区平滑处理这三种情况,通过工业控制计算机输入给定值R,用万用表测量并记录与双量程深度传感器相连的1716板卡上0通道(与0-10MPa深度传感器相连)和2通道(与0-2MPa深度传感器相连)的电压值V1和V2,并按照转换公式将其装换为相应的压强值P1和P2,根据自动切换技术和平滑处理算法,对P1和P2进行处理得到P,求P与R之间的误差。
表1只使用0-10MPa深度传感器静态测试数据表
R(MPa) |
V1(V) |
P1(Mpa) |
P-R(MPa) |
0.05 |
0.98 |
0.0521 |
0.0021 |
0.2 |
1.04 |
0.2083 |
0.0083 |
0.5 |
1.15 |
0.4948 |
0.0052 |
1.0 |
1.34 |
0.9896 |
0.0104 |
1.5 |
1.54 |
1.5104 |
0.0104 |
2.0 |
1.73 |
2.0052 |
0.0052 |
2.5 |
1.92 |
2.5000 |
0 |
3.0 |
2.10 |
2.9688 |
0.0312 |
3.5 |
2.31 |
3.5156 |
0.0156 |
4.0 |
2.49 |
3.9844 |
0.0156 |
表2双量程传感器压力自动切换不含接力区平滑处理的静态测试数据表
R(MPa) |
V2(V) |
P2(MPa) |
V1(V) |
P1(MPa) |
P(MPa) |
P-R(MPa) |
0.03 |
1.02 |
0.0313 |
0.97 |
0.0260 |
0.0313 |
0.0013 |
0.05 |
1.06 |
0.0521 |
0.98 |
0.0521 |
0.0521 |
0.0021 |
0.1 |
1.16 |
0.1042 |
1.0 |
0.1042 |
0.1042 |
0.0042 |
0.5 |
1.92 |
0.5000 |
1.15 |
0.4948 |
0.5000 |
0 |
1.0 |
2.89 |
1.0052 |
1.34 |
0.9896 |
1.0052 |
0.0052 |
1.5 |
3.84 |
1.5000 |
1.53 |
1.4844 |
1.5000 |
0 |
1.9 |
4.61 |
1.9010 |
1.68 |
1.8750 |
1.9010 |
0.0010 |
2.0 |
4.84 |
2.0208 |
1.73 |
2.0052 |
2.0208 |
0.0208 |
2.5 |
5.02 |
2.1146 |
1.92 |
2.5000 |
2.5000 |
0 |
3.0 |
5.80 |
2.5208 |
2.11 |
2.9948 |
2.9948 |
0.0052 |
3.5 |
5.86 |
2.5521 |
2.30 |
3.4896 |
3.4896 |
0.0104 |
4.0 |
6.51 |
2.8906 |
2.50 |
4.0105 |
4.0105 |
0.0105 |
表3双量程传感器压力自动切换含接力区平滑处理的静态测试数据表
R(MPa) |
V2(V) |
P2(MPa) |
V1(V) |
P1(MPa) |
P(MPa) |
P-R(MPa) |
0.03 |
1.02 |
0.0313 |
0.97 |
0.0260 |
0.0260 |
0.0040 |
0.05 |
1.06 |
0.0521 |
0.98 |
0.0521 |
0.0521 |
0.0021 |
0.1 |
1.16 |
0.1042 |
1.0 |
0.1042 |
0.1042 |
0.0042 |
0.5 |
1.92 |
0.5000 |
1.15 |
0.4948 |
0.4948 |
0.0052 |
1.0 |
2.88 |
1.0000 |
1.34 |
0.9896 |
0.9896 |
0.0004 |
1.5 |
3.84 |
1.5000 |
1.53 |
1.4844 |
1.4844 |
0.0056 |
1.8 |
4.46 |
1.8229 |
1.65 |
1.7969 |
1.8099 |
0.0099 |
2.0 |
4.84 |
2.0208 |
1.73 |
2.0052 |
2.0130 |
0.0130 |
2.5 |
5.81 |
2.5260 |
1.92 |
2.5000 |
2.5000 |
0 |
3.0 |
6.55 |
2.9115 |
2.11 |
2.9948 |
2.9948 |
0.0052 |
3.5 |
6.54 |
2.9063 |
2.30 |
3.4896 |
3.4896 |
0.0104 |
4.0 |
6.53 |
2.9010 |
2.50 |
4.0105 |
0.0105 |
0.0105 |
对表1、2和3这三种情况的测试结果进行对比分析,并采用端点法(即最大误差与最大量程的之比)来计算系统的误差。表1为只使用0-10MPa的深度传感器时的测试结果,可以看出最大误差为0.0312MPa,按照端点法计算得此时系统的静态精度为
双量程深浅水自动切换不含接力区平滑处理时测得的结果如表2所示,可以看出系统的最大误差为0.0208MPa。采用端点法来计算此时系统精度
应用0-10MPa和0-2MPa深度传感器压力自动切换,且含平滑处理时,测得的结果如表3所示,系统的最大误差为0.013MPa,静态精度
三种情况都达到了系统所要求的技术指标,但采用双量程自动切换技术,且有平滑处理时,系统的误差是最小的。而且通过对比表1和表3可以看出浅水测试时,采用双量程自动切换技术系统的误差明显较小;对比表2和表3可以看到误差较大的区域是双量程传感器切换的接力区1.8MPa-2.2MPa,对该区域的数据进行平滑处理,减小了系统误差,系统性能得到了明显改善。
(2)动态测试
用频谱分析仪对系统进行动态测试。具体的方法是用频谱分析仪的CH1通道输出正弦信号,作为深度模拟器的输入信号,将深度模拟器的跟踪反馈信号通过1723板卡的2通道输出,与频谱分析仪的CH2通道连接。频谱分析仪信号源输出电压峰值为R×10%V,在0Hz到10Hz频宽内进行正弦扫描,观察控制软件界面的曲线跟随情况,并记录频谱分析仪内Bode图中相角和幅值。
表4深度模拟器动态频率响应测试结果
序号 |
频率(Hz) |
相角误差(°) |
幅值误差(dB) |
1 |
1 |
-2.6094 |
-0.40377 |
2 |
2.007 |
-3.3351 |
-0.50427 |
3 |
3.003 |
-4.4127 |
-0.55785 |
4 |
4.004 |
-5.5976 |
-0.61834 |
5 |
5.012 |
-6.4116 |
-0.43934 |
6 |
6.026 |
-6.9545 |
-0.34827 |
7 |
7.039 |
-7.3285 |
-0.30904 |
8 |
8.035 |
-7.647 |
-0.27561 |
9 |
9.068 |
-8.5025 |
-0.20059 |
10 |
10 |
-9.7046 |
-0.09971 |
表4为Kp=55,Ki=0.02,R=2MPa时所测量的动态频响结果。由表4可知,在1-10Hz内,相角最大误差为9.7046°,幅值最大误差为-0.61834dB,满足系统所要求的技术指标。
(3)半实物仿真试验
在半实物仿真试验中深度模拟器接收来自仿真主机发送的深度信号,并将阀后压力信号转换为相应的深度信号传递给水下航行器控制系统计算机,将仿真主机发送的深度信号与深度模拟器反馈的结果进行对比分析。
仿真主机发送的深度信号为水下航行器从-10m下潜至-100m,然后在水下100m处定深,仿真时长约30min,每隔0.1s记录一次数据,仿真实验结果如图3所示。可以看出,所设计的深度模拟器控制系统动态跟随性好,且控制精度高。