您好!
据我所知、InstaSPIN 使用的用户参数是根据 user.h 中的定义并使用以下函数定义的:
- CTRL_setParams
您能否确认整个 InstaSPIN 系统仅依赖于使用函数 CTRL_setParams 的参数集? 换句话说、InstaSPIN 系统是否有任何部分直接依赖 user.h 静态定义而不使用使用使用 CTRL_setParams 函数设置的动态参数?
提前感谢您。
此致
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.
您好!
据我所知、InstaSPIN 使用的用户参数是根据 user.h 中的定义并使用以下函数定义的:
您能否确认整个 InstaSPIN 系统仅依赖于使用函数 CTRL_setParams 的参数集? 换句话说、InstaSPIN 系统是否有任何部分直接依赖 user.h 静态定义而不使用使用使用 CTRL_setParams 函数设置的动态参数?
提前感谢您。
此致
您好!
感谢您的回答。 这就是我的想法。
还有一个问题:如果我很理解、一旦 FOC 控制器被禁用、我们就可以使用 CTRL_setParams 更新 FOC 控制器参数、对吧?
换言之、以下过程是否正确?
我在这里担心的是、在我的情况下、在开发过程中、我们希望优化一些参数、而无需重新编译工程并刷写目标。
此致。
您参考了哪个示例实验室? 您是否仅使用不带 FAST 估算器的 InstaSPIN 控制器?
是的,可以使用 CTRL_setParams()使用新参数设置控制器和估算器(这些新参数必须在 gUserParams 对象中设置),并且必须在再次调用 CTRL_setFlag_enableCtrl (ctrlHandle,false)来停止电机 。
调用 CTRL_setParams()后,包括控制器状态在内的所有控制器参数都将被重置。 您可以使用这些新参数来控制电机、而无需重新编程代码、只需根据需要进行"在线"即可。
如果不使用估算器或电机参数(Rs、Ls、磁通、极对)未更改、则无需调用 CTRL_setParams()来重置所有参数。 如果您只想优化控制器、如调整 PI 控制器、只需直接更改 PI 控制器的增益。
这是基于 Lab12b 的定制固件:因此、我只使用 InstaSPIN 控制器、而不使用 FAST 估算器。
感谢您的明确回答、确认了我的想法。
我们当然需要微调 LS 等电机参数。
另一个问题:
此致、
Johann
由于 LS 已更改、因此必须调用 CTRL_setParams()函数来重新设置控制器和估算器。
如果修改了 USER_SYSTEM_INER惯性 和 USER_SYSTEM_FRICTION、则需要调用以下两个函数来重新设置 SpinTAC。 当前示例 lab12b 不支持在线修改这些参数。 您必须重新编写这两个函数、方法是将这些常量替换为相关变量、然后通过将新参数设置为相关变量来在线调用这两个函数。 但我认为您不需要这样做、因为电机的这两个参数应该是系统中的固定值。
ST_setupVelCtl (stHandle);
ST_setupPosConv (stHandle);
我发现以下函数直接使用 user.h 中的定义:
内联_IQ CTRL_angleDelayComp (CTRL_Handle handle、const _IQ angle_pu) (ctrlQEP.h 中的第1846行)
USER_IQ_FULL_SCALE_FREQ_Hz 定义 用于计算 angleDelta_pu。 但是、这个定义与电机相关、在我的情况下、电机应该被定义在一个将驻留在 RAM 中的"用户参数"结构中。
我能否安全地将 USER_IQ_FULL_SCALE_FREQ_Hz 设置为适合多个不同电机的值?
换言之、假设我只为两个不同的电机使用一个 FW:
是否可以将 USER_IQ_FULL_SCALE_FREQ_Hz 设置为电机2频率(600Hz)? 或者、这是否会导致电机1出现问题?
此致、
Johann