资讯详情

SimpleFOC调参1-力矩控制

目录

  • 背景介绍
  • 1 电压控制 [voltage control](https://docs.simplefoc.com/voltage_torque_mode)
    • 1.1 pure voltage:无电机参数
    • 1.2 voltage current estimation:需要相电阻
    • 1.3 voltage current estimation back-EMF compensation:需要相电阻 KV值
  • 2 电流控制 [DC current control](https://docs.simplefoc.com/dc_current_torque_mode)
  • 3 FOC电流控制 [FOC current](https://docs.simplefoc.com/foc_current_torque_mode)
  • 4. 三种不同控制方法的比较
    • 4.1 voltage
    • 4.2 DC current
    • 4.3 FOC current
  • 5. 问题在调试过程中
    • 5.1 问题1:当驱动电流单次变化过大时,电机会波动,

背景介绍

FOC广泛应用于直流无刷电机控制中最常用的算法。它是开源社区最常用的FOC项目有:simpleFOC,ODrive,VESC等。其中simpleFOC由于使用方便,支持各种硬件平台,非常适合新手入门。我在用它simpleFOC的过程中踩了不少坑,在此记录学习调试过程中的一些心得。

:最好直接买套件,熟悉后自己搭配。我在这里直接买的灯哥开源套件 电机:2204 驱动器:L6234 磁编码器:AS5600 电流检测:INA240 主控MCU:ESP32

:Arduino,simpleFOC库,simpleFOC studio图形调试工具

:PlatforIO,也可以使用Arduino IDE(编译和下载速度很慢,所以我找到了替代工具platforIO)

FOC有两种控制方法:

  • 开环控制:只需要电机和驱动器,不需要编码器和电流检测。算法简单,但控制效果差,驱动效率差。驱动器和电机容易过热烧坏,所以我烧了几个驱动器。
  • 闭环控制:需要编码器和电流检测,算法复杂,控制效果好,驱动效率高。初学者必须使用闭环控制,熟悉后才能玩开环控制。

以下是闭环控制的几种控制方法:,速度控制,角度控制。这里只总结了我自己调试的各种参数和图形意义。具体程序和方法参考simpleFOC官方文件有详细介绍。由于篇幅较长,分为两篇文章。本文仅总结扭矩控制、下一篇文章总结速度控制和位置控制。

1 电压控制 voltage control

这种控制方式类似于直流有刷电机的控制,通过设置目标电压Uq,同时读取电机角度angle(a),经过FOC算法得到相电压Ua、Ub、Uc,FOC算法保证磁场方向垂直于永磁铁磁场方向90°,以确保最大扭矩。相电压通过驱动器BLDC Driver驱动电机转动。

电压控制仅用于磁编码器检测到的角度,电机参数(相电阻,KV等等),没有PID因此,参数设置

1.1 pure voltage:无电机参数

在这里插入图片描述 有: 其中Uq:设置电压值,I:相电流,k:比例系数,T:扭矩。由于没有电流反馈,实际电压只能根据角度反馈进行估计U,因此,实际电压会不稳定。 注:本公式仅适用于低速,高速时,I = (Uq - EMF) /R,电机线圈中的反向电势会产生显著影响,等式不再成立。

1.2 voltage current estimation:需要相电阻

若设置了电机相电阻参数,则:

这种控制比pure voltage控制更准确。因为你知道相电阻,你可以很容易地计算驱动电流。相应的电压波动也要小得多。它只在低速下有效,在高速时仍受到反向电势的影响。

1.3 voltage current estimation back-EMF compensation:需要相电阻 KV值

在simpleFOC最新版(V2.2.2)增加了电机参数,KV值。在相电阻的基础上,电阻的基础上增加的。角度微分后通过角度传感器检测角度velocity(v),低通滤波后除以KV可以预测反向电势(BEMF),Ubemf = v/KV,可用作近似计算,两者不完全相等。 增加了KV当输入目标值为0时.2时,电压会降低BEMF一起计算。 当输入目标值为0时,给出启动速度,电机会旋转(因为有BEMF产生)。加载容易停止(强制)。BEMF为0)。

2 电流控制 DC current control

除了检测角度外,电流控制还需要同时检测相电流,以直接控制电流大小。控制效果远好于电压控制。算法更复杂,需要一个低通滤波器(low pass filter),1个current q PID调节器。 假设电机产生的扭矩与驱动电流成正比,扭矩可以通过控制电流来控制。这个假设的前提是低速iDC=iq,id在高速条件下,重量可以忽略不计,id重量不容忽视,iDC=iq不再成立,需要用下一节总结。FOC电流控制。

如下图所示,simpleFOC studio所有参数都通过串口显示。传感器参数显示在左上角:

  • angle:磁编码器检测到的角度,单位:弧度
  • velocity:根据angle计算:rad/s
  • current:单位:A
  • target:用户设定的目标值

实时绘制右上方区域的监测变量:target,Vq,Vd,Cq,Cd,Vel,Angle 右下角的区域是串口命令 左下方列出了simpleFOC可调参数:

  • motion config:运动配置
    • motion control type:,velocity, angle,velocity openloop, angle openloop
    • torque control type: voltage, , FOC current
    • motion downsample:1000, 频繁使用采样率/1000FOC因此,需要控制影响downsample
  • velocity PID:速度环PID控制,下一篇SimpleFOC调查2-速度控制介绍
  • angle PID:位置环PID控制,在另一篇文章中SimpleFOC3-位置控制中介绍
  • current q PID:本节详细介绍了参数的含义和相应的图形显示
  • current d PID:下一节详细介绍了参数的含义和相应的图形显示
  • limits:限制电机极限参数
    • velocity limi: 速度限制
    • voltage limit:电压限制
    • current limit:电流限制
  • States:电机状态参数
    • target:目标值
    • voltage q:电压q分量
    • voltage d:电压d分量
    • current q:电流q分量
    • current d:电流d分量
    • velocity:速度
    • angle:角度
  • sensor config:传感配置
    • zero angle offset:零角度偏移量,单位:弧度
    • electrical zero offset:电零角度偏移量,单位:弧度
  • general settings:通用配置
    • phase resistance:电机相电阻
    • motor status:电机状态 enabled,disabled
    • PWM modulation: PWM调制方式 sine PWM, space vector PWM, trapezoidal 120, trapezoidal 150
    • modulation center: 调制中心对齐 enabled, disabled motion control type 是torque力矩控制时,选择torque control type为DCcurrent时,只用到了current q PID调节器。设置target为0.2,目标是把驱动电路控制在0.2A,各参数含义及对应波形图如下:
  • proportional gain: 比例增益,影响PID控制的响应速度,P值越大响应速度越快
  • Integral gain:积分增益,累积误差的响应速度,I值为0时,current出现很大偏差,不会纠偏。I=300、500时响应见下图
  • Derivative gain:微分增益,未使用
  • output ramp:输出斜率?含义不清楚
  • output limit:输出限制,限制电压
  • low pass filter: 低通滤波器 Tf 滤波时间常数。影响滤波效果。

3 FOC电流控制 FOC current

这种控制方式是真正的完全版FOC控制。需要用到磁编码器,电流检测。将同时同时电流的q分量和d分量。目标是使desired current Id与q分量相等,d分量等于零。这样无论在低速、高速的情况下都会有比较好的控制效果,不会受d分量影响。这里用到2个PID控制器,2个low pass filter滤波器。 FOC电流控制与DC电流控制最大的区别是增加了current d控制,同样设置target=0.2,同样空载情况下,角速度可以达到175作用,而DC电流控制角速度只有80左右。用手去挡电机,让电机停止后,明显感觉力变大了。

Current d PID个参数含义与Current q PID相同,只是作用对象不同了。current q = target value, current d = 0

  • proportional gain: 比例增益,影响PID控制的响应速度,P值越大响应速度越快
  • Integral gain:积分增益,累积误差的响应速度,I值为0时,current出现很大偏差,不会纠偏。
  • Derivative gain:微分增益,未使用
  • output ramp:输出斜率?含义不清楚
  • output limit:输出限制,限制电压
  • low pass filter: 低通滤波器 Tf 滤波时间常数。影响滤波效果。

4. 三种不同控制方式对比

4.1 voltage

下图中可以看到voltage控制时电流只是估计值,空载和负载时电流变化很大。

4.2 DC current

下图可以看出DC current直接控制电流,控制效果比voltage好很多,但是还是有一部分能量浪费在了current d上

4.3 FOC current

FOC控制做到了高低速情况下都使current q=target value, current d=0,能量利用率最高,转速也最快

5. 调试过程中问题

5.1 问题1:驱动电流单次变化太大时,电机会出现震荡,

参数设置:

  • motion control type:Torque
  • torque control type:FOC current
  • Current q PID: P=5, I=1000, D=0
  • Current d PID: P=5, I=1000, D=0

现象:设置目标值由低到高时一切正常,比如M0—M0.5,M0.5–M1.0。但是设置目标值由高到底时,单次变化过大会出现过冲,电流current q直接到-2A左右,系统在此处达到平衡并震荡。

过冲值与比例因子P相关,设置current q、d的比例因子为10,结果如下图 设置current q的比例因子为20,current d的比例因子为10,结果如下图 最终如下图,可以得到比较好的结果。但是当M1.5—M0时优惠出现震荡。,如果发生巨变很可能引起电机震荡,甚至损坏电机、驱动电路。

标签: 901扭矩转速角度传感器2204传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台