此示例显示如何使用固定点工具优化与反馈控制器模型相关联的固定点数据类型的缩放。虽然该工具使多个工作流能够将在理想的双精度数字中描述的数字控制器转换为在定点号中实现的数字控制器,但此示例使用以下方法:
范围收集-使用范围收集工作流来探索模型的数值行为。
使用双精度数字执行定点数据类型的全局覆盖。的仿真软金宝app件®软件记录仿真结果,定点工具显示它们。
使用定点字大小和缩放的合理猜测运行初始仿真,然后将模拟结果与双精度运行进行比较。这项任务说明了猜测最佳缩放是多么困难。
使用模拟范围数据提出分数长度 - 使用迭代的定点转换工作流程来自动尺寸模型。
定点工具使用双精度模拟结果为适当配置的块提出定点缩放。定点工具允许您有选择地接受和应用缩放建议。然后,通过检查模型模拟设备的输入和输出来确定结果的质量。
在MATLAB中打开本教金宝app程的Simulink反馈设计模型®命令行中,键入fxpdemo_feedback.
.
该模型包括以下块和子系统:
参考
这信号发生器块生成连续时间参考信号。它被配置为输出方波。
和
这添加块减去从参考信号输出的工厂。
ZOH
这零阶持有块样本并保持连续信号。该块配置为使其在时间上量化信号0.01秒。
模拟数字接口
模数转数到数字(A / D)接口包括一个数据类型转换转换a的块双
转换为定点数据类型。它表示将模拟输入信号的幅值数字化的任何硬件。在现实世界中;它的特性是固定的。
控制器
数字控制器是表示在硬件目标上运行的软件的子系统。参考数字控制器实现.
数字到模拟接口
数字到模拟(D / 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硬件的输出字大小为16位数(基本数据类型)。
分子方面和分母项
这些中的每一个离散冷杉滤波器块表示CPU目标中执行的加权和。计算中的单词尺寸和精度反映了累加器的精度。分子术语乘以FIR数仪系数的最新输入。分母术语倍数并累积最新的延迟输出与FIR分母系数。使用基础数据类型将系数存储在ROM中。最近的输入使用基本数据类型存储在全局RAM中。
结合条款
结合术语是一个添加代表CPU中的累加器的块。它的单词尺寸和精度是RAM的两倍(双位)。
击败
Down Cast是一个数据类型转换块,表示从CPU取数字并存储在RAM中。当转换回基本数据类型时,字长和精度将减少到累加器的一半。
普遍
Prev Out是单位延迟将内存中的反馈信号延迟一个采样周期的块。信号使用基本数据类型存储在全局RAM中。
直接实现形式。控制器直接实现此等式:
地点:
你(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次,这表明对其伸缩性的猜测很差。
提示
你可以使用探索选项卡来探索和过滤结果。
点击比较结果打开模拟数据检查器。
在仿真数据检查器中,选择PlantOutpul.
作为比较的信号。
仿真数据检验员绘制与设备输出相关联的信号Baselinerun.
和EmbeddedRun
.
植物输出信号的曲线图EmbeddedRun
反映了对缩放的最初猜测。伯德图的设计旨在为闭环系统产生一个性能良好的线性响应,以理想为代表Baselinerun.
.然而,回应EmbeddedRun
是非线性的。显着的量化效果导致非线性特征。固定点设计的一个重要组成部分正在寻找一个缩放,可将量化效果降低到可接受的级别。
使用自动数据类型化,您可以在跨越整个模拟范围的同时最大限度地提高输出数据类型的精度。定点工具中的迭代定点转换工作流允许您在跨越整个模拟范围的同时最大限度地提高输出数据类型的精度。这个过程被称为自动缩放。
由于在此示例中没有提供设计范围信息,因此固定点工具使用模拟范围数据来提出数据类型。这仿真安全裕幅Min / MAX(%)参数值乘以“原始”仿真值。将该参数设置为大于1的值可以降低在使用定点数据类型时发生溢出的可能性。有关定点工具如何计算数据类型建议的更多信息,请参见定点工具如何提出数据类型.
由于量化的非线性效应,固定点模拟产生不同于理想化的基于双层模拟的结果。固定点模拟中的信号可以覆盖比基于双倍的模拟更大或更小的范围。如果该范围增加足够,则可能发生溢出或饱和度。安全保证金降低了这一可能性,但也可能降低模拟的精度。
笔记
当最大和最小模拟值覆盖您的设计的全部预期操作范围时,定点工具将产生有意义的自动数据类型结果。
自动定量的控制器
子系统。这个子系统代表在目标上运行的软件,需要优化。
在“固定点”工具中,单击新,并选择迭代定点转换
.
提示
在定点工具中切换工作流将清除设置和活动工作流期间收集的任何数据。模型保持当前状态。
在下面设计下的系统(sud),选择控制器
子系统作为分析和转换的系统。
在下面范围收集模式, 选择模拟范围.
在下面仿真输入,使用默认的模型输入进行仿真。
点击准备创建一个恢复点,并自动为正在设计的系统准备转换。
单击收集范围按钮箭头并选择双精度
.点击收集范围开始模拟。
Simu金宝applink软件模拟了fxpdemo_feedback.
以数据类型覆盖模式建模,并将结果存储在Baselinerun_2.
.
在转变部分,单击设置按钮。设定仿真安全裕幅Min / MAX(%)参数到20.
.使用所有其他参数的默认设置。
点击提出数据类型.
固定点工具分析了所有固定点块的缩放根据定点工具的更改锁定输出数据类型设置参数被清除。
定点工具使用存储在Baselinerun_2.
提出每个块的数据类型,以便在跨越整个模拟值范围的同时使精度最大化。该工具在结果电子表格。
回顾定点工具建议的缩放。您可以选择接受每个块的扩展建议。在结果电子表格,选择相应的接受复选框。默认情况下,定点工具接受与当前缩放不同的所有缩放建议。对于本例,确保接受为每个控制器子系统的块选择复选框。
单击应用数据类型按钮。
固定点工具将您在上一步中接受的缩放建议应用到控制器
子系统。
在核实部分,单击使用嵌入式类型进行模拟按钮。
金宝appsimulink模拟了这一点fxpdemo_feedback.
使用您应用的新缩放模型。有关此模拟的信息存储在名为EmbeddedRun_2
.之后,定点工具将显示关于记录定点数据的块的信息。编译的数据类型(CompiledDT)列EmbeddedRun_2
显示Controller子系统的块在新的伸缩中使用定点数据类型。
点击比较结果打开模拟数据检查器。
在仿真数据检查器中,选择PlantOutpul.
作为比较的信号。
模拟数据检验员绘制与工厂输出相关联的信号Baselinerun_2.
和EmbeddedRun_2
,以及他们之间的差异。
定点运行所代表的被控对象输出信号达到稳态,但由于非最优a /D设计而存在较小的极限环。