工具与软件:
您好!
作为我的电动自行车 BLDC 电机控制器 生产的一部分,在推荐一种类型的电机,希望控制器识别霍尔传感器(A , B 或 C )序列...
即、一旦按任何顺序 连接电机相线和霍尔反馈线、一旦我运行序列识别例程、它就应该识别哪个输入是霍尔 A、哪个是霍尔 B、哪个是霍尔 C、即使它们没有按正确的顺序连接也是如此。
请建议如何 在通用电机控制器项目中执行此操作。
提前感谢。
此致、
Anil
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.
工具与软件:
您好!
作为我的电动自行车 BLDC 电机控制器 生产的一部分,在推荐一种类型的电机,希望控制器识别霍尔传感器(A , B 或 C )序列...
即、一旦按任何顺序 连接电机相线和霍尔反馈线、一旦我运行序列识别例程、它就应该识别哪个输入是霍尔 A、哪个是霍尔 B、哪个是霍尔 C、即使它们没有按正确的顺序连接也是如此。
请建议如何 在通用电机控制器项目中执行此操作。
提前感谢。
此致、
Anil
Anil:
我想说这里有2个相对简单的选项、这两个选项都不会内置于通用电机控制实验中、前提是我没记错。
我希望这是有道理的!
此致、
Jason Osborn
感谢 Jason 的建议。
我可以使用一种非常简单的方法、从代码本身中找到连接的霍尔序列和相位序列。
使用了 具有更长 对准 时间的 MOTOR_ALIGN 状态。
对于 obj->angleFOC_rad = 0.0;查看了霍尔状态。 然后更改 obj->angleFOC_rad = 1.0、查看霍尔状态。
从上述2个霍尔状态值中、可以解码并 找到霍尔 U 连接到哪个引脚、 霍尔 V 连接到哪个引脚、 霍尔 W 连接到哪个引脚。
接下来研究 HALL_CAL、然后研究电机参数 Rs、来自代码本身的 LS 识别。 这是 在现场调试过程中需要的。 我有一个 GPIO (校 准)用于这些校准。 如果该 GPIO 在上电期间为高电平、固件将逐个进入
1.霍尔线/相线顺序识别
2. HALL_CAL
3.电动机 Rs、Ls 计算
4.上述3个参数随后存储到 片上闪存/EEPROM 中。 下一次在上电期间、从 EEPROM 获取值并使用。
正在处理 HALL_CAL NEXT (上面的 SN 2)。 我看到的一个问题 是 HALL_CAL 是构建选项。 我需要 从正常运行的程序调用 HALL_CAL。 任何使 HALL_CAL 成为 程序的标准部分 并在 CALIBRATION GPIO 为高电平时调用它的建议。
在校准 GPIO 较高时、调用"HALL_calibrateIndexAngle (obj->hallHandle、obj->angleEST_rad);"是否足够。 然后 按照 motor1_drive.c 中所述、将"''复制 HALL_M1.thetaCalBuf[]到 hallAngleBuf[]''中。
由于在 HALL_CAL 期间只需要在快速模式下运行、因此 我如何将快速+霍尔模式更 改为仅快速模式、然后在 HALL_CAL 之后 从代码本身返回到 FAST+HAL?
谢谢、此致、
Anil
Anil:
在 FOC 环路中、电机角度信息的控制由"estimatorMode"处理、您可以在提供的屏幕截图中看到该操作。 当估算器模式= Estimator_MODE_FAST 时、则 FOC 环路使用 FAST 估算器提供的电机角度。 当估算器模式= Estimator_MODE_HALL 时、FOC 环路会使用霍尔提供的电机角度。 通过处理此变量、您可以切换具有控制权的估算器方法。
如果您希望 HALL_CALL 是标准运行循环的一部分、那么我建议您随时出现此代码 在函数内 、将其分别替换为"if (HALL_CAL_GPIO_STATE == 1){"和"}"行的内容:
任何此代码出现 函数之外的字段 、只需注释掉这些行。
请注意、默认情况下、代码是在假设霍尔校准仅执行一次的情况下编写的、然后会在删除预定义符号的情况下重新编译代码。 虽然我看不到任何地方会严重影响性能、但请注意、如果您这样做、代码的大小必然会增加、而且我可能漏掉了某些内容。 我强烈建议您对其进行全面测试。
此致。
Jason Osborn