主题中讨论的其他器件:C2000WARE、 SFRA
您好!
有点令人困惑、但我想知道为什么运行2P2Z 控制器的数字控制库函数可能会输出负值、尤其是在错误输入为正时。
我已经多次尝试更改系数、但在调用函数后、我通常会返回一个明显的负电压、这使得控制器非常无用。 下面是一个屏幕截图:

即使在 ADC 引脚输入零电压以测量误差计算电压的情况下、该函数也经常返回负浮点值。 这只是一个系数问题吗?
如果我放置一个非常小的增益 Kdc (我使用的是 C2000Ware 补偿设计器)、电压输出可以是正的、但非常小。 然后、当我增加 KDC 增益时、函数的输出返回负值。 这非常令人沮丧、因为您会认为增加增益只会增加控制器输出、而不会使其变为负。
我基本上是从 DCL 库示例编写此代码、并执行完全相同的函数。
是否有人可以提出可能发生这种情况的原因并提出可能的解决方法?
编辑:我注意到在 DCL 用户指南中、以下内容:
步骤3. 在链接器命令文件中分配控制器函数在 FPU32或 C28x 内核上运行的 DCL 函数可分配给链接器命令文件中的特定存储器块。 通常将控制器功能置于零等待状态内部 RAM 中、因为这允许控制器功能以器件的最高速度运行。 请注意、所有 CLA 函数都必须从内部零等待状态 RAM 运行。 所有 DCL 库函数都放置在用户定义的代码段.dclfuncs 中。 下面显示了如何将此段映射到内部 L4 RAM 存储器块的示例。dclfuncs:>RAML4,page = 0另请参见项目示例中的链接器命令文件 F28069_DCL.cmd (第5章)。 在独立应用中、代码必须存储在非易失性存储器(例如内部闪存)中、并在运行时复制到 RAM 中。 有关如何执行此操作的信息,请参阅使用数字控制库20应用手册“从 TMS320F28xxx DSP 上的内部闪存运行应用程序”,TI 文献编号 SPRA958。 有关链接器段分配的信息,请参阅《TMS320C28x 汇编语言工具用户指南》。
我不确定我是否已经执行了此操作-如果我没有执行上述步骤、控制器代码是否会运行?
如果代码能够在没有上述内容的情况下运行、它是否会导致控制器输出结果出现重大问题?
看起来运行正常-但我不确定它的执行速度以及我所展示的控制器输出结果的准确性:如果有人能够通过电子邮件将 F28069_DCL.cmd 文件发送给我、这将是一个很好的帮助: j.holland3@newcastle.ac.uk -由于我仍然遇到 C2000Ware 文件夹没有任何工程属性的问题、其中也没有包含命令文件。 我认为这可以解决我的问题。
此致、
Joel





