This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我目前正在研究 FAST 估算器提供的 RsOnline 功能、但我看到一些与实验代码中使用的函数相关的问题。
据我了解、当 RsOnline 功能处于活动状态时、估算器会计算一个 d 电流、然后该电流应添加到控制器中。 估算器然后使用反馈值估算已知施加的 d 电流的电阻。 由于在实验中的使用,我希望函数 EST_getIdRated_a ()返回 d 电流,我需要将它添加到控件中, 并将 EST_updateId_ref_a 作为我设置最终生成的参考值的函数。
当我将某些器件移到 CLA 时、我遇到了一些问题、因为 EST_getIdRated_a 似乎总是返回0、 EST_updateId_ref_a 实际上使用所需的 d 电流来操纵输入。 是否需要此行为?
现在、我通过从 之后的 d 电流中减去 EST_setIdq_ref_a 之前的 d 电流来计算额定 d 电流、从而解决了这个问题。 这似乎起作用、但它还会在控制中使用新计算得出的额定 d 电流之前增加一个 ISR 的延迟。 这会是个问题吗? 由于我们在 CLA 和 CPU 之间分离功能、因此唯一的另一种方法是在 CPU 和 CLA 之间需要一个额外的乒乓 ISR 周期。
提前感谢
Wolfgang
我不认为所有 EST_xx ()函数都可以使用 CLA 执行、也不知道如何在 CLA 和 CPU 之间拆分 FAST 函数。 您可能会提供有关如何使用 CLA、CLA 任务的哪个事件的更多信息?
是的、完全正确。 整个控制被分离、因此 CLA 处理 ADC/PWM 并计算 Clarke、Park、PI、FWC 等 CPU 仅用于执行所有估算器函数、因此可降低总负载。 由此产生的触发链基本上是 ADC -> CLA -> CPU -> CLA -> CPU、用于一个控制周期。 在实验13中、我们确定了两个开关点。
-获取 ADC 后、计算 Clarke 和 Traj
-使用速度控制、FWC、MTPA 并添加额定 ID_CURRENT 计算新的 idq_ref 后
由于我们假定 idq_ref 仅随额定电流"idq_ref_a.value[0]+= EST_getIdRated_a (estHandle)"而发生变化; 因此我们此时未添加额外的乒乓、并将 EST_updateId_ref_a 和 EST_setIdq_ref_a 移至最后一个 CPU 链元素。 我甚至想在 Est_run()之前直接移动这些函数调用,就像在实验10中部分删除末尾的附加中断一样
我看到的唯一问题是计算额定电流与使用该特定值之间的一个周期延迟。
希望这有助于理解我们的问题。
哪些事件会触发控制器 CLA 的任务和估算器的中断? 延迟应来自 CLA 和 CPU 的这两个 ISR。