近来闲暇无事,想弄个三相变频器玩玩。 三相变频器可以用来驱动异步电机,还可以驱动直线加速器。
于是搜索万能宝,发现只有380v的变频器。
可是我想玩安全电压的。最多24V三相交流电。
找不到,看来只能自己开发一个了。
硬件不用自己做,只要购买无刷电机驱动板就可以了。 无刷电机驱动板,只要提供3路PWM信号,就可以生成驱动无刷电机用的三相交流电。
而生成这pwm信号的工作,就留给了单片机。
我比较中意的单片机是 ESP32. 便宜,性能强。STM32 零头的价格提供了比 STM32 高数倍的性能。
我写程序啊,不喜欢从头写。哪怕是单片机。 总不能用汇编代码一点一点写吧。再说,汇编我也只知道8051的汇编,不懂 esp32 的汇编。
所以,用了 SimpleFOC 这个库。
这个库虽然是用来驱动无刷电机的,但是他带了一个 3PWM Driver . 我只要用他这个。
起初我用 VSCODE 搭配 ExpressIDF SDK 写过 ESP32 的代码。 但是 SimpleFOC 基于 arduino 库,无法直接使用 ExpressIDF SDK。
后来我就折腾用 arduino 写。发现 arduino 的编辑器不是很顺手。代码补全,语法提示就是个 0 。
还是得用vscode写,结果翻阅 simplefoc 的文档发现可以用 platformio。 PlatformIO 是个 vscode 的插件。 装上它,就有了一个单片机的集成开发环境了。 编辑器还是用的 vscode,还能用 clangd 进行自动完成。
后来还发现 platformio 更高级的功能,就是可以多平台构建。可以同一份源码直接编译出 ESP32 和 STM32 的固件。 虽然soc各有不同的地方, 但是这些不同的地方可以用偶这个C++程序员最擅长的条件编译搞定。
至于 stm32 的板子,嘿嘿, 之前玩电机的是买过一个 VESC 的电机控制器。控制器上是个 STM32F405G ,而且,板子上 SWD 调试端口。接上 stlink, 在 platformio 里添加一个 stm32 的板子, 点 upload 直接成功!
然后可以随时在 stm32 和 esp32 里切换,随时 build , 随时 upload。
platformio真是开发单片机的神器。
于是我就捣鼓出了2个三相变频器,一个 esp32 的, 一个 stm32 的。 esp32 的可以用手机连上蓝牙后发命令设定输出电压和频率。 stm32 没蓝牙,只能接了一个电位器,用ADC采样电位器输出后设定电压和频率。
异步电机开环调速让电压和频率同步提升。也就是固定 V/F 比。这个 V/F 比和电机有关。如果有转速传感器,可以使用固定滑差率设定频率,电压则根据电流和按设定的扭矩进行反馈调节。滑差率也是一个和电机有关的数值。大部分都是 1% 的滑差率。
然后淘了一个 三相的异步电机。接上。。。因为板子的耐压是 30v。只能接了30v的直流电给板子。按电机 220v/50hz 的规格(确实是三相220v,不是380v,找了好久才找到的。), 30v 的直流电只能逆变出 21v 的交流电,所以只能输出 21v/8hz 的交流电驱动。不过这个电机应该是随便绕的,频率提高到 20hz 还能转的更快点。
但是扭矩感人。毕竟是要用 220v 电压供电的电机,绕组电阻太大。低压下电流太低了。相电流连 50mA 都没有。
可惜,更低电压的异步电机买不到了。低压的都是永磁同步电机。欸。/(ㄒoㄒ)/~~
希望能搞到和航母电机一样大小的,12V 电压驱动的三相感应电机。参数最好是 12v/100hz ,7000rpm。
Comments