主题中讨论的其他器件:TMS320F280049C、 SysConfig
您好!
我正在尝试关闭我的项目的循环。
我是否必须将 DAB_closeGvLoop 设置为1才能启用它(是否类似于 DAB_cleatTrip)?

谢谢!
文森特·博利厄-加农
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.
您好!
我正在尝试关闭我的项目的循环。
我是否必须将 DAB_closeGvLoop 设置为1才能启用它(是否类似于 DAB_cleatTrip)?

谢谢!
文森特·博利厄-加农
您好、Vincent:
请遵循 第4.4.3章中实验3设计指南中的指南。 (https://www.ti.com/lit/ug/tidues0c/tidues0c.pdf)
此致、
安德烈
亚斯您好、Vincent:
KI 和 KP 在 dab_settings.h 文件中定义。 每次构建该文件时都会由 Power Suite GUI (main.syscfg)覆盖该文件。
您可以删除 main.syscfg 文件、并在 dab_settings.h 文件中手动更改值。 或者您在 dab_user_settings.h 中定义一个新的 Ki 和 Kp ,并在 dab.c 中初始化控制结构时使用这些新的定义:
DCL_resetPI (&DAB_gi);
DAB_gi。 KI = DAB_GI_KI;
DAB_gi。 KP = DAB_GI_KP;
DAB_gi。 UMAX = DAB_GI_UMAX;
DAB_gi。 Umin = DAB_GI_Umin;
DAB_gi。 IMAX = DAB_GI_IMAX;
DAB_gi。 Imin = DAB_GI_Imin;
跳闸是意外发生的。 以下几个要点可用于检查、其中可以提供问题的提示:
此致、
安德烈
亚斯尊敬的 Andreas:
我进行了更改(在 dab_user_settings.h 中定义一个新的 KI 和 KP、并在 DAB.c 中初始化控制结构时使用这些新的定义)这似乎可以正常工作、但是是否有办法验证该实验是否正在运行 KI 和 KP 的值?
此外、我在闭环中进行了一些测试、结果很好。 我想更改相移的最小额值。 事实上,性价比很高
#define DAB_GI_UMAX (float32_t) 0.125 pu = 45度
#define DAB_GI_Umin (float32_t) 0.001 pu = 0.36度
我可以将 GI_Umin 放置在更接近0还是0的位置吗?
因此、对于相同的负载和相同的输入、我可以达到较低的电压输出。
感谢您的帮助、
文森特·博利厄-加农
您好、Vincent:
1.您可以在表达式窗口中查看控制结构 dab_gi、检查 Kp 和 Ki 的值
2. pu 值的计算方式如下:以 pu 为单位的电压=测得的电压/最大电压。
您可以在 SysConfig GUI 中看到的最大电压: 

例如、对于输出电压、最大检测电压为636V。 如果输出为500V、则等于500/636 = 0.786pu
3.是的,你需要使用 pow()函数,你应该自己直接使用它。 如果尚未包含 math.h 标头、则可能需要包含该标头。
如果这些是固定值、在运行时不需要更改、我建议预先计算它们。
4.我 对浮点误差没有直接的修正。 首先要检查的是、所有数据类型都与函数 输入数据类型一致。 如果不匹配,则需要使用强制转换运算符。 若要进行调试、 从错误来源开始、先执行一个操作、查看是否生成了该操作、然后添加下一个操作、直到遇到错误。
希望这对您有所帮助。
此致、
安德烈
亚斯尊敬的 Andreas:
4.我认为 th exp()和 pow()字体是个问题。 Somone 遇到同样的问题(https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/510269/behavior-of-power-function)。 该字体给出了一个双精度值、因此它无法放入"float32_t"中。 但我仍然不知道如何解决。
我不知道是否包含 math.h 标题? 从何处可以找到它?
2、谢谢你,这真的可以帮助我。
1.我在那里看,但可能我没有使用 gobal 变量选项添加。 (我还使用了 lab.js)
还有一个问题。 如何使用 dab.h 中 dab.c 定义的值来计算我的 IV 曲线?

感谢您的大力支持、
文森特·博利厄-加农
您好、Vincent:
4. 我认为你可以使用一个转换运算符所以(float32_t) pow (...) 将输出转换为 float32_t 类型。
3.头文件始终包含在文件顶部。 它应位于 dab.h 中

1.您只能 在运行时的调试视图中查看 dab_gi 结构、因此如果您的代码未编译且未运行、则无法检查它是否采用了正确的 kp 和 ki 值。
在您共享的屏幕截图中、编译器未找到您的变量。 你在哪里罚他们?
此致、
安德烈
亚斯您好、Vincent:
1.关于未解析的符号。 您在 dab.c 中定义了它们 、并使用 extern 命令将它们包含在 dab.h 中。 两者都是必要的。
有关如何消除此错误的更多信息、请访问: https://software-dl.ti.com/ccs/esd/documents/sdto_ccs_build-errors.html#error-unresolved-symbols-remain (链接器诊断下页面的中间)。
2.关于 IV 曲线:我们的控制环路运行频率是100kHz。 可能没有足够的时间在10us 内计算这个值。 您也可以使用以10kHz 运行的 ISR 2来计算曲线。
此致、
安德烈
亚斯尊敬的 Andreas:
1、我看了看。 但它实际上并没有帮助。 在评论618行时没有任何错误。 我以为问题出在日志上。 但是在删除了几乎所有内容后,仍然有相同的错误。 问题可能来自"DAB_vSecRefEMULATION"。 它在 DAB.h 中使用前需要一个初始值吗?



2、我不明白。 DAB.c 中的 calcul 只制作一次正确(我只需要它们一次用于我的曲线)? dab.h 中只有 IV 曲线方程。
如果您认为有更好的解决方案、我想试试。 你可以详细说明一下,我不明白如何使用 ISR2和它如何会比实际的解决方案更好?
谢谢!
文森特·博利厄-加农
您好、Vincent:
1.是的,每个值都应该被初始化,但我不确定这是否会解决这个错误。
2、我不是100%确定 我是否理解,你要如何实施 IV 曲线.
您在前面提到过、您需要实时计算它。
我当时想、一旦将该值存储在查找表中、然后在控制环路中选定、就会计算该值。
ISR2是 dab_main.c 的一部分。它用于将电压和电流的 PU 值转换为伏特和安培。 此过程以10kHz 的频率执行、可用于无需在每个 PWM 周期完成的计算。
此致、
安德烈
亚斯尊敬的 Andreas:
1.它不能解决此错误。 我不知道该怎么说。 问题来自 IV 曲线等式、因为当我添加注释时、编译工作正常。 也许这是我编写方程的方法? 我需要将 dab.c 更改为 dab.h?

我是否可以将计算放在其他位置、在这里可以连续进行计算?
2.我想使用电流测量作为我的公式的输入。 输出将是控制器中用于设置点的电压基准。
我可以做一个查找表,但我不知道如何和它似乎更复杂的编程这样的事情。
此致、
文森特·博利厄-加农
尊敬的 Andreas:
我仍在尝试解决错误。
如果我将 IV 曲线的公式放在 ISR 中、是否能够像我打算的那样使用它? 它能够实时跟随 IV 曲线吗? 以下是一些截图:



此外:
我想更改相移的最小额值。 实际值是...
#define DAB_GI_UMAX (float32_t) 0.125 pu = 45度
#define DAB_GI_Umin (float32_t) 0.001 pu = 0.36度
将 GI_Umin 靠近0还是置于0是安全的?
谢谢! 您的支持真的可以帮助我
文森特·博利厄-加农