第 32 卷 第 2 期 红 外 技 术 Vol.32 No.2
2010 年 2 月 Infrared Technology Feb. 2010
基于 Visual C++和 OpenGL 的红外目标景象仿真研究
黄 迁,张 涛,吕银环,崔文楠
(中国科学院上海技术物理研究所,上海 200083)
摘要:对红外目标的红外辐射特性进行了分析计算,提出了在 Visual C++ 6.0 环境下利用 OpenGL
API 对空间目标红外辐射特性进行仿真的方法。针对假定目标给出了该目标在不同观察方向上的辐射
强度并据此生成灰度图像,并利用上海技术物理研究所自行研制的 128×128 像素电阻阵列红外景象
转换器进行了仿真实验,取得了实验结果。对红外目标的红外辐射特性仿真进行研究,为红外景象模
拟提供基础。
关键词:Visual C++;OpenGL;红外景象;红外辐射特性;仿真
中图分类号:TN216 文献标志码:A 文章编号:1001-8891(2010)02-0101-04
Research of Infrared Target Images Simulation
Based on Visual C++ and OpenGL
HUANG Qian,ZHANG Tao,LV Yin-huan,CUI Wen-nan
(Shanghai Institute of Technical Physics, Chinese Academy of Sciences, shanghai 200083, China)
Abstract:Infrared target’s radiation characteristic is analyzed and calculated, the simulation of space
target’s infrared radiation characteristic is based on Visual C++ 6.0 and OpenGL API. Based on target’s
radiant intensity, the gray images of assumed target in different observation direction are created. Simulation
experiment is done with the 128×128 pixels infrared image resistance arrays. The simulation of infrared
target’s infrared radiation characteristic is analyzed. Some basic work is done for simulation of infrared
image.
Key words:Visual C++,OpenGL,infrared image,infrared radiation characteristic,simulation
引言
由于红外辐射的一些优越特性,使得物体的红外
景象被越来越多地使用,例如在军事、航天、民用等
领域,红外景象已经被广泛应用。相应的,目前对红
外景象仿真的需求量也越来越大。红外景象仿真的一
般方法是,从红外物理和传热分析等方面入手计算出
物体的温度场分布和观察方向上的辐射通量,再利用
计算机图像技术,模拟出物体的红外景象。本文在传
统红外景象计算机模拟的基础上,利用 Visual C++
下 OpenGL 对空间目标的红外景象进行仿真,更进一
步直接使用了上海技术物理研究所开发的电阻阵列
红外景象转换器进行了仿真实验。
1 Visual C++下 OpenGL 图形仿真
SGI 公司开发,支持阴影、纹理映射、光照、动画等,
是图形硬件的一种软件接口。该接口包括了 250 个左
右的不同函数[3],可以利用这些函数在 PC 上创建高
品质、交互式的三维应用程序。OpenGL 独立于窗口
系统和操作系统,其开发的程序可以方便的在各平台
间移植。
在 Windows 环境下,OpenGL 支持 Visual C++、
Visual Basic、Boland C++、Delphi 等环境,而在 Visual
Studio 中与 OpenGL 有着紧密接口、功能强大并且代
码效率较高的 Visual C++又成为绘制 OpenGL 图形
的首选。基于 Visual C++中的 MFC 类库可方便地进
行 OpenGL 图形绘制,生成红外景象。
2 目标红外辐射特性分析计算
2.1 红外辐射影响因素分析
OpenGL(Open Graphic Library 开放图形库)由
影响目标温度分布的因素很多,以空间目标为
收稿日期:2009-12-03.
作者简介:黄迁(1983-),男,广西柳州人,博士研究生。主要研究方向为物理电子学。
101
第 32 卷 第 2 期 红 外 技 术 Vol.32 No.2
2010 年 2 月 Infrared Technology Feb. 2010
外辐射功率;εS 为面元的热辐射率;σ为斯蒂芬-波尔
兹曼常数;TS 为面元的绝对温度;εeff 为面元与内部
热交换的当量发射率;TI 表示目标内部的绝对温度;
CS 为面元表面材料的比热;mS 为面元的质量;δS 为
面元表面材料的厚度;ρS 为面元表面材料的比重;τ
为时间,单位为秒。
根据热平衡方程时,即可计算出空间目标各个面
元实时的温度。根据普朗克公式和空间目标表面的辐
射率即可得到目标表面自身的红外辐射特性。再将目
标表面的反射系数乘以外界在 7~9 μm 波段对目标的
红外辐射功率,得到目标表面反射的红外辐射功率。
将目标表面自身红外辐射功率与目标反射外界
的红外辐射功率两部分叠加,即可得到目标表面的红
外辐射特性。
3 红外目标景象仿真技术
3.1 仿真系统硬件构架
图 1 所示的是整个仿真系统硬件构架,数据主机
通过以太网,向工作主机发送目标实时的运动特征数
据。工作主机接收运动特征数据后,实时计算目标的
红外辐射特性,生成目标的红外图像,并通过以太网
将目标的图像数据发送到电阻阵列红外景象转换器
系统。电阻阵列根据收到的图像数据显示红外景象。
本文主要的工作是在工作主机上进行,完成红外目标
仿真系统的软件工作。
图 1 仿真系统的硬件构架
Fig.1 Hardware structure of simulation system
3.2 软件实现
图 2 为程序总体框图。
例,影响空间目标红外辐射特性的因素包括太阳辐
射、地球辐射、地球反照太阳辐射等,空间目标自身
的表面结构参数和温控方式也是影响因素之一。由红
外物理可知,空间中,目标与空间背景的热交换以辐
射为主。空间目标吸收各种外部辐射,自身也同时向
外辐射能量。针对空间目标的长波红外探测,并根据
探测器需要,本文模拟的是空间目标在 7~9 μm 波段
内的红外辐射特性。在 7~9 μm 波段内,空间目标表
面的最终辐射功率分为两部分,一部分是空间目标自
身在 7~9 μm 波段上的辐射,另一部分是空间目标表
面反射其它辐射体在 7~9 μm 波段的辐射。其中反射
的辐射功率主要来自地球。
1)太阳辐射
空间目标受到的太阳辐射大小与空间目标表面
与太阳矢量的夹角大小有关。目标表面法向量与太阳
矢量的夹角越小,说明太阳越接近对目标表面进行直
射,目标表面接收到的功率自然越大。在热计算时,
太阳常数取 1353 W/m2。
当空间目标运行到地球的阴影区域时,目标接收
不到太阳的直接辐射。
确定轨道、确定姿态的空间目标,其在空间运行
时本体坐标与太阳矢量的夹角以及进出地球阴影区
的时刻等数据,都可以利用 STK 软件给出。STK 全
称是 Satellite Tool Kit(卫星仿真工具包),由美国 AGI
公司开发,是航天工业中的商品化的分析软件[6]。
2)地球-大气系统的辐射
地球-大气系统在吸收太阳辐射后,转化为自身能
量,然后又以长波热辐射方式辐射到太空,这部分能
量也被空间目标接收到。在工程热计算时,将地球—
大气系统当作 250 K 绝对黑体。
3)地球-大气系统对太阳辐射的反照
地球-大气系统还会对太阳辐射进行反照。在进行
热计算时,假定地球-大气系统的反射遵循朗伯余弦定
理[1]分布,并取平均反射率 a=0.35。
2.2 空间目标红外辐射特性的求解
在定量的计算出影响空间目标红外辐射的各个
因素后,利用文献[4]中的方法,得到目标的热平衡方
程式:
S R
α
S S sun
cos
θ α
S
+
P
S earthref
+
P
α
e earth
S
T
(
4
ε σ
S eff
S
−
4
T
I
)
+
c
δ ρ
S S S S
S
⋅
+
S
T
4
=
εσ
S S
S
T
d
S
d
τ
(1)
式中:SS 为面元的面积;αS 为面元对太阳辐射的吸收
率;Rsun 为太阳常数;θS 为面元与太阳光的夹角;Pearthref
为面元接收到地球反射太阳的辐射功率;αe 为面元对
地球红外辐射的吸收率;Pearth 为面元接收到的地球红
102
图 2 软件程序总体框图
Fig.2 Software framework
第 32 卷 第 2 期 Vol.32 No.2
2010 年 2 月 黄 迁等:基于 Visual C++和 OpenGL 的红外目标景象仿真研究 Feb. 2010
3.2.1 数据接收和发送
利用 TCP 协议从数据主机接收目标的运动特征
数据。采用 TCP 协议,有利于保证可靠地接收到目标
的动力学数据及数据的完整性,便于程序对目标红外
辐射特性进行计算。具体编程时,利用集成在 MFC
类库中的 CAsyncSocket 类(异步非阻塞套接字类)
完成数据接收功能。
工作主机对电阻阵列系统发送图像数据时,将生
成的红外图像数据分成多个 UDP 数据包,发送到电
阻阵列系统板上。采用 UDP 通信,不需要建立连接,
没有数据确认和重传机制,工作主机可以直接向一个
IP 地址发送数据,保证了图像显示的实时性[5]。
3.2.2 目标红外辐射特性计算
程序数据输入包括两部分:第一部分,数据主机
通过以太网给工作主机发送的动力学数据。这部分数
据主要是一些关于目标环境和位置、姿态等实时数
据。这部分数据由数据主机实时输出。第二部分数据
是关于目标的先验数据。这部分数据包括目标的外形
参数、表面吸收率、反射率、质量等与热计算相关的
物理参数。这些参数是已知或预先设定的,可以在程
序中直接输入,不需要外部的数据主机输入。
利用 2.2 节介绍的方法,计算各个面元的热平衡
方程式。计算中,需要用到积分运算,在 VC++中,
可以根据实际模拟精度需要,设定积分步长。
求解出热平衡方程式中的各个参数后,可将方程
式变形为:
A B T
− ⋅
C
4
S d
⋅
τ
=
d
T
(2)
式中:A、B、C 均为常数,由热平衡方程式(1)中的各
个系数求出。根据目标面元的初始温度,即可求出在
小时间间隔 dτ内,面元的变化温度 dT。所以后一时
刻的面元温度 TNEW 与前一时刻温度 T 的关系:
T
NEW
= +
T
T T
d
= +
4
A B T
− ⋅
C
⋅
d
τ
(3)
TNEW 就是面元的实时温度。根据 2.2 节的介绍,
得到面元实时温度后,即可计算出目标实时的红外辐
射特性。
数据主机发送的运动特征数据:主要是一些关于
目标实时的环境数据,包括目标的位置、姿态、外部
影响红外辐射特性的实时因素等。目标各个面元的相
关参数:包括外形参数、初始温度、吸收率、反射率、
比辐射率、质量等热计算相关参数。
3.2.3 OpenGL 模拟红外景象
基于 VC++下 MFC 类库,建立红外景象的显示窗
口,便于在工作主机上监视程序生成的实时红外景象。
图 3 是 OpenGL 中场景的坐标表示,计算机屏幕
为坐标轴的 xy 平面,z 轴由计算机屏幕指向观察者。
由上坐标系可知,OpenGL 场景中的景物要能在屏幕
上显示出来,其坐标中的 z 值必须为负值[2]。
图 3 OpenGL 场景的坐标
Fig.3 Coordinate of OpenGL scene
1)OpenGL 场景设置
上海技术物理所开发的电阻阵列分辨率为 128×
128,相应地在显示程序中将 OpenGL 场景的大小设
置为 128×128。利用视见区(viewport)来限制 OpenGL
场景大小:
glViewport(0,0,width,height);
width,height 分别为 OpenGL 场景的宽度和高度
值,此处都设为 128。
除了设置好红外景象的分辨率外,还需设置红外
景象的视场大小:
gluPerspective(fovy,aspect,zNear,zFar);
fovy 是竖直方向上的视场角大小,aspect 是水平
方向视场角与竖直方向视场角大小之比,zNear 是场
景中景物最近距离,zFar 是场景中景物最远距离。
2)红外景象模拟
红外景象是灰度图像,在绘制 OpenGL 物体时,
物体表面颜色的 RGB 值都赋为同一个值,物体表面
即为灰色。在 OpenGL 中,物体灰度为 0 至 1 之间一
个值,0 为全黑、1 为全白。可根据实际绘制需要对
其进行量化,例如本文实验中,电阻阵列系统使用八
位的 DA 控制电阻阵列,因此,程序中将 OpenGL 中
的颜色单位 0 至 1 量化为 0~255 之间的整数。因此,
程序中红外景象的灰度值量化为 0~255,0 表示全暗、
255 表示最亮。
通过计算好的目标各个面元在观察方向上的辐
射强度 J,对各个面元表面灰度进行赋值,即可得到
模拟的红外景象。
图 4 就是工作机利用 OpenGL 模拟出来的假定目
标的红外景象。由图可见在各个时刻,由于目标的各
个面元由于在距离、相对观察者的姿态、实时温度等
的不同,其表面红外辐射特性是一直变化的,相应的
图像灰度也是变化的。
OpenGL 使用双缓存技术,程序中,可以方便的
将图像缓存中的数据读到内存中。在将内存中的图像
103
第 32 卷 第 2 期 红 外 技 术 Vol.32 No.2
2010 年 2 月 Infrared Technology Feb. 2010
数据打包为 UDP 数据包,发送给电阻阵列系统。
5 结语
图 4 OpenGL 模拟的红外目标
Fig.4 Infrared target simulated in OpenGL scene
4 仿真结果
电阻阵列红外景象转化系统接收红外景象数据
的 UDP 包后,将红外景象在电阻阵列上进行显示。
电阻阵列发射的光谱范围是 2.5~14 μm,利用美
国 FLIR 公司热像仪在 8~12 μm 波段拍摄电阻阵列所
显示的红外图像如 5 所示。
本文采用基于 Visual C++环境下利用 OpenGL
库,对空间目标的红外辐射特性进行图形仿真的方法。
根据传热学规律自建模型,从原理上给出系统实现,
模型复杂[7]。Visual C++代码的可修改性与移植性较
强,程序扩展性好,用文中热计算的方法,可以方便
的改变外界环境变量、目标的各类参数以适应不同的
模拟需要。得到的图像,可以作为系统测试图像源。
参考文献:
[1] 张幼文. 红外光学工程[M]. 上海: 上海科学技术出版社 1982.
[2] Edward Angel. OpenGL 程序设计指南(第二版)[M]. 北京: 清华大
学出版社 2005.
[3] Dave Shreiner. OpenGL 编程指南(第五版)[M]. 北京: 机械工业出版
社 2006.
[4] 向诗红. 空间低温目标红外辐射特性研究[D]. 中科院上海技术物理
研究所, 2007.
[5] 孙鑫, 余安萍. VC++深入详解[M]. 北京: 电子工业出版社 2006.
[6] 杨颖, 王琦. STK 在计算机仿真中的应用[M]. 北京: 国防工业出版社
2005.
[7] 马丙辰, 谌海新. 红外目标仿真的两种热源模型比较与分析[J]. 红外
技术, 2004, 26(6): 79-82.
图 5 电阻阵列红外景象转换器显示的红外目标
Fig.5 Infrared target showed by infrared image resistance arrays
104