专利名称:基于gpu计算的自适应光学变形镜的闭环控制方法
技术领域:
本发明涉及对可见光相机进行调光控制的方法,特别是一种应用于自适 应光学变形镜的闭环控制方法。
背景技术:
自适应光学的变形镜的闭环控制由于控制频率需要达到1000HZ,目前用 常规计算的CPU来运算很难达到要求,而如果用可编程逻辑芯片(FPGA)自 做板卡,那么一块板卡上固化的算法很难再进行扩展,而且开发周期长,成 本高,在算法调试过程中,要经常对算法进行修改,于是用FPGA自做板卡将 变成非常的昂贵与低效。
发明内容
本发明的目的是为解决目前在自适应光学的变形镜的闭环控制方法存在 的上述技术问题,提出一种基于GPU计算的自适应光学变形镜的闭环控制方 法,既可以克服过去方法的高费用、低效率,又可以便于试验调试、升级、 维护、二次开发。
本发明的技术方案是根据存储模块提供的图像信息,在主控模块中对可 见光相机进行调光控制,包括以下步骤
a. 变形镜对光波整形;
b. 哈特曼探测器接收整形后的光波并得到哈特曼图像;
c. 哈特曼图像经计算机内存传入显卡的显存内;
d. GPU把显存内的该哈特曼图像进行分割,并计算出各个分割中的灰度 重心;e. 根据哈特曼图像和它上面的各个分割中的灰度重心计算出波前倾斜向
f. 根据波前倾斜向量算出zernike多项式系数;
g. 根据zernike多项式系数计算出变形镜促动器的控制向量;
h. 用变形镜促动器的控制向量控制变形镜。
在原系统的基础上,把所有运算全部放置到GPU (图形处理单元)中进 行,既达到了用CPU控制难以达到的控制频率,又可以便于试验调试、升级、 维护、二次开发。
本发明基于GPU计算的自适应光学变形镜闭环控制的方法,具有既可以 克服过去方法的高费用、低效率,又可以便于试验调试、升级、维护、二次 开发的优点。
图1为本发明自适应光学变形镜的闭环控制方法系统组成示意图2为本发明方法控制程序流程示意图3为本发明方法计算过程的数据流示意图。
具体实施例方式
结合以下实施例对本发明作进一步详细说明。
如图l所示,本发明方法自适应光学变形镜的闭环控制系统由变形镜, 哈特曼探测器,基于GPU的计算模块组成。在Microsoft Visual Studio 2005 编程环境下,利用CUDA语言进行编程,运行环境为PIII500以上,内存大于 256MB,硬盘大于40GB并装有英伟达(NVIDIA)公司生产的具有G92或更高 版本核心的显卡的计算机。
本发明基于GPU计算的自适应光学变形镜的闭环控制方法,按以下步骤 实现
在初始化过程中,根据之前测得的单位Zernike多项式的波前斜率矩B通过下式算出M=[BTB]—'BT ,并把系数矩阵M和变形镜控制电压的对应矩阵C 存入显存。
在高频控制过程的每个控制周期中,按以下歩骤实现对自适应光学变形 镜的闭环控制
a. 变形镜对光波整形,变形镜为12X12的阵列;
b. 哈特曼探测器接收整形后的光波并得到哈特曼图像;
c. 哈特曼图像经计算机内存传入显卡的显存内;
d. GPU把显存内的该哈特曼图像进行分割,哈特曼图被分割成12X12个 小格子;
e. 求出各个区域的图像质心的偏移量,来构造波前倾斜向量y,在GPU中 运算的过程为了提高运算速度,需要把一个大问题分成一个个相对独立的小 块,然后利用GPU的并行运算的特点来进行同时处理,对哈特曼图像分割成 的这12X12的小格子的质心运算正是可以利用GPU的这个特点快速运算,把
每个小格子的质心运算分配到单独一个流处理器上进行;
f. 计算"=似?,得到35个zernike多项式系数a,其中M是前面初始
化过程中得到的系数矩阵;
g. 计算v = Cw,得到变形镜促动器的控制向量v,其中,a是步骤f得 到的35个zernike多项式系数,C是初始化过程中存入显存的变形镜控制电 压的对应矩阵,注意对于步骤f和g,因为高频控制对运算时间的苛刻,用 普通的CPU运算根本就达到不了 IOOOHZ的控制频率,所以,我们用显卡的硬
件来直接实现矩阵的运算;
h. 把计算得到的v传入计算机内存,再从内存传到变形镜的促动器控制 器上去,实现对变形镜的控制。
在基于GPU的计算模块中,数据流在设备之间的传递如图2所示,在一
个控制周期内,首先,由数据流1把一幅哈特曼图从图1中模块2传进计算机的内存,然后通过数据流2,到达计算机显卡的显存中,这是因为GPU对
显存的访问速度远远大于对内存的访问速度,数据流3便是GPU对显存中的 数据访问,再把经过GPU处理好的数据通过数据流4存放在显存上,最后当 当前控制周期内全部控制用数据计算完毕后,再把计算结果(控制数据)通 过数据流5移交给计算机内存,然后再通过数据流6,把控制数据传到变形镜 的促动器上去。
计算过程如图3所示,在一个控制周期内,首先,程序先是把通过与显 存的数据通信接口把一幅哈特曼图读到计算程序内,这个过程对应图2的数 据流3,并根据该哈特曼图计算出波前倾斜向量y;接着用公式a = [BTB]—、Ty 算出zernike多项式系数a,其中B是单位Zernike多项式的波前斜率矩阵; 然后在根据公式^^C.a得到变形镜促动器的控制向量v,其中C是Zernike 系数与控制电压的对应矩阵;最后再把计算得到的v通过与显存通信的接口 传入显存,这个过程对应图2的数据流4。
权利要求
1. 一种基于GPU计算的自适应光学变形镜的闭环控制方法,其特征在于包括以下步骤a. 变形镜对光波整形;b. 哈特曼探测器接收整形后的光波并得到哈特曼图像;c. 哈特曼图像经计算机内存传入显卡的显存内;d. GPU把显存内的该哈特曼图像进行分割,并计算出各个分割中的灰度重心;e. 根据哈特曼图像和它上面的各个分割中的灰度重心计算出波前倾斜向量;f. 根据波前倾斜向量算出zernike多项式系数;g. 根据zernike多项式系数计算出变形镜促动器的控制向量;h. 用变形镜促动器的控制向量控制变形镜。
全文摘要
本发明涉及一种基于GPU计算的自适应光学变形镜的闭环控制方法,包括以下步骤变形镜对光波整形;哈特曼探测器接收整形后的光波并得到哈特曼图像;哈特曼图像经计算机内存传入显卡的显存内;GPU把显存内的该哈特曼图像进行分割,并计算出各个分割中的灰度重心;根据哈特曼图像和它上面的各个分割中的灰度重心计算出波前倾斜向量;根据波前倾斜向量算出zernike多项式系数;根据zernike多项式系数计算出变形镜促动器的控制向量;用变形镜促动器的控制向量控制变形镜。本发明在原系统的基础上,把所有运算全部放置到GPU中进行,既达到了用CPU控制难以达到的控制频率,又可以便于试验调试、升级、维护、二次开发。
文档编号G02B26/00GK101441322SQ20081018762
公开日2009年5月27日 申请日期2008年12月29日 优先权日2008年12月29日
发明者吴元昊, 杨轻云, 斌 王, 王鸣浩, 贾建禄, 赵金宇 申请人:中国科学院长春光学精密机械与物理研究所