光电探测系统扫描控制功能的实时仿真研究

(整期优先)网络出版时间:2021-11-05
/ 2

光电探测系统扫描控制功能的实时仿真研究

董兵兵 1郑国锋 2

1 中国航空工业集团公司洛阳电光设备研究所,洛阳, 471009; 2. 中国航空工业集团公司洛阳电光设备研究所,洛阳, 471009

摘要:

实时地对光电探测系统扫描控制功能进行仿真,以确定其瞄准线角度信息,对整个光电系统的仿真具有极其重要的意义。通常可以采用角速度与时间相乘的方式获取瞄准线的实时角度,但是其仿真逼真度低,无法反应光电探测系统扫描控制分系统的性能(如随动到某位置时的超调量、稳定时间等特性)。龙格-库塔方法是求解常微分方程的有效数值方法,其中的四阶龙格-库塔方法具有精度高、程序简单、计算过程稳定、易于调节步长等优点,若采用该方法对光电探测系统扫描控制分系统传递函数对应的微分方程进行求解,则可准确反映出该系统的性能。通过将该系统传递函数Simulink仿真结果与四阶龙格库塔算法计算结果进行对比,以确定这一算法的有效性。同时结合光电探测系统的典型扫描策略进行扫描路径的设计,从而可对光电探测系统扫描控制进行实时和逼真的模拟。

关键词:光电探测系统;扫描控制;实时仿真;龙格库塔法。

  1. 引言

光电探测系统在现代军事和民用领域中发挥着越来越重要的作用,扫描控制是光电探测系统的一个重要功能,因此扫描控制的实时仿真对于光电探测系统仿真至关重要。通常在已知扫描速度和随动速度的前提下,可以采用角速度与运行时间相乘的方式获取瞄准线的实时角度,但是其仿真逼真度较低,无法反应光电探测系统扫描控制分系统的某些性能(如随动到某位置时的超调量、稳定时间等特性);若采用Simulink对光电探测系统扫描控制分系统进行仿真,虽然可实现上述性能,但是由于Matlab的程序不用编译等预处理,也不生成可执行文件,程序的运行为解释运行,所以速度很慢,不能满足实时仿真的需求;

本文先将光电探测系统扫描控制分系统传递函数转换成微分方性程的形式,然后采用基于龙格库塔算法的数值积分方法对该微分方程进行实时计算(相关代码采用执行效率比较高的编程语言(如C/C++)),从而在实现仿真功能的同时保证了实时性。结合光电探测系统的典型扫描策略进行扫描路径的设计,可以对典型工作模式下瞄准线的变化进行预测;将预测值作为龙格库塔算法的输入,从而实现逼真、实时的光电探测系统扫描控制功能与性能的仿真。

  1. 基于龙格-库塔算法的数值仿真计算

  1. 基于Matlab的传递函数分析

光电探测系统一般包括方位和俯仰两个回路,本文只以方位随动回路进行研究,俯仰随动回路研究方法与此类似。若光电探测系统方位随动回路闭环传递函数为

618488179f6be_html_c1b319641fe9e436.gif

通过Simulink对该传递函数进行仿真,得到其单位阶跃响应曲线如下所示。

618488179f6be_html_24509bf8a53b1432.png

图 1控制分系统单位阶跃响应

  1. 龙格-库塔法

为了得到较高的微分方程数值解精度,龙格(Runge)和库塔(Kutta)两人先后提出用函数值f(tk,yk)的线性组合来替代f(tk,yk)的高阶导数项,既可避免计算高阶导数,又可提高数值积分精度。

设y(t)为常微分方程:

618488179f6be_html_a1a8510997e27432.gif

的解,将其在tk附近以h为变量展开为泰勒级数:

618488179f6be_html_839647fd9a0fb9aa.gif

因为:

618488179f6be_html_61a3b825fd4f9a9f.gif

618488179f6be_html_bd7851e8524aabcc.gif

于是:

618488179f6be_html_a50f7583ee708170.gif

由于各阶导数不容易计算,用下式中ki的线性组合来表示:

618488179f6be_html_c771b1ec50d4b1f5.gif

式中,r为精度阶次,bi为待定系数,由所要求的精度确定,ki用下式表示:

618488179f6be_html_2004ba2fba3396b.gif

式中,ci,aj为待定系数,j=1,2,…,i-1,一般取c1=0。

当r=1时,k1=f(tk,yk),则有:

618488179f6be_html_ccd45287dfae26a.gif

该式为欧拉公式。

当r=2时,经数学推导可得如下表达式:

618488179f6be_html_40afeed60d664615.gif

称为二阶龙格-库塔公式。由于泰勒级数展开时只取到h、h2两项,而h3以上的高阶项略去了,所以这种递推公式的截断误差正比于h3

若要进一步提高计算精度,可以将展开的泰勒级数保留到h4项。当r=4时,经数学推导可得如下表达式:

618488179f6be_html_b449e1661110c31b.gif

称为四阶龙格-库塔公式。

龙格-库塔公式的基本思想是在tk~tk+1之间,计算多个点的斜率值,将多个点的斜率值加权后作为平均斜率的近似值,这样可以得到比欧拉法与梯形法精度更高的计算公式。

  1. 基于龙格库塔算法的实时仿真计算

将传递函数转换为状态空间方程的形式,如下所示。

618488179f6be_html_5d6fa47817e21896.gif

其中

618488179f6be_html_b8eca5f9dc3e5d1a.gif

618488179f6be_html_c7e9ee93b387dddc.gif

618488179f6be_html_4633992f6ce26da6.gif

使用matlab编写程序如下。

%初值

x=[0 0 0 0]';

y=0;t=0;

%计算步长

h=0.001;

%输入

r=1;

%仿真计算

for i=1:5/h

k1=a*x+b*r;

k2=a*(x+h*k1/2)+b*r;

k3=a*(x+h*k2/2)+b*r;

k4=a*(x+h*k3)+b*r;

x=x+h*(k1+2*k2+2*k3+k4)/6;

y(i)=c*x;

t(i)=i*h;

end


plot(t, y);

grid on;

参照上述代码使用C语言编制程序,运行得到的单位阶跃响应曲线如图2所示。

618488179f6be_html_69f390df071c460b.gif

图 2数值仿真曲线

  1. 仿真对比分析

上述仿真步长为0.001s,对比图1仿真计算结果和图2基于龙格库塔的数值积分结果,误差基本都在10-13以下。

  1. 扫描路径设计

  1. 光电探测系统典型扫描路径

光电探测系统典型扫描路径如图3所示

618488179f6be_html_35868a542ef80835.gif

图 3扫描路径

图3所示扫描路径一场扫描仿真流程如图4所示。

618488179f6be_html_98c4cb52097b0cc.gif

图 4 一场扫描路径仿真流程

  1. 实时仿真实现

根据扫描路径对实时的瞄准线角度进行预测,并将预测结果作为龙格-库塔算法的输入,经计算可得到实时的瞄准线角度信息。以图3所示扫描路径为例进行实时仿真计算,扫描方位范围为60度时方位角随时间变化的曲线如图5所示。

618488179f6be_html_503c5192ca567d43.png

图 5扫描方位角变化曲线(方位范围为60度时)


  1. 结论

对比本文图1和图2,Simulink和龙格-库塔算法仿真得到的系统单位阶跃响应曲线基本一致,其超调量均约为1.65度,稳定时间约为2s。根据扫描路径对实时的瞄准线角度进行预测,然后将预测结果作为龙格库塔算法的输入,从而计算得到能反映出扫描控制分系统特性的瞄准线角度信息。采用执行效率高的C/C++语言进行设计,仿真步长为1ms,也就是说1ms之内可完成一次仿真解算,大大提高了仿真的实时性。

参考文献

  1. 韩静,朱玉龙.传递函数建模及仿真应用[J].创新与应用技术,2016

  2. 刘子儒,陈加清.龙格-库塔方法在雷达射线描迹中的应用[J].火力与指挥控制,2009