我在论坛上看到了可以控制多个电机的地方、但我想知道电机之间的差异是否存在限制。 我想控制2个不同的 BLDC 电机、但一次一个。 我会使用电路板上的 DIP 开关设置来确定连接的电路板。 电机之间的差异将出现在主要 ID 参数(例如 Rs_Ohms、最大电压/电流、电感等)中、但它们都是2极对 PMSM。 与将这些参数编译到代码中相比、我如何在运行时更改这些参数?
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.
我在论坛上看到了可以控制多个电机的地方、但我想知道电机之间的差异是否存在限制。 我想控制2个不同的 BLDC 电机、但一次一个。 我会使用电路板上的 DIP 开关设置来确定连接的电路板。 电机之间的差异将出现在主要 ID 参数(例如 Rs_Ohms、最大电压/电流、电感等)中、但它们都是2极对 PMSM。 与将这些参数编译到代码中相比、我如何在运行时更改这些参数?
使用 InstaSPIN、它支持在开始时进行参数识别和测量、因此您不必输入任何值。 希望这对您有所帮助。
每个电机将装配在水泵中、并在启动时以很低的负载进行降压。 我认为识别过程不会在负载下提供可靠的结果。 至少这是我迄今为止所经历的。
从稍微的挖掘中,我需要在 main()的开头读取 dip 开关,以确定在运行参数初始化例程之前连接了哪个电机。 我的问题是、我是创建两个初始化例程、每个电机一个、还是向其发送一个参数。 此外、在 user.h 中一次只定义了一个电机定义、因此我至少需要第二个电机定义。 也许我可以创建一组电机参数、然后将要初始化的电机编号发送给 setParams 例程。
如果有任何建议或想法,将不胜感激。
谢谢
重置 gUserParams 结构变量中的电机参数、并将 CTRL_setParams (handle、&gUserParams)调用到使用电机的电机参数。
重置 gUserParams 中与 user_setParams 调用类似的电机参数。 这会将 user.h 中的电机参数常量移动到 gUserParams 中。 我想我需要使用一组不同的常数为第二个电机设置第二个 USER_setParams 例程。 然后在该调用后调用 CTR_setParams。
USER_checkForErrors 函数会怎么样? 它看起来很难使用电机参数常量进行编码。 我想、对于第二个电机、这也需要一个重复的电机。
我假设为了使其正常工作、我将需要浏览其余代码、并确保对电机参数的引用不会直接使用 user.h 参数常量、而是引用 gUserParams 变量。 例如、在 Proj_lab11a.c 中、设置 PID 循环和轨迹时、代码直接引用 user.h 电机参数常量。
您 无需调用 user_setParams(),只需在 gUserParams 对象中将电机参数设置为相关变量,如下所示。
gUserParams.motor_type = USER_MOTOR_TYPE;
gUserParams.motor_numPolePairs = USER_MOTOR_NUM_POLE_PAIRS;
gUserParams.motor_ratedFlux = USER_MOTOR_Rated 磁通;
gUserParams.motor_rr = USER_MOTOR_rr;
gUserParams.motor_Rs = USER_MOTOR_Rs;
gUserParams.motor_LS_d = USER_MOTOR_LS_d;
gUserParams.motor_LS_q = USER_MOTOR_LS_q;
USER_CHECKForErrors 仅用于调试和检查硬件参数。 如果您确保其他参数正确、则只需为电机调用一次。
如果要使用 lab11a、应将电机参数设置为 gUserParams 对象、然后调用
CTRL_setParams (ctrlHandle、&gUserParams);
EST_setEstParams (estHandle、&gUserParams);
EST_setupEstIdleState (estHandle);
这种担忧会怎样呢
"我假设为了使其正常工作、我需要仔细检查代码的其余部分、并确保对电机参数的引用不会直接使用 user.h 参数常量、而是引用 gUserParams 变量。 例如、在 Proj_lab11a.c 中、设置 PID 循环和轨迹时、代码直接引用 user.h 电机参数常量。"
最好重新调用与电机参数相关的所有初始函数以更新控制参数。