你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

赛灵思System Generator时间参数深度剖析

发布者:jackzhang 时间:2010-06-24 22:01:39

作者:Juergen Wassner,卢塞恩应用科学与艺术大学工程与建筑学院讲师
电子邮箱: Juergen.wassner@hslu.ch

Christoph Eck,卢塞恩应用科学与艺术大学工程与建筑学院讲师
电子邮箱: Christoph.eck@hslu.ch

基于模型的设计 (MBD) 因其在缩小实时系统抽象的数学建模和物理实现之间差距的光明前景而备受关注。通过使用相同的源代码进行算法分析、架构探讨、行为模拟和硬件/软件设计,MBD 有望缩短系统设计周期。

在过去几年内出现了多个MBD工具,且多数都是围绕The MathWorks提供的MATLAB®和Simulink®环境而开发的。通过为DSP工具部署赛灵思SystemGenerator,即可将MATLAB或Simulink卓越的自动生成特性和数据分析功能用于进行MBD。除了传统的数字信号处理,其他多种学科都可受益于该工具,而不管其名称如何。由于MATLAB或Simulink是控制工程领域标准的设计和模拟环境,该工具特别适用于控制应用。

无需通晓硬件描述语言 (HDL),Xilinx System Generator forDSP即可让控制工程师在熟悉的Simulink环境中设计系统,然后在FPGA中实施。为此,您必须将受控系统(通常称之为设备)的数学模型参数值(如连续/离散时间传递函数或者状态空间描述)与FPGA系统时钟频率和数字控制器的采样率关联起来。

FPGA中的数字控制器

对任何信号处理算法而言,数字控制器既可在软件中实施,也可在硬件中实施。由于多数控制应用的采样率要求与算法复杂度普遍适中,所以二者的结合(也即实施硬件加速软件)常无必要。在选择FPGA作为数字控制器的实施技术时,设计人员可在不会损失现场可升级性的情况下利用MCU软件解决方案中没有提供的一些功能。即便在具有多种采样率的进程需要控制的情况下,FPGA的非中断驱动并行数据处理也可确保绝对的时间决定性。这种特性与可配置字宽一道,使FPGA成为实施数字控制器的理想选择。

之前,在实施FPGA时,控制器设计人员在首次验证控制策略和参数并进行控制器和设备模型的高级模拟(如使用Simulink)后,可能还会使用一种低级的HDL。HDL控制器设计与Simulink模拟之间的对应性将由HDL测试平台加以验证。为在闭环系统中验证控制器设计,该测试平台必须包括设备模型。对于缺乏HDL和FPGA技术专业背景的设计人员及大多数控制工程师而言,要实现上述这一切却并非易事。在这种情况下,如Xilinx System Generator之类的高级建模和设计环境正是理想之选。

System Generator中的PID控制器

鉴于许多控制器仍然基于传统的比例—积分—微分 (PID)结构,因而我们借用一个PID控制器来演示我们的观点。尽管如此,我们概述的方法也可以较好地处理超前滞后补偿器、状态观测器或者自适应控制器等其他常用的控制组件。图1显示的是我们采用源自赛灵思模块集的块而设计的PID控制器。

基于System Generator块且支持抗饱和功能的PID控制器
图1 基于System Generator块且支持抗饱和功能的PID控制器

我们没有使用赛灵思的累加器块,而是采用基本的加法器和寄存器构建块来实现集成。之所以这样做,是因为我们可以插入如图1所示的抗饱和逻辑,以便在控制器输出的积分部分达到执行器规定的饱和限值时,冻结累加器寄存器中的内容。抗饱和逻辑可使PID控制器成为非线性系统并对系统的总体动态产生积极的影响。

图2所示的块参数菜单可用来配置各种信号的控制参数和字宽。另外,设计人员还能够在此启用或者停用抗饱和函数。利用该菜单,无需修改低级HDL代码即可方便地进行实验。

PID控制器的定制参数菜单
图2 PID控制器的定制参数菜单

图3显示的是整体系统模型,其不仅包含有控制器,还有基于标准的Simulink块的设备和模拟测试平台。借助该模型,设计人员可以采用连续或者离散时间传递函数进行设备建模,而在HDL测试平台中则只能适用离散时间函数。值得一提的是,使用SystemGenerator方法,您就可以使用一个相同的高级模型完成从系统建模、模拟、验证直至实施的任何工作。

图3 在无控 (a)、有PID控制和无抗饱合 (b )和有抗饱和 (c) 的情况下,输入命令后得到的整体系统模型(顶部)和设备输出
图3 在无控 (a)、有PID控制和无抗饱合 (b )和有抗饱和 (c) 的情况下,输入命令后得到的整体系统模型(顶部)和设备输出

了解时间参数

现在让我们来看一下在该过程中将会遇到的各种时间测量参数。接下来,我们将有意使用与赛灵思 System Generator文档资料相同的术语。

时间参数有多种类型。采用兆赫兹或者纳秒等绝对单位的参数将以大写字母显示,而其他所有参数将以小写字母显示。此外,时间测量指标还可划分为控制参数和分析参数。所有这些参数均包含在表1中。

控制参数

第一个控制参数是模拟时间单位TSim。该参数无须在设计中明确地输入。该参数代表的是对Simulink模拟中基础时间单位的隐含假设。因此,其仅对模拟有所影响。在Simulink以及System Generator环境中,模拟时间单位通常被假定为 1 秒。例如,SystemGenerator Wavescope块的显示就使用这个惯例。不过正如我们在下面所见到的,TSim也可以是满足您需求的其他任何时间单位。

随后还需要在SystemGenerator令牌中以纳秒为单位设置FPGA时钟周期TCLK参数。该参数代表的是主系统时钟输入到FPGA的周期,而所有其他时钟和时钟启动均由此导出。因此,其设置只会影响硬件实施。例如,对于广受青睐的赛灵思Spartan®-3E入门套件,FPGA时钟周期为20纳秒 (50MHz)。

而Simulink系统周期Psys则代表着Simulink模拟和硬件实施之间的全局连接。设计人员必须设定这个参数,因为它在SystemGenerator令牌中影响Simulink模拟和硬件实施。在模拟过程中,该值决定了相对于模拟时间单位而言,对模型的SystemGenerator块调用、但却不必要地进行更新的频度。至于硬件实施,该参数规定了相对于控制器采样率的超频量。与SystemGenerator的文档不同,我们将Simulink的系统周期定义为无单位量,即FPGA时钟周期与假定的模拟时间单位之比:

这样就可以假定前面提及的任意模拟时间单位。

对于设计中SystemGenerator部分的某个具体信号的采样周期Psam,既可进行明确设置(例如在Gateway-In单元中),也可从UpSample或者DownSample等采样率调整块中获得。在进行明确设置时,您需要输入以假定的时间单位为单位的具体数值。其设置对Simulink模拟和硬件实施都有影响。在模拟过程中,该数值决定了在该块真正可以改变状态之前需要对该块进行调用的次数。同样,在硬件实施中,该数值代表着时钟逻辑启用后的时钟周期的数量。由于在System Generator设计中,所有的时钟启用信号都源自主FPGA的时钟输入,因此每个启用周期必须是FPGA时钟周期的整数倍。

1 — System Generator设计的时间参数
表1 — System Generator设计的时间参数

分析参数

在第二类分析参数中,首先要考虑的是采样时间 (ST) 块。该参数在系统实施中不使用硬件资源,仅用于Simulink模型中的分析目的。ST块显示的tsam值指的是硬件实施中用于相关信号的时钟启用周期,其单位是FPGA时钟周期。

当设计人员在System Genertaor令牌中的Icon Display属性框中选择下一项分析参数,即采样频率时,该模型中的每个Xilinx块都会以MHz为单位显示采样频率Fsam,并用于该单元的实施。采样率与其它时间参数的关系如下:

其中TCLKenb是实施中启用的相关时钟的周期。上述关系的详细说明请参见图4。

从上面的第二个等式可以清楚地看出,每个采样周期Psam都必须是Simulink系统周期Psys的整数倍,之所以如此,是因为仅有这些时钟启用信号是从FPGA系统时钟衍生出来的。第三个等式表明ST时钟显示的值是以FPGA时钟周期为单位的时钟启用周期。

以Psys=1/4和三个不同采样率为例说明六个时间参数之间的关系
图4 — 以Psys=1/4和三个不同采样率为例说明六个时间参数之间的关系

选择时间参数的详细指南

上述控制系统示例详细说明了如何选择时间变量。该流程具体可分为以下五个步骤:

1. 确定设备

采用合适的传递函数对设备建模。在本例中,我们将设备当作PT2元进行建模,将增益系数K设定为2,时间常数T设定为20纳秒,衰减系数d设定为0.2。因此,如图 3(a) 所示,该设备为一个振荡元。

2. 选择模拟时间单位

此时,您可以选择基础模拟时间单位Tsim,这样设备的传递函数就有了便利的数值参数。在本例中,我们将Tsim设定我10纳秒。在上述参数设定完毕后,便得到了如下设备传递函数:

3. 设置Simulink系统周期

在拥有模拟时间单位后,我们将随之根据可用的硬件平台FPGA时钟周期TCLK设置Simulink系统周期Psys。在Spartan-3E入门套件中,系统时钟频率为50MHz,我们设定TCLK为50纳秒,即得到:

4. 确定采样频率

根据经验法则,数字控制器的采样率必须至少是设备的截止频率的20倍。本示例设备的截止频率大约是30Hz,因此我们将采样频率设定为Fsam = 1KHz。

5. 设定采样周期

最后,我们在控制器前面的Gateway-In块中设定采样周期参数Psam。在本例中,我们设置如下:

有了这些设置,我们就可以进行模型模拟,调整控制器参数并合成控制器逻辑。不过,有时FPGA时钟周期TCLK会显著小于基础时间单位Tsim,比如在您的控制器是一个时钟频率比控制器本身要求要高很多的更大规模设计的一个组成部分时。如此一来,由于在控制器真正地处理下一个数据样本之前需要模拟大量无效的时钟周期,模拟时间会变得无比漫长。而这种情况下,您可以在不影响设备一致性的同时,在模拟和实施中设置不同的Psys。这样做之所以可能,是因为Psys值仅对设备的System Generator部分有所影响。

更具体地说,您可以在模拟控制系统时设置Psys = Psam。这样就可以确保只有在必要的时候,即只有在块真正改变状态的时候才会调用System Generator块。在生成FPGA实施前,您只需要改回原来的Psys值即可。

闭环控制系统的MBD要求设备传递函数的绝对时间测量指标与设计环境的时间参数保持一致。通过使用 Xilinx System Generator for DSP工具,我们为该问题提供了一个系统化的解决方法。

下一步,我们将考察赛灵思System Generator的硬件协同模拟特性,以便对采用FPGA控制器的闭环系统进行实时分析。

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了