电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

FPGA仿真范文

来源:漫步者作者:开心麻花2025-11-191

FPGA仿真范文(精选7篇)

FPGA仿真 第1篇

为了降低基带信号吞吐速率的运算压力,制导雷达系统一般会将中频信号下变频到基带信号,而不是直接处理。本文利用MATLAB软件和FPGA芯片实现数字下变频功能。

1 带通信号采样理论

设一个频率带限信号x(t),其频带限制在(fL,fH)内,如果其采样速率fs满足下式:

fL是信号下限频率,fH是信号上限频率,fs是采样速率(本文频率单位:Hz)。式(1)中,n取满足fs≥2(fH-fL)的最大正整数(0,1,2,),则用fs进行等间隔采样所得到的信号采样值x(n TS)能准确地确定原信号x(t)。式(1)中用带通信号的中心频率f0和频带宽度B也可用式(2)表示:

必须指出以上理论的适用范围:只允许在其中一个频带上存在信号,而不允许在不同的频带上同时存在多种信号,否则将会引起多信号混叠。

2 DDC结构基本原理和MATLAB仿真

一般的数字下变频功能结构如图1所示,其中包括数控振荡器(Numerically Controlled Oscillator,NCO)、混频器模块以及抽取和滤波模块。图1架构中,NCO产生正交的正余弦本振信号输入到混频器,与A/D高速采样得到的数字中频信号进行乘积,完成混频后的信号输入到滤波器以滤除镜频分量和其他干扰分量,最后依据后端速率需求进行抽取。收取滤波器可以采用滤波器(Finite Impulse Response,FIR)、半带(Half Belt,HB)、积分梳状滤波器(Cascade Integrator Comb,CIC)组合来实现。

数字下变频MATLAB仿真流程有产生激励中频信号、数字正交分解、滤波和抽取等模块。数字下变频就是将感兴趣信号分离和提取出来,并将采样速率降到较低速率,送到基带信号处理单元。

本仿真案例中频模拟信号带宽5MHz的线性调频信号,中心频率50 MHz,中采样频率40MHz。具体仿真算法是,中频模拟信号被管理距离(Administrative Distance,AD)进行虚拟高速采样,数字化后的中频信号与NCO(直接产生数字余弦信号和正弦信号)产生的本振信号进行混频。混频后则完成了频谱搬移功能,由于镜频分量干扰,通过低通滤波和抽取得到I(n)和Q(n)基带信号。中频信号如图2所示,滤波后基带信号如图3所示。图3验证了通过MATLAB仿真将其搬移到基带的正确性。

3 数字下变频设计与FPGA实现

本设计选用国产某芯片(Pinto Pin仿Xilinx公司QPro Virtex_II XQR2V3000芯片)进行开发,结合MATLAB预先对滤波器指标进行仿真,然后再Xilinx公司的集成开发环境ISE 10.1中进行verilog语言编程,并结合Mentor子公司Model Tech出品的Modelsim进行仿真和验证。

本案例中频模拟信号带宽5MHz,根据DDC原理可知,混频系数根据实际情况,中采样频率(fs)、中心频率(f0)依据以下公式计算得出:根据本设计接收机的信号参数,中频频率为50MHz,采样频率为40MHz,即:

对原始信号才乘50Mhz的纯净信号cos(50MHz)、sin(50MHz)信号,I路混频系数:

Q路混频系数:

由混频系数可知,Q路的奇数部分都为0,只余下偶数部分,I路的偶数部分都为0,只余下奇数部分,这时可以将抽取提前,相当于将输入数据的偶数部分送给Q路,将输入数据的奇数部分送给I路,原来Q路的低通滤波器只剩下偶数部分,I路的低通滤波器只剩下奇数部分。鉴于上述分析,在FPGA实现正交分解时可以不使用直接数字式频率合成器(Direct Digital Synthesizer,DDS)专用IP核,我们先2倍抽取,再利用乘法器1,﹣1,循环项乘,以便节约大量硬件资源。正交分解之后通过半带滤波器,最后依据后端数字信号处理单元需求进行数据抽取操作。依据上述分析,基于FPGA的数字下变频流程图如图4所示。

混频后的零中频信号带宽为5M,设计半带HB滤波器系数并将其量化成18位,利用ISE套件的IPCORE把生成好的系数存入coe文件中。FIR滤波器系数理论上越高越好,但考虑到性价比,综合FPGA资源有限,设计采用121阶FIR。本案例利用verilog语言设计FPGA程序,首先产生激励中频信号(由MATLAB产生),如图5 din图形所示。经过FIFO奇偶抽取和乘法器循环处理,如图5 odd_out_buff和even_out_buff图形所示,实现了正交分解功能。IQ两路数据再经过半带滤波器,滤除镜像分量保留基带信号,如图5 idata和qdata图形所示,经过与MATLAB数据结果对比,标明FPGA程序产生了正确的基带信号数据。由于后端数字信号处理单元数据速率的需求,对基带信号进行两倍抽取。

最后在国产FPGA上验证了结果,利用安捷伦的8267D信号源,产生了一个带宽5MHz的中频(50MHz)信号输入给AD芯片,AD将采样信号直接送给FPGA进行数字下变频处理,产生了I、Q正交两路5MHz的基带信号。

4 结语

软件无线电是数字化新技术的基础,更是一种高稳定性的产品设计思路,随着新一代超高速采样AD芯片的惠及大众,以及高端FPGA价格的回归,软件无线电在新一代无线系统中将得到广泛的应用。本论文首先介绍了软件无线电的基础理论,即带通采样定理以及它的适用范围。然后利用MATLAB对数字下变频理论进行了规范的仿真,最后利用verilog语言编程实现数字下变频(DDC)功能。由于FPGA实现速度快,而且设计和修改灵活性强,可满足大部分通信系统中对数字下变频性能的要求,因此具备广泛推广的实用价值。

参考文献

[1]楼才义,徐建良,杨小牛.软件无线电原理与应用(2版)[M].北京:电子工业出版社,2014.

[2]徐江山,陈振华,金鑫,等.一种X波段船舶导航雷达射频接收机设计[J].现代雷达,2016(4):68-72.

FPGA仿真 第2篇

正交信号发生器是电子技术领域中最基本的电子仪器,广泛应用于通信系统、电子对抗、电子测量、科研教学等领域。随着电子信息技术的发展,对其性能要求也越高。如要求频率及相位可灵活调整且分辨率高,能够实现频率及相位的快速切换。通常正交信号发生器的FPGA实现采用DDS(直接数字频率合成)技术,在两块ROM查找表中分别放置一对正交信号,虽然可以输出一组完全正交的信号,但其主要用于精度要求不是很高的场合[1],如果精度要求高,查找表就很大,相应的存储器容量也要很大,使系统的运行速度受到限制,不适合现代通信系统的发展。

本文基于CORDIC(Coordinate Rotation Digital Computer)算法,研究正交信号发生器的FPGA实现方法。它不仅能够节省大量的FPGA逻辑资源,而且能很好地兼顾速度、精度、简单、高效等方面。

1 CORDIC算法原理及结构

CORDIC算法原理:CORDIC算法[2]是由J.Volder于1959年提出的。该算法适用于解决一些三角学的问题,如平面坐标的旋转和直角坐标到极坐标的转换等。CORDIC算法的基本思想是通过一系列固定的、与运算基数有关的角度的不断偏摆以逼近所需的旋转角度。从广义上讲,CORDIC方法就是一种数值计算的逼近方法。该算法实现三角函数的基本原理如下:

设初始向量(x0,y0)逆时针旋转角度θ后得到向量(xn,yn),则:

经变换为:

为了避免复杂的乘法运算,用一系列微旋转来处理,第i次旋转可表示为:

其中,θi表示第i次旋转的角度,并且tanθi=2-i;zi表示第i次旋转后与目标角度的差;δi表示向量的旋转方向,由zi的符号位来决定,即δi=sign(zi)。为每一级的校正因子,也就是每一级旋转时向量模长发生的变化,对于字长一定的运算,总的校正因子是一个常数。迭代n次(n→∞)后可以得到如下结果:

当给定的初始输入数据为x0=1/k,y0=0时,z0=θ,则输出为:

由上可知:xn,yn分别为输入角θ的余弦和正弦值,故基于CORDIC算法可产生正交函数。

2 正交信号发生器系统结构

正交信号发生器系统结构如图1所示。在该系统结构图中,CORDIC计算单元是核心。CORDIC计算单元的输入由相位加法器提供。相位加法器不间断地产生角度值,由CORDIC计算单元计算出相应的三角函数值,即可在其输出端产生连续的数字正交信号。其中F为频率控制字,P为相位控制字,A为幅度控制字。

设时钟信号频率为fc,输出频率为fo,相位累加器的字长为N,则2N就相当于2πrad,N位中的最低有效位相当于2π/2Nrad,F对应的相位为F×2π/2Nrad,完成一个周期的正弦/余弦波输出需要2N/F个参考时钟周期。所以输出正交信号的频率为[3]:

当F=1时,输出频率最低,即正交信号发生器的频率分辨率为:

3 正交信号发生器的FPGA设计及仿真验证

DSP Builder是美国Altera公司推出的一个面向DSP开发的系统级工具,作为Matlab的一个Simulink工具箱,可以帮助设计者完成基于FPGA的DSP系统设计的整个流程。更为重要的是基于Simulink平台利用DSP Builder库进行FPGA设计有两大优点:(1)能利用DSP Builder库的HDL Import模块将HDL文本设计转变成为DSP Builder元件[4],在系统的模型设计中使用,为系统的FPGA设计提供很大的方便。(2)Simulink工具箱有虚拟仪器,使仿真更直观、方便。因此,正交信号发生器的设计采用VHDL文本和Simulink模型图设计相结合的方法。

3.1 CORDIC算法模块VHDL设计

由CORDIC算法原理可知,输出信号的精度只与CORDIC算法的级数有关。所以如需提高精度,只需简单地增加流水线单元即可[5]。但增加流水线单元后,用Simulink模型图实现该算法,设计图会显得非常复杂、庞大,不利于阅读和排错,而用VHDL代码直接描述会比用Simulink模型图描述更为简便,故CORDIC算法模块的设计是在QuartusⅡ环境中,采用VHDL代码进行了设计描述及编译。

3.2 正交信号发生器系统模型图建立

图2为基于Simulink平台建立的正交信号发生器系统模型图。首先利用Altera DSP Builder库的HDL Import模块将设计的CORDIC文本文件导入,将文本设计转变成为DSP Builder元件模块,然后按图3调用Altera DSP Builder和Simulink库中的其他图形模块建立系统模型图,并设置相应模块参数。

3.3 系统仿真验证

完成模型设计之后,在Simulink中对模型进行系统仿真,即通过Simulink中的2通道示波器Scope模块查看仿真结果(见图3)。仿真结果表明,两路输出信号完全正交。然后双击Signal Compiler模块,将模型设计转换成可综合的RTL级VHDL代码,并对其进行综合、配置下载。

4 结束语

本文研究了基于流水线CORDIC算法,采用VHDL文本与Simulink模型图相结合的正交信号发生器的设计与实现方法。并在Simulink平台上进行了系统仿真,仿真结果表明,采用此方法设计的正交信号发生器,输出的是一组完全正交的信号,可以广泛应用于通信领域的信号检测和处理。

参考文献

[1]周晓青,李合生,陶荣辉.基于CORDIC算法的双曲正余弦函数FPGA实现[J].信息与电子工程,2010,8,(2):211-214.

[2]Volder J E.The CORDIC trigonometric computing technique[J].IRETrans.Electronic Computers,1959,8,(3):330-334.

[3]雷能芳.基于DDS技术的数字移相正弦信号发生器的CPLD设计与仿真[J].科学技术与工程,2009,9,(4):1009-1001.

[4]潘松,黄继业,王国栋等.现代DSP技术[M].西安:西安电子科技大学出版社,2003:240-242.

FPGA仿真 第3篇

1 信道估计及插值算法

1.1 最小平方(LS)算法

最小平方估计算法是比较经典的信道估计方法之一[4],其基本原理是使接收数据和无噪声数据之差的平方达到最小,其公式可以表示为:

其中,表示参考信号处子载波上的信道传输函数值,矩阵X其主对角线上的值为发射端参考信号子载波上发射的参考信号的值,γ表示接收端参考信号子载波上接收到的信号向量,则信道估计LS估计器的结果为:

LS算法可以简单地估计出参考信号输出的信道传输函数值,但是算法没有利用子载波的信道传输函数值的相关性,没有考虑噪声影响,无法消除噪声带来的估计误差。

1.2 线性插值算法

对于数据点位置的插值,一般都采用线性插值[5]。线性插值分为一阶线性插值和二阶线性插值。线性插值的思想是根据邻近子载波和待估计子载波的频域响应相关性,利用相邻导频子载波的估计获取数据子载波的估计,一阶线性插值实现起来比较简单,二阶线性插值实现起来要复杂些。

一阶线性插值就是利用前后相邻的两个导频子载波的信道响应,线性地计算出处于它们之间的数据子载波上的信道响应。以PUSCH 1a格式为例,如图1所示为其导频位置分布图,对于第k个子载波,采用线性插值算法,其信道的频域响应为:

其中,m L

2 信道估计及插值在FPGA中的实现

图2是PUSCH信道估计以及插值实现的整体流程图,整个实现过程是基于PUSCH的1a格式来实现的。在整个系统中每一步都会用到RAM来暂存数据,信道估计采用最小平方(LS)算法,插值过程采用一阶线性插值。整个过程采用流水线设计,很大程度上提高了数据的处理速度。

2.1 FPGA中信道估计的算法实现

在PUSHC中通常以每一个子帧作为处理单元。首先要提取出PUSCH资源块中存放DMRS的导频数据组成矩阵Rp,与发送端方法相同生成本地的DMRS导频数据Xp。则按照公式Hp(m,n)=Rp(m,n)/Xp(m,n)计算出存放导频位置资源元素处的信道频域响应,再按照插值方法估计出数据位置的信道频域响应。

在本次FPGA实现中,导频处信道矩阵模型表示为:

其中,H是信道响应;Xp是已知的导频发送信号;Yp是接收到的导频信号;Wp是在导频子信道上叠加的AWGN矢量。

LS为最小平方信道估计,LS算法就是对式(1)中的参数H进行估计,是信道响应H的估计值。是经过信道估计后得到的导频输出信号。即LS算法的信道冲击响应估计值:

其中,XP是本地生成的,YP是从FFT运算之后的数据中按照一定规则提取的。这样就可以计算出的值。这个模块输入的是发送导频信号XP与接收导频信号YP,其中XP与YP都是复数。信道估计的整体流程如下:

首先把本地生成的导频数据XP存储到一块RAM中,把从FFT计算的结果中提取的导频位置数据YP存储到另一块RAM中,其提取的规则是由导频的分布决定的。再通过另外一个模块来实现信道估计算法,信道估计算法模块与前两个RAM模块的通信方式为握手信号,这样就可以保证在信道估计模块中,只要估计模块需要数据,就可以在这两个存储导频数据的RAM中提取。信道估计的计算公式为式(5),其计算过程相当于是一个矩阵的除法,即对应元素相除,在运算中,HP,LS=YP/XP对应元素的除法公式为这个除法比较特殊,由于分子XP是ZC序列,因此分子XP与其共轭相乘为1。故除法运算可以通过取共轭处理转化成两个复数的乘法,这样就避免了复杂的除法运算。在实现的时候就可以认为求HP,LS是一个乘法。对于计算结果,因为最后数据的形式为实部与虚部组合的形式,即高16 bit存储实部,低16 bit存储虚部,在最后处理的时候一定要知道本地生成的数据的量化级别,因为最终的计算结果要求是16级量化,如果本地生成的数据不足16级量化,则要对数据进行处理,使其满足16级量化。

最后,通过对握手信号的控制,把信道估计计算出的结果存储到RAM中,以备后面的插值算法使用。

2.2 一阶线性插值的实现

一阶线性插值算法,就是利用相邻的两个导频子载波的信道响应,线性地计算出处于它们之间的数据子载波上的信道响应。对于第k个子载波,采用线性插值算法,其信道的频域响应估计值为:

其中,l1、l2表示用于插值的导频所处的符号位置,H(k,l1)、H(k,l2)表示用于插值的2个导频的信道冲击响应。

通过计算信道估计已经计算出其导频处的数据,在式(6)中l1和l2是定值,l的范围是0~13。这样就可以按行求出导频处的H(k,l),求出每一个导频处的H(k,l)先暂存到RAM中。在用到H(k,l)时需要注意,在存储两个导频的时候是先存储第一个导频处的数据H(k,l1),然后再存储第二个导频的数据H(k,l2)。进行一阶线性插值时要同时取两个导频处的数据,这样就要求信道估计之后的RAM必须是一个双口的RAM,以保证一阶线性插值的实现。对于导频数据的系数,其计算方法是求出所有的的值,然后再进行14级量化,暂存到两个16 bit14的寄存器中,实现一阶线性插值时直接与对应导频处的数据相乘。计算结果左移两位后,数据实部与虚部皆取高16 bit,把每一个实部和虚部的数据组对应合成一个32 bit的数据存储到RAM中。

3 FPGA实现结果分析

图3、图4分别是信道估计的Modelsim仿真图和板级实现的Chipscope截图。FPGA实现时的时钟是200 MHz,其中x_p、y_p是信道估计需要输入的数据,其高16 bit为实部,低16 bit为虚部,x_p与y_p做复数的乘法,最终的计算结果实部与虚部分别取高16 bit组成一个32bit的输出,其中图4、5中h_p是信道估计要输出的数据,由仿真图和实现图可以看出,软件仿真和用开发平台实现出来的结果是一致的。因此用FPGA可以实现对无线信道的准确估计。

图5、图6分别为一阶线性插值的Modelsim仿真图和板级实现的Chipscope截图。其仿真结果和实现结果是一致的,故已应用到项目中。

LS算法的Verliog[6]程序以及线性插值的Verliog程序已通过Xilinx ISE10[7]的编译、仿真验证及板级验证。其结果与理论值一致,精确度可以达到LTE系统的要求。该算法满足了硬件对算法的模块化、规则化要求,可以充分发挥硬件的优势,是实现硬件与算法相结合的一种优化方案。本文用硬件的思想实现LS算法和一阶线性插值,既满足算法的合理性要求,也满足了FPGA的设计要求。在FPGA设计中,追求的是速度与面积的平衡,故在此设计中采用流水线设计,每次调用4个乘法器,这样既提高了速度也节省了资源。该算法的FPGA实现在项目的联机调试中性能很稳定,该实现方案已经应用到LTE综合测试仪项目中。

参考文献

[1]陈发堂,李小文,王丹,等.移动通信接收机设计理论与实现[M].北京:科学出版社,2011.

[2]J.J.van de Beek,EDFORS O,SANDELL M,et al.Onchannel estimation in OFDM systems[C].IEEE Vehicle.Technology.Conferenee.Chicago,1995,7:815-819.

[3]耿煊,谢志远.OFDM系统中基于导频信道估计插值算法分析[J].电力系统通讯,2005,155(26):10-13.

[4]3GPP TS 36.211 v8.5.0.Evolved Universal TerrestrialRadio Access(E-UTRA).Physical Channels and Modulation(Release 8).[EB/OL].[2009-03].http://www.3gpp.org.

[5]沈嘉,索士强,金海洋,等.3GPP长期演进(LTE)技术原理与系统设计[M].北京:人民邮电出版社,2008.

[6]夏宇闻.Verilog数字系统设计教程[M].2版.北京:北京航空航天大学出版社,2008.

FPGA仿真 第4篇

关键词:电力线通信,信道仿真,电力线噪声,FPGA

由于配电网络具有的超大规模和电力线通信具有的成本低、覆盖广、部署便捷等特点。电力线通信提供了优良的设备互联解决方案,因而受到广泛关注,并在智能电网、Internet接入、智能家居等领域得到了广泛应用。

然而由于电力线并不是为通信而设计,对于频率较高的通信信号而言,电力线信道比较复杂和恶劣。因此建立一个标准化的测试平台对电力线通信设备的研发十分必要。对于生产商而言,这样的测试平台能在产品开发的每一步对算法性能立即进行可重复性的验证。对于用户而言,这样的平台可以帮助其在同一平台下对比不同生产商的产品性能,以便对产品做出更客观的评价。而当前缺乏这种针对物理层进行测试验证的工具,大部分针对电力线通信设备的测试主要集中在上层,由于采用多种纠错技术,所以由物理层带来的问题有可能被掩盖。

尽管目前基于顺序执行的处理器主频已经很高,但是处理深度较大的复杂数据流往往力不从心。FPGA强大的并行处理能力和灵活的可定制性为这类数据的处理提供了一个良好的解决方案。

1 系统框架

1.1 电力线信道的数学模型

基本的电力线信道模型如图1所示,该模型描述的电力线信道分为两个部分,分别是信道传输特性和噪声。电力线信道通常可以描述为线性系统,即用单位冲击响应或频率响应函数表示。可等效为信号通过一个线性滤波器。电力线信道中的噪声通常为加性噪声,等效为信号电压与噪声源电压之和,如式(1)所示。其中“⨂”表示卷积运算。

r(t)=s(t)⨂h(t)+n(t) (1)

1.2 硬件结构

系统的硬件结构如图2所示。为实现对具有双向通信功能的电力线设备的测试,仿真系统的每个端口都应该具有双向通信功能。使用定向耦合器实现对接收信号和对待测设备发送信号的隔离。FPGA控制放大器对输入信号进行放大以实现最大的动态范围,然后经过A/D采样转换为数字信号进行进一步处理。用于对信道进行仿真的滤波器参数预先存入FPGA中,该滤波器在每次仿真前进行修改,仿真过程中保持不变。信号经过虚拟的电力线信道后通过D/A再次转换为模拟信号。

FPGA中的噪声序列产生器用于产生各种电力线噪声。该噪声序列经过另一个D/A转换器形成模拟信号,该模拟信号通过受SNR控制单元控制的放大器进行输出,从而调节输出信号中噪声成分的功率。SNR参数同滤波器参数一样,在仿真前进行设定和修改。

2 电力线信道和噪声特性分析

2.1 电力线传输特性分析

电力线通信信道不同于其他有线通信信道,而类似于一个总线线路。信号通常不会从发射机沿一条路径径直地传到接收机,而是会传过一些附加的路径,或者是反射路径。一个最简单的分支模型,可以用来对电力线信道进行分析[1],如图3所示。信号从A点向C进行传输,在B点处由于阻抗不匹配将引起一部分信号的反射。B点的信号同时将分别向C点和D点传输。D点并非接收终端,因此也存在阻抗不匹配的情况,它将一部分信号反射回B点,并依次循环下去。复杂的电力线信道可以分解成该模型的并联或级联。

根据Manfred Zimmermann的研究[1],多径效应下的电力线信道可表示为

Η(f)=i=1ΝgiA(f,di)e-j2πfτi (2)

其中,A(f,di)为第i条路径的衰减,其与频率以及路径长度有关。τi为信号在第i条路径上的延时,其值由式(3)给出

τi=diεrc0=divp (3)

式中,c0为真空中的光速;εr为导线的介电常数。

根据传输线理论,用于传输高频信号的电力线应该按照低损耗传输线进行分析,其特性阻抗Z0和传输常数γ分别用式(4)和式(5)定义

Ζ0=vi(z)li(z)=R1+jωL1G1+jωC1 (4)

γ=Ζ1Y1=(R1+jωL1)(G1+jωC1)=α+jβ (5)

其中,α称为衰减常数,表示传输线上波行进单位长度幅值的变化;β称为相移常数,表示传输线上波行进单位长度的相位变化。单位长度内的分布式电阻R1是由趋肤效应引起,它和f成一定的比例;单位线长度的内的分布式电导G1由耗散引起,它和f成一定的比例。因此,其传输常数可被简化为

γ=k1f+k2f+jk2f (6)

根据进一步的测量和研究结果,更逼近的衰减因子α(f)的等式为

α(f)=α0+αfk (7)

其中,k为介于0和1之间的值,根据式(2)和式(7)可得

A(f,d)=e-α(fd=e-(α0+αfkd (8)

因此,电力线信道传输函数可被表示成

Η(f)=i=1Νgie-(α0+α1fk)die-j2πfdivp (9)

式(9)表示电力线传输特性的一般模型,其参数值可以根据测量得到,或者按传输线原理对电力线介质进一步分析得出估计[2]。在仿真分析中,可以通过调节该参数模型中多径的数N对该模型的精确度进行控制。

2.2 电力线噪声的分类

Manfred Zimmermann[3]将电力线噪声分为:

(1)有色背景噪声。这类噪声具有相对低的功率谱密度,并且功率随着频率的变化而变化。这类噪声由大量低功率噪声源叠加而成,其功率谱密度往往随时间变化,变化周期一般为几分钟到几个小时。

(2)窄带噪声。这类噪声常常由经过幅度调制的正弦信号产生,最常见的源是由无线电广播站的发射信号耦合到电力线上产生。

(3)与电网频率异步的周期脉冲噪声。这类噪声的频率一般为50 Hz~200 kHz之间,因此这类噪声具有离散的线谱,谱间隔即为噪声频率。该噪声通常由开关电源或其他用电器,如CRT显示器等造成。

(4)与电网频率同步的周期脉冲噪声。这类噪声的频率在我国一般为50 Hz或100 Hz。这类噪声持续时间很短,通常为μs级。它有随频率降低的频谱密度。这类噪声由供电电源通过整流二极管引起,因此与工频交流电同步。

(5)异步脉冲噪声。这类噪声是由于各种电子或者机械的开关瞬态造成。这类噪声通常随机出现,持续时间从μs到ms级不等。它的功率谱密度很大,最大比背景噪声高50 dB以上。

这5类噪声中,前3类的统计特性变化较慢,一般变化周期为数秒,数分钟甚至数小时,而功率谱通常较低,因此这几类噪声可以统称为背景噪声。而后两类噪声时变性很强,一般在μs和ms级。最关键的是,这两类噪声功率谱密度值通常很大,因此能造成比特错误甚至是突发连续错误。因此这两类噪声是电力线通信中需要被考虑和克服的主要难点。

Michael Bauer[4]对电力线的脉冲噪声进行了测量和仿真,提出脉冲噪声的时域特性可以用式(10)逼近,其结果如图4所示。

nimp(t)=A0e-dtB0sin2πf0t (10)

为便于分析,可以对上述电力线脉冲噪声进行简化。认为当上述脉冲的包络达到一定值时为一个脉冲的开始,下降到一定值后为该脉冲结束。简化的电力线脉冲噪声的特性可以用3个参数进行描述:脉冲幅度A,脉冲宽度tw和脉冲到达时间tarr。按照上述模型,文献[16]对时域特性进行了统计分析:脉冲噪声宽度tw一般为数十μs,幅度为数百mV,功率谱高出背景噪声约50 dB,在家用电力线环境中,脉冲噪声出现时间的比率约为0.001 35%,平均出现频率为0.122 次/s。

3 仿真算法的设计与实现

3.1 电力线信道的仿真

利用式(9)可以针对某一特定信道进行基于测量的建模。为使仿真结果不失一般性,根据实际电力线信道中大量存在的随机分布分支,可以假设冲击信号通过该信道将随机在不同时刻产生不同幅值的信号在接收端进行叠加,根据中心极限定理,大量独立同分布的随机变量的和的分布服从高斯分布。因此,信道响应的包络服从瑞利分布。当信道中存在直射分量时,即电力线信道中的情况,随机变量服从均值不为零的高斯分布,此时,信道响应的包络服从莱斯分布。即

f(z)=zσ2e[-12σ2(z2+A2)]Ι0(AΖσ2) (10)

其中,A为主信号即直射信号的峰值;I0()是修正的0阶第一类贝塞尔函数。莱斯分布常用参数K来描述,K定义为确定信号的功率与多径分量方差之比。

在Matlab中,通过调用莱斯信道函数可以生成莱斯信道滤波器,使用该滤波器对信号进行处理可以模拟莱斯信道。莱斯信道的函数原型为

CHAN = RICIANCHAN(TS,FD,K,TAU,PDB)

其中,TS为采样频率;FD为多谱勒频移;K为莱斯分布参数;TAU为各路径延时向量;PDB是相应路径的增益向量。

根据Han Kim的研究[27]多径时延的最大值一般<50 ms,Zimmermann[1]提供若干了由式(9)所描述的信道的多径分量gi的值。根据上述结果,考虑到仿真的复杂度,将多径数设为50条,多径时延向量用均值为25 ms,方差为2.5×10-6的正态随机变量生成;多径分量大小用均值为0.05,方差为0.05的正态随机变量生成。经过仿真,可得到莱斯信道的Matlab仿真结果如图5所示。

3.2 电力线噪声的仿真

根据文中研究结果,电力线噪声主要可分为5大类,其中有色背景噪声、窄带噪声和异步周期脉冲噪声由于其功率谱密度较小,统计特性相对恒定,而统一归为背景噪声。大量的背景噪声的和可以使用高斯白噪声进行模拟。

同步周期脉冲噪声的周期为10 ms或20 ms,与G3-PLC系统一个数据帧的持续时间相当,因此在一帧数据内只会出现极少的同步周期脉冲,为简化处理,可以将它并入突发脉冲噪声。Manfred Zimmermann[5]提出采用马尔科夫过程对突发脉冲噪声的出现进行模拟,根据研究结果,该模型能较精确的模拟脉冲噪声的出现时间,但该模型由于运算量大而带来实现上的困难。一种较简单且不失精确性的方法是根据突发脉冲出现的时间、时间宽度等参数的统计特性,由式(10)进行模拟。

文中脉冲噪声出现时间的比率约为0.001 35%,平均出现频率为0.122 次/s。假设系统采用fs的采样频率,则每个采样点出现脉冲噪声的概率为Pimp=0.122/fs;脉冲噪声平均宽度为wimp=1.35×10-5×fs/0.122个采样点。不妨定义在脉冲噪声包络幅度下降到最大值的5%以内时为脉冲噪声的结束时刻。将上述参数代入式(10)可得

e-d·wimp≤0.05 (11)

根据上述参数的推导结果,可以在Matlab中通过如下方法模拟电力线噪声:

用随机数产生函数Randsrc产生一个N维[0,1]分布的随机向量作为脉冲噪声标示向量,其中P(x=1)=pimp;然后循环搜索标示向量,当该点的值为1时,自该点起调用脉冲发生函数;再用脉冲发生函数首先产生两个正态分布的独立的随机数A0、B0,并产生一个正态分布的随机变量d,其均值由式(11)求得。最后按式(10)产生一个输出向量,并将其加到结果向量中。

通过上述方法产生的电力线脉冲噪声如图6所示。

由于噪声出现的概率较低,因此在仿真时需要延长仿真时间,而这样会导致过大的数据量,因此在此次仿真中,调低了采样频率,但这并不影响仿真效果。从图中可以直观地看出,该结果与电力线实际的噪声环境比较吻合。

3.3 仿真算法的实现

信道的特性在单次仿真中应该保持不变,可以借助PC机对信道进行设计。按文中讨论的算法求出信道的单位冲击响应向量,并通过RS232口或者网口等方法发送给仿真系统,在FPGA中采用FIR滤波器实现该单位冲击响应。同时为实现带反馈回路的信道的仿真,可以在FPGA中实现另一路并行的IIR滤波器,通过PC机的参数对两路滤波器的输出进行切换。噪声的仿真方法在PC机上产生相应的参数传入FPGA,为保证更好地实时性,也可以在FPGA中采用伪随机序列产生电路实现。

4 结束语

针对电力线信道和噪声的标准实时仿真平台,对于电力线通信设备的开发和测试是必要的,它能帮助开发人员在设备研发的每一步对可靠性进行快速测试,并且针对不同电力线通信产品提供统一的测试定标平台。文中在对电力线信道特性和噪声进行深入分析的基础上,提出了一种电力线信道实时仿真平台的设计方法,该算法使用Matlab仿真验证了可行性。该平台可使用基于FPGA的硬件实现,具有较高的实用价值。

参考文献

[1]MANFRED Z,KLAUS D.A multipath model for the power-line channel[J].IEEE Transactions on Communications,2002,50(4):553-559.

[2]MENG H,CHEN S,GUANY L,et al.Modeling of transfercharacteristics for the broadband power line communicationchannel[J].IEEE Transactions on Communications Deliver-y,2004(7):1057-1064.

[3] MANFRED Z,KLAUS D A.Modeling of impulsive noise in broad-band powerline communications[J].IEEE Transactions on Electromagnetic Compatibility,2002,44(1):249-258.

[4]MICHAEL B,LIU Wenqing,KLAUS D.Channel emulation oflow-speed PLC transmission channels[C].IEEE Interna-tional Symposium on Power Line Communications and Its Ap-plications(ISPLC 2009),2009:267-272.

FPGA仿真 第5篇

关键词:PID控制器,FPGA,数字锁相环

PID控制算法是一种简单有效的控制算法,因其有原理简单、参数可调、鲁棒性好、可靠性高、适应性强等优点,而在工业控制领域得到了广泛的应用,是目前自动化控制技术中最稳定的控制方法之一[1]。实现PID控制算法有很多种方法,本文采用FPGA并行结构来实现PID控制算法,FPGA最明显的优势在于集成度高,体积小,功耗低,可靠性高和电路设计比较灵活。

1 PID算法

1.1 PID算法表达式

PID控制器的核心思想是针对控制对象的控制需求,建立描述对象动态特性的数学模型,通过PID参数整定实现在比例、微分、积分三个方面参数调整的控制策略来达到最佳系统响应和控制效果。完整的PID控制表达式如下:

其中,kp为比例增益,Ti为积分时间常数,Td为微分时间常数,u(t) 为控制量,e(t) 为偏差。总的来说,比例控制能引起系统迅速反应,从而减小稳态误差,但是比例放大系数的加大, 会引起系统的不稳定;积分控制的作用是,只要系统有误差存在,积分控制器就不断地积累,输出控制量,以消除误差,但积分作用太强会使系统超调加大,甚至使系统出现振荡,这主要取决与积分系数的大小;微分控制可以减小超调量,克服振荡, 使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,改善系统的动态性能[2]。

在数字控制系统中必须对PID滤波算法进行离散化。当采样周期足够短时,可以用求和代替积分、用后向差分代替微分,从而得到数字PID算法的实现模型[3]。数字增量式PID表达式如下:

控制量增量为:

从上式可以看出增量式PID算法只与前三次采样值有关, 不需要大量的数据存储和累加,因而不易引起误差累积,具有计算量小、实时性高的优点。

1.2 PID算法应用

数字锁相环系统(DPLL)由数字鉴相器、数字环路滤波器和DAC等部分组成,其中数字环路滤波器是DPLL最核心的部分,主要实现从相位误差到控制电压增量比特字的转换[4]。为了使数字环路滤波器具有极佳的系统响应和控制效果,PID控制算法是较好的选择,基于PID控制系统的锁相环结构如图1所示。

锁相环系统中,数字鉴相器比较输入频率与输出频率的相位差e(k) ,作为PID控制器的输入偏差信号,在选定比例-微分积分系数kp、ki、kd后经PID运算,产生偏差控制信号u(k) ,最后经过D/A转换器把数字相差转换成模拟电压信号,输出给被控对象压控恒温振荡器。

2 PID的FPGA实现

2.1 PID的FPGA实现结构

PID算法在FPGA中可以通过串行结构、并行结构等方法实现。串行实现法结构简单,只用到一个乘法器和加法器,所需要的资源最少但速度也最慢;而并行实现方法的基本思想是以面积换取速度,其特点是拥有较快的运算速度,但所需要的资源比较多。

本次PID控制器要应用到数字锁相环系统中,所以笔者设计采用运算速度快的并行结构,用了三个加法器和三个乘法器来实现[5]。并行结构如图2所示,其中寄存器用于锁存偏差信号或输出信号的初始值和中间值。

2.2 PID参数选择

对于PID控制器来说,如何选择比例-微分-积分系数kp、ki、kd是设计的关键,这三个参数的选择对环路系统的动态性能、稳态性能以及稳定性都起至关重要的作用。根据控制系统对环路带宽、阻尼系数等指标的要求,以及考虑环路系统器件本身特性,可以计算选择适当的PID滤波器作为粗调参数,再通过仿真和实际调试得到进一步参数,以获得比较完善的控制曲线[6]。

数字锁相环系统的输入频率ui和输出频率upf在鉴相功能模块jianxiang中产生超前–滞后信号up和down,如图3所示, 当ui超前upf时,up输出宽度正比于相位误差的脉宽高电压;而当ui滞后upf时,down输出宽度正比于相位误差的脉宽高电压。在量化功能模块lianghua中,计数时钟对相位误差进行数字量化并产生偏差信号e(k) ,偏差及参数产生如图4所示。根据锁相环系统对环路带宽、阻尼系数的要求,笔者选择比例-积分-微分粗调参数如下:kp= 29、ki= 0.97、kd= 1.07 ,经计算得Ka= 31.04、Kb= -31.14、Kc= 1.04。

由于FPGA只能进行整数运算,所以运算时需要将实数转换成整数,即将系数扩大N倍,最后输出时再把结果缩小N倍。本次设计选择将系数扩大27倍,最后对于FPGA来说,舍器弃最低7位的数据即可作为输出信号。同时,要对系数进行扩展,在系数最高位增加一个符号位,1代表负数,0代表正数。本次设计中输入的数字量Ka、Kb、Kc和e(k) 都设置为28bit,0..26位是数据位,第27位是符号位,最后得Ka= F85H、Kb= 8000F92H、Kc= 89H ,偏差及参数产生仿真如图5。

2.3 PID控制器实现及功能仿真

按照并行结构设计的PID控制器原理图如图6所示。利用28位的D触发器dff27作为寄存器,而乘法器可以使用Aitera公司提供的经过严密测试和优化处理的宏功能模块LPM—MULT来实现,加法器通过VHDL语言编译add55实现。add55为带符号位的加法器,当两个相同符号的数相加时,可能出现运算结果溢出,导致运算出错,所以要扩展加法运算位数,将54位数据扩展出一位;当两个不同符号的数相加时,用被减数二进制补码的加法代替减法,即A - B = A +B。设置偏差e(k)= 10H后, 对设计的PID原理图进行仿真,仿真结果如图7所示。

把PID控制器输出的55位数据进行相位截断,然后再把产生的16位数据输送给DAC,最终把数字相差转换成模拟电压信号,从而完成对PID控制系统的调整。

3 结束语

FPGA仿真 第6篇

开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率来维持稳定的输出电压。传统上开关电源控制部分是按模拟信号来设计和工作的,其抗干扰能力不太好,信号有畸变。近年来随着计算机嵌入式技术的发展,数字信号的控制和处理显示出越来越多的优点,数字化开关电源正逐步替代线性电源,成为开关电源的发展趋势。在过程控制中,选择适合被控对象的控制算法,能够显著地改善控制效果,使系统输出能够迅速地达到或接近预先设定值[1]。由于PID控制算法简单、鲁棒性好、可靠性高,因此应用广泛,而FPGA的高速和硬件支持,使得实施PID等控制比基于单片机、ARM、DSP控制的数字开关电源用软件模拟出来的效果更为优秀,还能克服程序跑飞的严重后果。

1 系统设计及功能简介

1.1 系统架构设计

目前市场上的工业电镀用的直流-直流开关电源存在开关频率越高,则产生的纹波越多、噪声越大的问题。为解决这个问题,本文设计了一种基于FPGA的开关电源。设计中考虑到电镀要求电流较大并且可调,而且为防止操作时发生触电,故要求输出电压较小。选用了它激式、脉宽调制型、IGBT型和全桥式的系统设计方案[2]。该系统具有恒压输出、恒流输出可选及输出电压电流可调的特点。图1为系统架构设计框图。

1.2 系统功能简介

1.2.1 380/220 V,50 Hz交流电

经过变压器,桥式整流以及滤波作为IGBT的直流工作电源以及辅助电源的输入电源。

1.2.2 功率转换器件IGBT

将直流电源转换为方波的交流电源,其频率可以达到将近20 kHz的高频。

1.2.3 高频变压器

将IGBT产生的高频电压变换成需要的直流电压所需要的电压值,送往整流滤波电路。

1.2.4 2次整流

滤波后,可以得到需要的012 V电压。

1.2.5 在反馈电路中ADC电压采集器

可以采样到电压、电流和保护电路的相关值,并将相关值送入NIOSII软核中,进行数据分析。

1.2.6 FPGA部分

FPGA在整个系统中起到核心的作用,其包括四个部分:ADC controller、PWM波生成、硬件PID、NIOSII软核处理器。

ADC controller:它是用VHDL语言编写的一个状态机,其独特的速度,可以控制高速ADC采样,本系统的采样控制就由其负责。

PWM波发生器:它与硬件PID相同,主要产生PWM波,都是在DSP builder下建模生成。PWM波发生器产生经PID调节后输出量可调的PWM方波,通过IGBT驱动器进行对IGBT控制产生可调信号。

硬件PID:它采用简单的位置式PID调节,方便简单。

NIOSII软核处理器:它是在FPGA编程器QuartusII中用SOPC builder定制而成,完成数据处理、外围按键检测、显示等功能。作为SOPC的典型,它在本系统中有着独特的重要地位,起到CPU的作用。

1.2.7 IGBT驱动芯

来自三菱公司的M57962L芯片有着强大的驱动能力。

1.2.8 采样部分

电源辅助部分。

2 系统仿真设计

2.1 PID算法基本理论及建模仿真

2.1.1 PID算法基本理论

传统上模拟量闭环控制较好的方法之一是PID(比例积分微分)控制。

典型PID控制器的控制规律为:

u(t)=ΚΡ[e(t)+1Τi0te(t)dt+Τdde(t)dt](1)

式(1)中:Kp比例系数;Ti积分时间常数;Td微分时间常数。

PID控制中P、I、D各有自己的长处和缺点,它们一起使用的时候又互相制约,但只要合理地选取PID值,就可以获得较高的控制质量。

由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,因此式(1)中的积分和微分项需要进行离散化处理[3]。可得离散的PID表达式为:

u(k)=Κpe(k)+Κij=0ke(j)+Κd[e(k)-e(k-1)](2)

再做z变换便可得到数字PID控制器的z传递函数为:

G(z)=U(z)E(z)=11-z-1[Κp(1-z-1)+Κi+Κd(1-z-1)2](3)

位置式PID控制系统如图2所示。

这种算法的缺点是:运算工作量很大,影响到运算处理的速度。而且如果计算机出现故障,u(k)的大幅度变化可能引起执行机构的大幅度变化,甚至造成重大的生产事故。

本文提出的设计基于FPGA的位置式数字PID控制器的主要的目的正是为了解决PID控制器可靠性的问题。它可以基本消除计算机误动作或跑飞给控制系统带来的影响。区别于单片机等用程序来实现PID控制,基于FPGA的PID控制器不使用程序解决算法,而是用数字逻辑电路来实现数字PID控制算法,所以就不存在程序跑飞或计算机误动作的问题。即使在某个采样周期由于片外引脚干扰导致逻辑计算错误,也不会对整个控制过程产生影响[4],这就是基于FPGA的数字PID控制器的最大优点。虽然采用其他如增量式PID控制算法设计比较简单,但由于不容易对其实施一些诸如积分分离等改进算法以提高控制系统的性能,所以本课题采用位置式PID控制器设计更具有实际意义。

2.1.2 PID在matlab中建模

根据PID基本理论,利用altera公司提供的DSP builder,在matlab-simulink中建立模型。

由于DSP builder可以与altera FPGA/CPLD进行无缝连接,所以只要通过Signal Compile的编译后,生成硬件描述语言就可以生成硬件PID系统,这是altera公司特有的功能。这种功能的出现大大缩短了开发者对软件执行算法的依赖,我们可以依靠这种方法来进行硬件PID设置。硬件的高速有效特性使得系统更加稳定,而不会发生软件程序跑飞的情况。

2.2 PWM波驱动模块

2.2.1 PWM波原理

PWM (脉冲宽度调制)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信和功率控制与变换的许多领域,开关电源大多采用PWM方式。功率变换电路通过控制开关器件的导通和关断时间,将一个输入的不稳定直流电压转换成另一个输出稳定的直流电压。

2.2.2 FPGA实现PWM

(1)三角载波的生成

三角波在simulink中的原理图如图3所示。

输入50 MHz的时钟,增模块从02047做加计数,并时刻与1024比较,若小于1024则输出1并和自身相与。减模块从20470做减计数,时刻和2048比较,所得结果也和自身相与,最后这两个信号叠加就得到了三角载波。模块中生成的三角波频率为50 MHz/2048。

(2)标准PWM波形的生成

只需将预期的电压值和三角波发生器的输出端口分别加在比较器的正负端口进行比较,就能够生成期望的PWM波的波形[5]。

(3)注入死区

理想情况下,逆变器单桥臂的IGBT总是互补地导通和关断。但由于IGBT在关断过程中存在拖尾效应,关断时间比开通时间要长,若在关断过程中,同一桥臂上的IGBT立即导通,则必然导致直流母线电压直通而损害IGBT,这在高频开关电路更为显著。因此,在实际应用中,使同一桥臂的上下IGBT的导通和关断错开一定的时间,即死区时间,以保证同一桥臂的上下IGBT总是先关断后导通。

本文采用“延时导通”这种注入死区的方法,并且在modelsim中将死区做成可控模块,就可以方便的修改死区时间。

2.3 整体仿真结论

我们在上述MATLAB的simulink建模环境下,加入直流电源、IGBT、变压器、整流器、滤波电容、滤波电感、电流电压传感器,就能够对整个系统进行仿真,从系统的参数设置和仿真结果可以看出:

输入电压:(512±512)V;输出电压:012 V;输出电流:01 000 A;稳压精度:<2%;稳流精度:<2%;纹波:<2%;稳定时间:<0.005 s。

结论:基于FPGA的开关电源具有控制简单、响应时间快、纹波小等优点。

3 系统硬件设计

3.1 ADC0809控制器

本系统采用的ADC0809有8个通道。由于电压电流设定可以通过按键是否按下作为判断, 所以可以分时复用,这样整个系统中ADC端口刚好够用。硬件设计如图4所示。

AIN0~AIN7为8路通道,由A0A2选择。ALE为地址锁存输入。OE为输出使能端口。START为开始信号。D0~D7为数据输出端口。用VHDL语言编写的ADCcontroller状态图5如下。

相应的部分VHDL端口说明如下[6]。

3.2 NiosII处理器

本系统所使用的FPGA芯片是Altera CycloneII系列EP2C35F672C8,所使用的设计平台是博创实验工具箱。其简要信息介绍如表1。

如前系统架构章节所述,NIOSII处理器是定制为一个控制器使用的,其核心作用如表2所示。

在QuartusII中新建一个BSF格式的文件,调用生成的niosII系统、PID系统、PWM波系统,连接好然后编译、下载后,就能够驱动外界驱动芯片进行工作了[7]。基于FPGA的控制方便简单、易于实现。

4 软件程序设计

按照系统的要求,niosII控制器需要编写相关的硬件驱动函数以及用户函数。

4.1 NIOS主程序

本系统的niosII的main主函数主要包括:

(1)初始化函数:包括电压值初始化,电流值初始化,LCD初始化。

(2)键盘函数: 主要进行键盘扫描以及按键判断。

(3)显示函数: 主要显示电压值、电流值及保护对象。

(4)AD检测: 主要包括ADC0809controller的使能以及接受转换数据。

(5)数值变换函数:主要调整相关参数包括PID参数,PID_FB数值。

(6)保护函数:主要是使能相关的软件保护,判断是否软件保护后禁止或开启PWM_EN。

主程序流程图如图6所示。

5 结束语

电源是电镀加工设备的核心部分,设计是否合理至关重要。本文的创新点是提出了一种基于FPGA的开关电源设计方法并对其进行MATLAB软件仿真,负载的电压电流仿真控制效果符合设计要求;利用DSP builder建模工具建立了相应的PID和PWM波硬件生成器,直接生成VHDL语言下载到FPGA芯片中使用。以EP2C35F672C8为控制核心的FPGA数字控制系统集成度高,外围硬件电路设计简单,实现了闭环控制。不仅保持了PID控制简单、易于实现的特点,而且使控制效果具有良好的鲁棒性和抑制超调的能力。

摘要:传统的开关电源数字设计方案大多基于单片机、DSP控制,但在实现PID控制算法的过程中,使用软件设计常会带来程序跑飞的严重后果。FPGA的高速和硬件支持,使得实施PID等控制比软件模拟出来的效果更为优秀,还能克服程序跑飞。设计采用MATLAB-SIMULINK,首先进行软件仿真、分析并测试其可行性,然后利用ALTERA公司的DSP builder将仿真模块生成FPGA硬件描述语言,实现PWM波和PID的设计。在控制方面,定制的NIOS软核起到了MCU的作用。利用VHDL语言实现ADC0809状态机控制。最后设计出各个功能模块的电路以及整个系统图和相关的NIOS控制程序流程图。设计的以EP2C35F672C8为控制核心的开关电源系统,利用软件仿真模型生成硬件代码语言,在FPGA中实现,双重保证了设计的可行性,实现了较理想的闭环控制效果。

关键词:开关电源,PID控制,PWM波,FPGA,MATLAB

参考文献

[1]长谷川彰.开关稳压电源的设计与应用.何希才,译.北京:科学出版社.2006:56—121

[2]陆重阳,卢东华.FPGA技术及其发展趋势.微电子技术,2003;31(1):5—7

[3] Joao Lima,Ricardo M,Cardoso J M P,et al.A methodology to designFPGA-based PID controllers.The IEEE International Conference onSystems,Man and Cybernetics,Taipei,2006:2577—2583

[4]付学志,姚旺生,苟伟,等.基于FPGA的高速PID控制器设计与仿真.电子技术应用,2007;(1):87—89

[5]包明,包奎.实现PWM脉宽调制的FPGA芯片研制.电工技术,2003;(6):30—31

[6]詹仙宁.VHDL开发精解与实例剖析.北京:电子工业出版社.2011:70—85

FPGA仿真 第7篇

低压电力线是网络结构复杂的时变系统,其信道表现出阻抗变化大、信道频率特性不稳定、信号所受干扰强和时变性大等特点[1,2],因此信道建模对实现电力线通信及其相关技术的研究工作具有重要意义。国内外学者已在信道建模方面进行了大量研究[3,4,5,6,7,8],并在此基础上对所提出的各种电力线通信方法进行理论分析和仿真验证[9,10,11,12,13,14],但由于目前电力线信道模型都是在软件仿真平台上实现的[15,16],本文采用文献[1]的电力线信道模型,提出一种基于FPGA的低压电力线信道实时硬件仿真系统的设计方案并进行了实现。

1 低压电力线信道模型

自20世纪50年代以来,对高压电力线进行高频信号传输的研究已经非常深入和成熟。但是在220 V/380 V低压电力线上进行信号传输,与高压电力线载波有较大区别,影响电力线通信可靠性的主要因素有:噪声电平高、阻抗变化大、信号衰减剧烈等。所以在对低压电力线通信信道建模时需要考虑噪声、阻抗和衰减3个方面。M.Zimmermann和K.Doster把整个电力线信道看作一个黑匣子,模型结构采用如式(1)所示多径信道模型,相关参数通过信道测量拟合提取,并且频率范围为500 kHz~20 MHz[3]。

其中,表示衰减因子;代表时延因子。该模型描述了典型的电力线信道的频率响应。但对于实际的电力线通信系统,由于电网结构的复杂性及负载的随机性和不可知性,很难精确测量参数的具体表达式。文献[1]通过测量实际信道的幅值和相位特性,得到简化了的电力线信道模型:

文献[11]的图2给出了Intellon公司在1~30 MHz区间所测的结果,本文针对1~3 MHz频段的曲线,采用式(2)所示简化模型,经过拟合得到3种不同路径的频率响应,如图1所示。由图中可看出,后2种路径的曲线与实测的幅值衰减变化情况基本相同。表1列出了各路径的参数。

2 信道仿真器框架设计

图2给出了整个实时信道仿真系统的构建。由式(2)可知,所显示的信道实际上是一个频域表达式,而实际信号通常是时域上的。为使时域信号在信道中的传输过程能够用FPGA实现,可通过对信号采样得数组x(n),再通过快速傅里叶变换(FFT)。这样时域信号在频域信道中的传输就可以转换成频域上的点对点的数据处理,具体传输过程如图3所示。

3 模块功能实现

根据通信系统所选择的频率范围,信道仿真系统的各模块由FPGA控制实现,并通过FPGA开发工具编译综合和仿真。为了缩短开发周期,采用现有的FPGA核心板与带高速AD/DA的专用输入/输出卡相配合。

3.1 输入端预处理

输入端预处理将原始信号变换成适合在信道仿真器传输的信号,包括A/D转换和FFT。

3.1.1 A/D转换

由LTC6912-1放大器和LTC1407A-1 ADC构成A/D转换模块,放大器缩放输入的模拟信号,其输出连接到LTC1407A-1 ADC,放大器和ADC由FPGA控制。

图4给出了基于串行外围设备接口(SPI)的A/D通信接口,当AMP_CS为低时,SPI总线开始进行数据传输,放大器在SPI_SCK时钟信号的上升沿采集SPI_MOSI的串行数据。另外,当AD_CONV信号变高时,ADC开始采样。直到下个AD_CONV信号有效时采样结果才被送出,即保留了一个采样周期。一次通信使用了34个时钟周期。ADC在传输每个14位数据的前后使其输出保留2个时钟周期的三态状态。

3.1.2 FFT

对于变换长度为N的序列x(n),其傅里叶变换可以表示如下:

其中,。点数N较大时,需要对式(3)进行基4或基2分解,以短点数实现长点数的变换。

一般FFT实现简单框图如图5所示。

图5中,运算模块为基4模块。ROM表中存储的是N点旋转因子表。控制模块产生所有的控制信号,包括存储器1和2的读写地址、写使能、运算模块的启动信号及因子表的读地址等信号。

3.2 信道模拟

式(2)中,路径数N的选取不需取得太大即可满足精度要求。根据对实际电力线各参数的分析,路径数取2~5即可满足一般的要求。式中e-j2πfti可用式(4)表示。

其中,实部和虚部可根据表1提供的参数值预先求得存储于ROM中,并用FPGA控制参数的选取来改变信道状态。

3.3 噪声

电力线噪声由背景噪声和脉冲噪声叠加而成[8]。

3.3.1 背景噪声

背景噪声主要是低功率的噪声源,随着频率的增大而减小,通常可保持几秒或几分钟,有时甚至几小时不变。文献[8]指出背景噪声曲线中心频率为4.2 MHz,频带宽度为8.4 MHz,其平均功率小,频谱较宽。选用其中1~3 MHz部分作为本设计的背景噪声,并由M序列伪随机数通过有限长单位冲激响应滤波器FIR(Finite Impulse Response)带通滤波生成,FIR滤波器采用11阶的奈奎斯函数,阻带截止频率fs1=0.9 MHz,通带截止频率fp1=1 MHz,通带截止频率fp2=3 MHz,阻带截止频率fs2=3.1 MHz,采样频率fs=8 MHz。

FPGA内部有大量低成本的IP核,能够很方便地实现FIR滤波器,只需确定其系数即可。该系数可利用Matlab的FDATool工具产生,考虑到获取的系数是小数形式,为便于在FPGA里使用,需对系数同乘16进行量化,并以二进制补码形式存储于.coe文件中。表2给出了所生成的FIR滤波器系数及其转换结果。在FPGA中调用MAC FIR Filter并添加.coe文件初始化,生成的FIR IP核即可在FPGA里调用。需要注意的是,滤波器系数整体放大了16倍,其输出应右移4位以保证正确性。

3.3.2 窄带噪声

窄带噪声部分可通过如下N个独立的正弦函数叠加来描述[6]:

该模型可用FPGA中的查找表实现,这里不再具体说明。

针对如上所述的背景噪声和窄带噪声,通过FPGA进行了仿真实现,结果如图6所示。

3.4 输出端预处理

输出端预处理由反傅里叶变换IFFT(Inverse Fast Fourier Transform)和D/A转换2个部分组成。

3.4.1 IFFT

由傅里叶表达式可得其逆变换为

对式(6)两边分别取共轭,可得式(7):

对式(7)做共轭运算得:

x(n)=N1/Nk=鄱0-1X*(k)e-2πnk/N*/=N1{FFT[X*(k)]}*(8)

式(8)说明IFFT可由FFT实现,只需先求出输入序列的共轭X*(k),然后进行正常的FFT,输出时再增加一次共轭运算,最后进行一个1/N的因子对信号进行衰减,即可得到初始的时域信号。

3.4.2 D/A转换

D/A转换的实现方式如图7所示,图中D/A转换器选用LTC2624 DAC。

在片选信号DAC_CS置低后,FPGA传送SPI_MOSI中的数据,高位先传。LTC2624在SPI_SCK的上升沿采集输入数据(SPI_MOSI)。同时FPGA必须在DAC_CS变低后的SPI_SCK的第1个上升沿读取第1个SPI_MISO的值。传完所有32位数据后,片选信号DAC_CS为高。

图8说明了LTC2624 DAC接口所需的通信协议。在D/A转换器的内部,SPI接口由32位移位寄存器组成。每个32位的指令由数据值、1条指令、1个地址和无关位组成。FPGA首先传送8个无效位,随后是4位命令。最普通的使用命令是COMMAND[3∶0]=0011,这指的是立即更新DAC的输出数据值。随后,FPGA通过4位的地址域选择1个或所有的输出通道。地址域之后,FPGA发送12位数据,4个额外的无关位紧随其后。此时,DAC即可把12位数据转换成模拟值并输出到相应的输出端。

4 仿真器实现及性能分析

图9给出了表1所示的3径和4径信道的FPGA仿真实现。图中,纵轴β表示信道衰减的绝对增益,由于FPGA里信道的每条路径参数都是以二进制补码表示,其增益会放大一定的倍数,与理论参数有一定的误差,但并不影响正确反映信道的基本传输特性。

整个设计在Xilinx的2s300epq208-6芯片上实现,并能良好运行。表3给出了实现这2种信道实时仿真的FPGA资源利用率。由表中可以看出,用上述模型描述电力线信道,占用芯片资源较少;随着信道路径的增加,块存储器使用量增加较大;仿真运行时间短,实时性高。考虑资源利用率和实时性的要求,采用3径信道相对合理。FPGA资源利用率见表3。

5 结论

a.路径数N的选取可根据实际网络情况来调整,实验表明:选用式(2)模型时,路径选取越多,拟合曲线越接近实测信道,一般路径数取3~4即可体现信道的特性。

b.实验结果表明:利用FPGA仿真低压电力线信道,工作速度达到纳秒级,基本满足实时性的要求。

c.基于FPGA自身资源有限,信道路径不宜太多,一般取N=3即可。

d.以后的工作中,可以选取N=3,适当改变ci和ti的值表示一天中不同时刻的信道特性,并用FPGA控制参数的选取改变信道状态。如白天用电设备多,干扰大,可以选用恶劣信道并添加噪声;晚上设备相对较少,干扰较小,选用典型信道添加噪声;凌晨可选用理想信道。

摘要:由于低压电力线网络结构的复杂性和时变性是影响电力线可靠性的关键因素,提出了基于现场可编程门阵列(FPGA)的低压电力线信道特性模型。设计了该模型的实时仿真系统,整个系统由4个模块构成,包括输入端预处理、信道模拟、输出端预处理、噪声模块,并用FPGA控制实现。利用FPGA构建电力线信道实时仿真器,满足系统实时性和设计成本上的要求。通过构建硬件仿真平台对系统进行测试,结果表明基于FPGA的电力线信道的仿真系统工作速度达到纳秒级。

FPGA仿真范文

FPGA仿真范文(精选7篇)FPGA仿真 第1篇为了降低基带信号吞吐速率的运算压力,制导雷达系统一般会将中频信号下变频到基带信号,而不是直接处...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部