工作准备
驱动电机
1、硬件准备
一块STM32最小系统板:可以用自己的,也可以用nucleo板
驱动板:针对的是中小功率的伺服电机、马达,所以驱动模块一般可以选择分立的MOSFET或者集成的IPM模块,驱动板上需要包含:
位置信号接口:比如编码器和霍尔位置传感器
相电流采样与信号调理电路
过压、欠压、过流、过温保护
一款电机,这里需要知道电机的参数信息和位置接口
2、了解套件P-NUCLEO-IHM002,电机驱动板的各部分电路,电机的参数说明:
Bull-Runningmodel BR2804-1700 kV
Nominalvoltage 11.1 V DC (battery up to 3 S)
MaximumDC current: 5 A(最大电流为5A)
Sevenpole pairs(极对数为7)
硬件环境搭建
开始捯饬
硬件的连接可以参考电机控制套件说明书,也就是官方的用户手册UM1949,可通过STM32中文官网www.stmcu.com.cn下载。另外需要自己备一根MINI usb的线
1)母线电压接线与U V W三相接线图
2)跳线帽的接法与主控板电源跳线帽选择部分的电路图
3)出厂已经有程序,或者自己找到安装目录中的程序进行下载,完成后可以使用上位机进行连接控制电机启动
TASK1、控制电机5s转动、5s停止 源代码请阅读原文下载,代码中,因为systick的500us的定时与SDK中一些任务的处理速度相关,这里作者觉得还是不要修改定时时间比较好。
特别说明一下:在main.c中定义uint16_t mytime; 在stm32f30x_it.c中定义extern uint16_t mytime;5S就是10000*500us,所以就可以转5S停5S了。
TASK2、PID参数的调试
写入代码后,首先看一下原始PID参数的速度曲线,图中可以看出转速的超调比较大,已经达到4000多转
接着修改程序,将程序设成2倍的PI参数和0.5倍的PI参数。通过实验可以看出,增大倍数的PID参数比减小的好,所以接下来将PI参数往大了调,分别作了2.2倍,2.5倍,2.9倍的速度曲线图。还想让超调小一点,所以作者减小了一点P参数,最终得到如下的速度曲线,通过上位机可以看到调完的参数,最后将程序中默认的PID参数改成自己的。
TASK3、状态的切换
将程序写好后,下载到板子中,我们可以看到致故障的上位机界面
然后将代码写进板子中,可以发现电机正常反转。上传关于状态机故障和清除故障的程序,大家参考StateMachineClass.h
状态机看这个图: