发明名称 一种电磁场强度实时可视化方法
摘要 本发明涉及一种电磁场强度实时可视化方法,采集的电磁场强度数据利用八叉树存储结构进行存储管理,根据需要选择进行标量可视化或者矢量可视化,选择静态的图形图像或动画方式可视电磁场,采用OpenGL或DirectX作为3D程序接口来实现图形的绘制和渲染;按细节层次读取数据或采用统一的数据格式确定所需渲染到图形处理单元的命令和数据并渲染至显示屏;通过更新渲染数据,最终达到动态地实时电磁场可视化的效果。采用本发明方法,提高了电磁场强度实时可视化的处理效率和满足了电磁场可视化方式的多样性的要求。本系统在普通PC机上即可以实现,降低了系统对高性能硬件的依赖性,同时也拓宽了电磁可视化应用的普遍性。
申请公布号 CN101241603B 申请公布日期 2010.06.09
申请号 CN200810044919.5 申请日期 2008.03.10
申请人 电子科技大学 发明人 陈雷霆;白忠建;何明耘;崔金钟;蔡洪斌
分类号 G06T15/00(2006.01)I;G01R29/08(2006.01)I 主分类号 G06T15/00(2006.01)I
代理机构 成都九鼎天元知识产权代理有限公司 51214 代理人 彭立琼;刘雪莲
主权项 一种电磁场强度实时可视化方法,其特征在于:包括如下步骤:步骤1:电磁场强度数据重构;步骤1.1:电磁场强度数据采集:由传感器实时采集得到离散点形式的空间电磁场强度数据;采集的数据集中在电磁场发射源附近;电磁场强度数据由电磁场检测器实时传输;步骤1.2:数据存储;采用原始线性表形式存储电磁场强度数据;每个存储单元的形式为P’(x,y,z,r,E);其中,x,y,z表示采集的电磁场数据点的中心空间坐标,r为该电磁场强度代表区域的空间半径;E表示该点的电磁场强度数据;步骤2:可视化映射;步骤2.1:数据管理:从原始的线性表中依次读取每个存储单元的数据;对电磁场强度数据进行空间分块;采用八叉树形式存储;每个非叶子节点存储指向自身子空间节点的8个指针;每个叶子节点按电磁场存储单元形式P(x,y,z,E)存储自身空间的电磁场强度;每个叶子节点的影响范围由R/2L实时计算,R为根结点的影响范围半径,L为该叶子节点所在的层数;对于没有采集到数据的叶子节点,用以下公式计算该节点的电磁场强度: <mrow> <mi>E</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mrow> <mi></mi> <mo>&Sum;</mo> </mrow> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>E</mi> <mi>i</mi> </msub> <mo>/</mo> <mn>2</mn> <mi>&pi;</mi> <msub> <mi>D</mi> <mi>i</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.1</mn> <mo>)</mo> </mrow> </mrow>n为与该没有采集到数据的叶子节点的区域相邻的已计算出电磁场强度的叶子节点数目,Ei和Di分别为这些节点的电磁场强度和与需要计算的叶子节点的中心距离;步骤2.2:可视化区域选择:根据可视化区域的大小和步骤2.1的计算结果,确定每个八叉树的叶子是否在可视化区域内,裁剪掉不在该区域内的叶子节点;对在可视化区域内的八叉树节点进行统一精度细分,确保每个空间单元有中心电磁场强度;对于没有计算电磁场强度的叶子节点继续采用公式2.1进行计算;步骤2.3:数据类型处理:步骤2.3.1:将电磁场强度数据看作标量数据;步骤2.3.2:根据步骤2.3.1的电磁场强度标量数据,采用计算空间中计算势能场的步骤计算出电磁场矢量数据,步骤如下:步骤2.3.2.1对空间中的每一个电磁场绘制单元计算该电磁场绘制单元和与其相邻的单元的电磁场标量强度差Eid和距离矢量差Vid;步骤2.3.2.2利用如下公式计算该处电磁场的矢量方向 <mrow> <msup> <mi>E</mi> <mi>d</mi> </msup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sum;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mi>E</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mo>&CenterDot;</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.2</mn> <mo>)</mo> </mrow> </mrow>步骤2.3.2.3将Ed单位化,并乘以该点的电磁场强度E,得到该单元的电磁场矢量强度E: <mrow> <mi>E</mi> <mo>=</mo> <mi>E</mi> <mo>&CenterDot;</mo> <mfrac> <msup> <mi>E</mi> <mi>d</mi> </msup> <mrow> <mo>|</mo> <msup> <mi>E</mi> <mi>d</mi> </msup> <mo>|</mo> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.3</mn> <mo>)</mo> </mrow> </mrow>步骤2.3.2.4判断是否已经将空间中的每个电磁场绘制单元计算完毕,如果存在未计算单元,则对其按以上步骤2.3.2.1~步骤2.3.2.3进行;步骤2.4:可视化方案选择:选择静态的图形图像或动画方式可视电磁场;所述静态图形图像方式采用线框球或等值面或图示符或流线或粒子轨迹形式;所述动画方式采用粒子系统生成动画方式表现电磁场的发射、传播过程,生成粒子系统某瞬间画面的步骤如下:生成新的粒子并将所生成的新的粒子加入系统中;赋予每一新粒子一组属性,所述一组属性包括位置、速度、颜色和生命周期;根据粒子的动态属性对粒子进行移动和变换;删除已经超过其生命周期的粒子;绘制并显示由有生命的粒子组成的图形;步骤3:电磁场绘制显示:步骤3.1:渲染方式:采用OpenGL作为3D程序接口来实现图形的绘制和渲染;步骤3.2:观察角度方式选择:用户对指定的可视化区域通过调整三维空间中的虚拟相机的位置、朝向、远近平面,选择不同的角度进行观察;步骤3.3:采用统一的消息格式确定所需渲染到图形处理单元的命令和数据;步骤4:由图形处理单元渲染至显示屏:步骤4.1根据各个区域中的电磁场强弱采用不同的显示方式,完成对电磁场数据渲染;并确定是否重新更新采集数据以实现下一帧的渲染;步骤4.2:如需要数据更新:设置计时器激活传感器实时更新采集数据以实现下一帧的渲染;计时器激活传感器按下述第一种方式或者第二种方式进行:第一种方式:当每一帧数据渲染完成后,计时器根据用户指令发送采集数据消息,立即激活传感器获取下一帧数据,并执行步骤1-步骤4;第二种方式:当计时器超过时限,计时器向传感器发送采集数据消息,提示传感器更新并重新采集数据,并执行步骤1-步骤4。
地址 611731 四川省成都市高新区(西区)西源大道2006号