这个示例向您展示了如何使用定点工具来细化与反馈控制器模型相关联的定点数据类型的缩放。尽管该工具可以实现多个工作流程,将理想双精度数字描述的数字控制器转换为定点数字实现的数字控制器,但本示例使用以下方法:
范围收集-使用范围收集工作流来探索模型的数值行为。
使用双精度数字执行定点数据类型的全局覆盖。的仿真软金宝app件®软件记录仿真结果,定点工具显示它们。
使用定点字大小和缩放的合理猜测运行初始模拟,然后将模拟结果与双精度运行进行比较。这个任务说明了猜测最佳缩放是多么困难。
使用模拟距离数据提出分数长度-使用迭代定点转换工作流来自动缩放模型。
定点工具使用双精度模拟结果为适当配置的块提出定点缩放。定点工具允许您有选择地接受和应用缩放建议。然后,通过检查模型模拟设备的输入和输出来确定结果的质量。
在MATLAB中打开本教金宝app程的Simulink反馈设计模型®命令行中,键入fxpdemo_feedback
.
该模型由以下模块和子系统组成:
参考
这信号发生器块生成连续时间参考信号。它被配置成输出方波。
总和
这添加块从参考信号中减去植物输出。
ZOH
的零级举行块采样并保持连续信号。该块的配置使其在时间上量化信号0.01秒。
模拟数字接口
模拟数字(A/D)接口由A数据类型转换块,该块将双
转换为定点数据类型。它表示将模拟输入信号的幅值数字化的任何硬件。在现实世界中;它的特性是固定的。
控制器
数字控制器是代表软件运行在硬件目标上的子系统。指数字控制器实现.
数字模拟接口
数字-模拟(D/A)接口由A数据类型转换块,它将定点数据类型转换为双
.它表示将数字化信号转换为模拟信号的任何硬件。在现实世界中,它的特征是固定的。
模拟植物
模拟装置由传递函数描述,并由数字控制器控制。在现实世界中,它的特征是固定的。
范围
模型包括范围显示设备输出信号的块。
要建立这种定点反馈控制器仿真:
确定所有设计组件。
在现实世界中,有具有固定特征的设计组件(硬件)和具有可更改特征的设计组件(软件)。在这个反馈设计中,主要的硬件组成是A/D硬件、D/A硬件和模拟装置。软件的主要组成部分是数字控制器。
建立设备和控制器的理论模型。
对于本教程中的反馈设计,设备的特征是传递函数。
本教程中的数字控制器模型由z-域传递函数,并使用直接形式实现。
评估设备和控制器的行为。
你用波德图来评估工厂和控制器的行为。这个计算是理想化的,因为所有的数字、操作和状态都是双精度的。
模拟系统。
使用Simulink和Fixed-Point Designer™软件模拟反馈控制器设计。金宝app在模拟环境中,您可以处理所有组件(软件)和硬件),好像它们的特征不是固定的。
“定点缩放控制设计”模型的开环(控制器和设备)和仅设备的伯德图如下图所示。开环波德图的结果来自一个数字控制器,描述在连续时间、双精度系数、状态存储和数学运算的理想世界。
Bode图是使用一个名为preload_feedback.m
.
在这个仿真中,数字控制器是使用如下图所示的定点直接形式实现的。硬件目标是一个16位处理器。变量和系数通常用16位表示,特别是如果这些数量存储在ROM或全局RAM中。32位数字的使用仅限于暂时存在于CPU寄存器或堆栈中的临时变量。
数字控制器实现由以下模块组成:
了把
向上Cast是一个数据类型转换连接A/D硬件和数字控制器的模块。它垫A/D硬件的输出字大小,末尾为0,为16位数字(基本数据类型)。
分子方面和分母项
每一个离散冷杉滤波器块表示在CPU目标中执行的加权和。计算中的字长和精度反映了累加器的字长和精度。Terms用FIR分子系数对最近的输入进行相乘和累加。分母Terms用FIR分母系数对最近的延迟输出进行倍数和累加。系数使用基本数据类型存储在ROM中。最近的输入使用基本数据类型存储在全局RAM中。
结合条件
组合条款是一个添加块,它表示CPU中的累加器。它的字大小和精度是RAM的两倍(两位数)。
下投
Down Cast是一个数据类型转换块,表示从CPU取数字并存储在RAM中。当转换回基本数据类型时,字长和精度将减少到累加器的一半。
Prev出来
Prev Out是单位延迟将内存中的反馈信号延迟一个采样周期的块。信号使用基本数据类型存储在全局RAM中。
直接实现形式。控制器直接实现这个等式:
地点:
u(k- 1)表示来自上一个时间步骤的输入。
y(k)表示当前输出,和y(k- 1)表示上一个时间步骤的输出。
b我为FIR分子系数。
一个我表示FIR分母系数。
第一个求和y(k)表示累加器中最新输入项和分子系数的乘法和累加。第二个求和y(k)表示累加器中最近输出和分母系数的乘法和累加。因为FIR系数、输入和输出都由16位数字(基本数据类型)表示,任何涉及这些数字的乘法都会产生一个32位的输出(累加器数据类型)。.
对于每个块的缩放的初始猜测已经在模型中的每个块掩码中指定。这个任务说明了猜测最佳定点缩放的难度。在本例中,您使用定点工具中的范围集合工作流将模型的行为与理想化的浮点版本进行比较。
打开fxpdemo_feedback
模型。
打开定点工具。在应用程序画廊,选择定点的工具.
在定点工具中,单击新,并选择收集范围
.
您可以使用范围集合工作流来探索模型的数值行为,并将其与理想的浮点版本进行比较。
下设计中系统(SUD),选择要分析的子系统。在本例中,选择控制器
.
下范围收集模式中,选择模拟范围作为范围收集方法。
下模拟输入,使用默认的模型输入进行仿真。
单击收集范围按钮箭头并选择双精度
.单击收集范围按钮开始模拟。
Simu金宝applink软件模拟fxpdemo_feedback
以数据类型覆盖模式建模,并将结果存储在BaselineRun
.数据类型覆盖使您能够使用双精度数据类型对定点数据类型执行全局覆盖,从而避免量化效果。在结果电子表格,定点工具显示运行结果。已编译数据类型(CompiledDT)列BaselineRun
显示模型中的块使用了双
模拟期间的数据类型。
接下来,使用模型中指定的定点数据类型模拟系统。单击设置按钮箭头并选择指定数据类型.点击使用嵌入式类型进行模拟.
定点工具使用当前指定的定点数据类型模拟模型,并存储范围信息EmbeddedRun
.您可以在列表中查看采集范围SimMin和SimMax电子表格的列。
定点工具突出显示包含了把
块,以指示此结果有问题。的结果细节窗格显示该块饱和了23次,这表明对其伸缩性的猜测很差。
提示
你可以使用探索选项卡来探索和过滤结果。
点击比较结果以打开模拟数据检查器。
在仿真数据检查器中,选择PlantOutput
作为比较的信号。
仿真数据检验员绘制与设备输出相关联的信号BaselineRun
和EmbeddedRun
.
图的工厂输出信号EmbeddedRun
反映了对缩放的最初猜测。伯德图的设计旨在为闭环系统产生一个性能良好的线性响应,以理想为代表BaselineRun
.然而,回应EmbeddedRun
是非线性的。显著的量化效应导致非线性特征。定点设计的一个重要部分是找到一个可以将量化效果降低到可接受水平的尺度。
使用自动数据类型化,您可以在跨越整个模拟范围的同时最大限度地提高输出数据类型的精度。定点工具中的迭代定点转换工作流允许您在跨越整个模拟范围的同时最大限度地提高输出数据类型的精度。这个过程被称为自动缩放。
因为本例中没有提供设计范围信息,所以定点工具使用模拟范围数据来建议数据类型。的模拟安全裕度最小/最大(%)参数值乘以“原始”仿真值。将该参数设置为大于1的值可以降低在使用定点数据类型时发生溢出的可能性。有关定点工具如何计算数据类型建议的更多信息,请参见定点工具如何提出数据类型.
由于量化的非线性效应,定点模拟产生的结果与理想的、基于双元的模拟不同。与基于双元的模拟相比,定点模拟中的信号可以覆盖更大或更小的范围。如果范围增加得足够大,就可能发生溢出或饱和。安全裕度降低了这种可能性,但也可能降低模拟的精度。
请注意
当最大和最小模拟值覆盖您的设计的全部预期操作范围时,定点工具将产生有意义的自动数据类型结果。
自动定量的控制器
子系统。这个子系统代表在目标上运行的软件,需要优化。
在定点工具中,单击新,并选择迭代定点转换
.
提示
在定点工具中切换工作流将清除设置和活动工作流期间收集的任何数据。模型保持当前状态。
下设计中系统(SUD),选择控制器
子系统作为分析和转换的系统。
下范围收集模式中,选择模拟范围.
下模拟输入,使用默认的模型输入进行仿真。
点击准备创建一个恢复点,并自动为正在设计的系统准备转换。
单击收集范围按钮箭头并选择双精度
.点击收集范围开始模拟。
Simu金宝applink软件模拟fxpdemo_feedback
以数据类型覆盖模式建模,并将结果存储在BaselineRun_2
.
在转换部分,单击设置按钮。设置模拟安全裕度最小/最大(%)参数20.
.所有其他参数保持默认设置。
点击提出数据类型.
定点工具分析所有定点块的缩放根据定点工具的更改锁定输出数据类型设置参数是清除。
定点工具使用存储在BaselineRun_2
提出每个块的数据类型,以便在跨越整个模拟值范围的同时使精度最大化。该工具在结果电子表格。
回顾定点工具建议的缩放。您可以选择接受每个块的扩展建议。在结果电子表格,选择相应的接受复选框。默认情况下,定点工具接受与当前缩放不同的所有缩放建议。对于本例,确保接受复选框为Controller子系统的每个块选择。
单击应用数据类型按钮。
固定点工具将您在上一步中接受的缩放建议应用到控制器
子系统。
在验证部分,单击使用嵌入式类型进行模拟按钮。
金宝app仿真软件模拟了fxpdemo_feedback
使用您应用的新缩放模型。有关此模拟的信息存储在名为EmbeddedRun_2
.之后,定点工具将显示关于记录定点数据的块的信息。已编译数据类型(CompiledDT)列EmbeddedRun_2
显示Controller子系统的块在新的伸缩中使用定点数据类型。
点击比较结果以打开模拟数据检查器。
在仿真数据检查器中,选择PlantOutput
作为比较的信号。
模拟数据检验员绘制与工厂输出相关联的信号BaselineRun_2
和EmbeddedRun_2
,以及他们之间的差异。
定点运行所代表的被控对象输出信号达到稳态,但由于非最优a /D设计而存在较小的极限环。