系统间电磁兼容性分析仿真效率探讨

2022-06-07 07:42李建平刘艳洁
数字通信世界 2022年5期
关键词:损耗效率语言

李建平,王 坦,刘艳洁

(国家无线电监测中心陕西监测站,陕西 西安 712000)

0 引言

电磁兼容性(EMC)是指设备或者系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的能力。国际电工委员会标准IEC对电磁兼容的定义是:系统或设备在所处的电磁环境中能正常工作,同时不对其他系统和设备造成干扰。EMC可以分为设备间的和系统间的。系统间的EMC分析主要是指两种业务系统(如IMT系统和射电天文系统)之间的兼容问题,研究的目标是获取两种业务系统能够共存的参数。作为无线电管理部门,日常工作涉及的EMC分析主要是指系统间的EMC分析,下文所涉及的EMC分析均指是的系统间的。

Matlab[1]是数值计算领域的主流工具,其提供了大量的数值计算模块和丰富的数据显示模式,便于用户快速进行算法研究和科学建模仿真,而且由于拥有友好的工作平台和简单易用的编程语言,因此很快成为EMC分析最常用工具。但是在实际工作中,常常会遇到比较复杂的EMC分析场景,这种场景的仿真计算量很大,在使用Matlab仿真时,程序的耗时特别长,极大地影响了EMC分析工作的效率。

为了解决上述问题,笔者分析了Matlab运行效率低的原因主要是由Matlab属于解释器语言的性质造成的,这种性质决定了Matlab语言自身运行效率不高。因此,笔者想到平时使用比较多的C++语言,该编程语言属于编译性语言,自身运行效率很高,是否可以将C++语言用于EMC分析以此来提高分析效率以及C++语言在EMC分析使用中是否会遇到新的问题,这是本文要讨论的两个主要内容。

本文的主要思路是,以EMC分析中很重要的一个环节,电波传播损耗计算为切入点,用Matlab和C++分别仿真一个实际的传播模型ITU-R P.2108,然后对比两种实现方式在仿真效率上的区别以及C++在实现仿真过程中遇到的问题,最后做出总结。

1 介绍ITU-R P.2108传播模型

ITU-R P.2108传播模型[2]是国际电联以建议书的形式推出的,基主要内容介绍了30 MHz~100 GHz频率范围内通过地物模型估算损耗的多种方法。地物指的是地球表面的各种物体,如建筑物或植被,而不是实际的地形。无线电发射机或者接收机终端周围的地物会对整体传播效果产生重大的影响,并且最靠近终端的地物对传播效果的影响最大。建议书主要给出了两种情况下的地物统计模型,一种是地面路径的统计模型,另外一种是地空路径的统计模型。下面对两种模型进行详细介绍。

地面路径统计模型的适用范围为城市和郊区地物损耗建模,具体的参数和范围如表1所示。

表1 地面路经统计模型的输入参数表

详细的计算过程如下,对地面到地面的路径,不超过p%位置的地物损耗由式(1)给出。

式中,d为总的路径长度。

地空路径统计模型使用的场景是,其中干扰路径的一端在人造地物内,另一端为地面上的卫星、飞机或其他平台,具体的参数和范围如表2所示。

表2 地空路经统计模型的输入参数表

详细的计算过程如下,对地面到机载平台或卫星的路径,不超过 位置的地物损耗由式(2)给出。

2 MATLAB与C++效率的对比

为了进行两种仿真方式效率的对比,笔者按照ITU-R P.2108传播模型的特点设置了两个场景分别进行对比。

场景一:EMC分析案例的传播方式为地面路径,并且选择ITU-R P.2108作为地物损耗的计算模型。频率为4.5 GHz,位置百分比为50%,仿真中的距离d为一个可变参数,仿真变化范围为0.25~100 km,并且假设i为变化间隔,改变i就可以实现对1次仿真循环次数的变化。

场景二:EMC分析案例中的传播方式为地空路径,并且选择P.2108作为地物损耗的计算模型。频率为25 GHz,位置百分比为50%,仿真中的仰角θ为一个可变参数,仿真变化范围为0°~90°,并且假设j为变化间隔,改变j就可以实现对1次仿真循环次数的变化。

仿真实验中采用的i5-4200的双核处理器,内存为8 GB,操作系统为Windows7,结果如表3和表4所示。

表3 场景一仿真计算结果表

表4 场景二仿真计算结果表

仿真结果分析:从场景一和场景二的仿真计算结果表可以看出,当仿真循环次数不大时,Matlab和C++耗时差不多;随着仿真循环次数的增加,耗时的差距越来越明显,当循环次数到100 000级别时,Matlab耗时差不多是C++耗时的3倍之多。因此,在仿真量较大时,C++语言能够明显提升EMC仿真效率,节省EMC仿真时间。

3 C++实现仿真过程的问题

假设,随机变量X服从位置参数 、尺度参数 的概率分布,并且其概率密度函数为

则这个随机变量就称为正态随机变量,正态随机变量服从的分布就称为正态分布,记作。

Q函数又称为标准正态分布的右尾函数

因为

所以

问题转化为求解标准正态分布函数的反函数。标准正态分布函数的反函数没法用简单的公式表示,因此工程上经常采用有理近似的方法求解,下面介绍求解过程[4]。

step1:初始化常量两个数值常量LOW,HIGH以及4个系数数组分别是数组a,b,c,d,p为输入参数,q,r定位为临时变量;

step2:如果p<0或者p>1,返回错误,程序结束;否则进入step3;

step3:如果p==0 返回-∞,程序结束;否则进入step4;

step4:如果p==1 返回∞,程序结束;否则进入step5;

step5:如果p

step6:如果p>HIGH, q=sqrt(-2*log(1-p)),返回-(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q +c[4]) * q + c[5]) /((((d[0] * q + d[1]) * q + d[2]) * q +d[3]) * q + 1),程序结束;否则进入step7;

step7:q=p-0.5,r=q*q,返回(((((a[0] * r + a[1]) * r+ a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q /(((((b[0] *r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1),程序结束。

上述step1~step7伪代码详细介绍了标准正态分布函数的反函数求解过程,进而可以求解出函数。

4 结束语

本文通过采用Matlab和C++语言对I T U-R P.2108传播模型两种场景的模拟仿真实现,统计对比不同仿真次数所用的时间,结果表明,C++语言在实现EMC仿真过程中确实能够提高运行效率,节约仿真时间。

本文最后还介绍了C++在实现EMC仿真过程中遇到的难点问题以及解决方案,通过对C++仿真过程中问题的介绍可以看出,虽然C++语言运行效率比较高,但是由于自身的函数库没有Matlab完善,所以在仿真编程过程中开发效率不高,对于开发人员技术水平要求较高。所以,在日常的EMC仿真分析的场景中,应该根据仿真场景的复杂程度和编程开发人员的技术水平选择合适的仿真工具以提高仿真效率,节约仿真时间。■

猜你喜欢
损耗效率语言
多工况下永磁电机损耗研究分析
三电平ANPC变流器损耗平衡的SVPWM策略
提升朗读教学效率的几点思考
注意实验拓展,提高复习效率
语言是刀
定制私家影院系统中的传输损耗(上)
让语言描写摇曳多姿
我有我语言
跟踪导练(一)2
施工用变压器损耗分析