首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的交流电机驱动器的电流控制器3

基于FPGA的交流电机驱动器的电流控制器3

  • 仿真和算法改进步骤
正如之前所提到,仿真步骤在Matlab-simulink软件环境中已经演示过。它的目标是:

       改变完整的控制系统的功能;

根据控制系统的缺陷所需,找到每个控制变量合适的采样周期和定点格式改进。

       在利用仿真连续时间模块情况下,功能模块的发展能够促使这些功能成功地改变。然而,每个组合数字算法的参数化是在研究采样周期和定点格式的影响下得到的。注意到这一点,每个定点格式的选择都源于可适应的方法[30],[31]。在此等级下,仿真是在使用系统生成工具箱的数字定点专用模型的发展下实现的[32]。

然而,对于每个提出的第二等级的模块来说,提出了数据流曲线图这一概念(DFG)。DFG是算法的图形再现,它包括不定时的规范,由点和边沿组成。每个点表示一个简单的算法操作,或一个简单的数学或逻辑功能,每个边沿对应数据转换。例如,如图4(a)所示,第二算法等级的DFG图展示了下式功能:

                    (1)

       正如关联图DFG所示,在并行模式中可以完成两种应用,但是附加的应用依赖于两种应用的已得结果,并且只有在两种应用取得结果的条件下才能实现。因此,DFG图明确地表示数据依赖关系性和算法的潜在并行性。图3表示了提出的不同的步骤。值得注意的是,到目前为止,关于目标器件的抉择还没能得到,因为模块分离和定点改进也适用于DSP控制器[33]。

Fig.3.Development of DFGs.


  • 步骤最优化
步骤最优化是建立在A3技术的基础之上的[28],此方法的目的是,若进行基于FPGA设计,那么它是在满足空间和时间限制下达到给出算法的硬件结构最优化。在每个DFG图中,某些操作使用数次。如果某些操作使用了n遍,那么A3将进行因式分解处理但仍然适用于此操作,只不过它是仅使用了m遍,而m<n,大部分时候m的值都为1。在给出的操作当硬件支持时,操作必须能被识别。A3技术一般应用于硬件资源消耗贪婪的操作器如倍增器。DFG因式分解的结果是把数据流曲线图进行分解(FDFG)。
图4(b)所示为一个倍增器FDFG实例。从图上可以注意到,分解过程虽减少了硬件资源的消耗,但却增加了计算时间。然而,最后用来硬件结构的设计图当然是介于硬件资源消耗和计算时间中间的适当水平。对于电子系统控制器,被用过的采样周期远大于计算延时,在此情况下,首要任务是减少硬件资源消耗。
  • 模块化硬件结构设计
对于库中每个模块,都需要定义一个数据通道和一个控制装置。结构中的数据通道可以用来代替最终图形中的节点所对应的操作器以及边沿对应的操作器之间的数据总线。数据总线转换由控制装置控制管理,它简单地可以被称为有限状态机(FSM)。
图5(a)和图5(b)结构分别对应图4中DFG和FDFG。值得注意的是,已获得的数据通道其实是对应图形的拟拷贝,此外,因式分解的结构较未能因式分解的结构的潜力大很多。

       库中每个已开发模块的特征有:输入输出格式,可重复利用程度,潜力性以及通信协议。所有的这些特征都必须在对应的数据表格中清晰地表明,以方便开发利用。图6所示为第二等级模块中可重复利用模块的一般结构。数据通道由基本的操作器组成,如加法器、乘法器、多路复用器、寄存器等。在这些基本操作器之间的数据转换由一个控制器来完成,此控制器由时钟信号(Clk)进行同步操控。每个模块的控制装置由一个“Start”脉冲信号激活。当计算时间的过程结束时,一个“End”脉冲信号向全局控制装置表明模块的数据输出通道又可以继续使用了。

Fig.6.(a)Generic module architecture.(b)Timing diagram of the module.


       至于第三等级模块的硬件结构的发展,可以这么说它是利用库中第一、二等级模块中的块进行运作的。因此,数据通道是第一、二等级模块组合的实例化,它连接着数据总线。在这个程度上来说,第二等级模块的结构可以被认为是粗晶粒操作器。对于这种操作器,一个A3的因式分解过程只能应用一次。这么说,如果控制算法包括两个PI控制器,那么设计只能任意选择其中唯一一次因式分解的PI控制器。第二等级的模块容易操作把控,这只取决于它们的StartEnd信号。对于这些模块的协调是通过全局控制装置在明确的界定时间点发出信号激活本地控制装置而完成的,这一过程如图7所示。全局控制装置当然也是在由“Start”脉冲信号激活,然后在输出数据完成后产生的“End”脉冲信号中结束的。对于这种结构,第三等级模块也同样用同样的方式在上一等级模块结构中运作。然而,每个等级模块的结构可以通过结构性方法VHDL语言进行编码。




  • 验证设计结构

验证的第一步是使用Modelsim和Maltab软件工具一起进行过程运作仿真。这一步骤允许通过编写VHDL修改设计结构中的良性功能,同时可以经过一系列实验平台输入波形进行测试。

第二验证步骤是在系统级程度上通过硬件在回路运行步骤完成的,这个过程的目的在于确保第一次实验担保,它通过在测试结构中进行硬件实时完成的,如图8所示,它主要包括三个模块。第一个是产生促进模式,并保存在FPGA存储模块中。这些促进模式直接来源于模拟阶段,能够与模拟系统进行进一步比较。第二个模块是被用来测试的结构,第三个模块是一个连接FPGA和PC主机的通信接口模块。此结构的计算输出应当集中进行测试并通过通信接口送往PC主机,此目的是为了与在Matlab环境下仿真的结果进行比较。一旦这个测试结果被验证成功,那么次设计的结构将可以应用于实际。

Fig.8.Hardware-in-the-loop procedure.

[30]D.Menard and O.Sentieys,“Automatic evaluation of the accuracy of fixed-point algorithms,”in Proc.IEEE/ACM Conf.Des.,Autom.and Test Eur.,2002,pp. 529–535, CD-ROM.
[31]F.Zhengwei,J.E.Carletta,and R.J.Veillette,“A methodology for FPGA-based control implementation,”IEEE Trans.Control Syst. Technol.,vol.13,no. 6,pp.977–987, Nov. 2005.
[32]Xilinx,Data Book,2006.[Online].Available:www.xilinx.com
[33]Texas Instruments DSC Group,A Software Modularity Strategy for Digital Control System Motor.SPRU485A,Aug.2001, revised Oct.2003.
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表