SimpleFOC调参1-力矩控制

背景介绍

FOC作为直流无刷电机控制最常用的算法,得到广泛应用。在开源社区最常用的FOC项目有:simpleFOCODriveVESC等。其中simpleFOC因其简单易用,支持多种硬件平台,很适合新手入门。我在用simpleFOC的过程中踩了不少坑,在此记录学习调试过程中的一些心得。

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

软件平台:Arduino,simpleFOC库,simpleFOC studio图形化调试工具

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

FOC控制方式有两种:

  • 开环控制:只需要电机、驱动器,不需要编码器、电流检测。算法简单,但是控制效果差,驱动效率差。驱动器、电机很容易过热烧坏,我就烧过一个驱动器,好几个电机。
  • 闭环控制:需要编码器、电流检测,算法复杂,控制效果好,驱动效率高。初学者一定要用闭环控制,等熟悉了之后再玩开环控制。

这里主要总结闭环控制的几种控制方式:力矩控制,速度控制,角度控制。这里只总结了我自己调试的各种参数及图形化含义。具体程序和方法参考simpleFOC官方文档,里面有详细介绍。由于篇幅较长,分为两篇来写,本篇只总结力矩控制,下篇总结速度控制、位置控制

1 电压控制 voltage control

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

电压控制只用到了磁编码器检测到的角度,电机参数(相电阻、KV值等),没有PID参数设置,所以各个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)。

由于电压控制没有用到PID调节器,所以修改所有PID参数都不会对结果产生影响。

2 电流控制 DC current control

在这里插入图片描述
电流控制除了需要检测角度之外,还需要同时检测相电流,从而能够直接控制电流大小,控制效果比电压控制好很多,算法要复杂一些,需要用到1个低通滤波(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:torque,velocity, angle,velocity openloop, angle openloop
    • torque control type: voltage, DC current, FOC current
    • motion downsample:1000, 采样率/1000,频繁采用会对FOC控制造成影响,所以要downsample
  • velocity PID:速度环PID控制,在下一篇SimpleFOC调参2-速度控制中介绍
  • angle PID:位置环PID控制,在另一篇SimpleFOC调参3-位置控制中介绍
  • 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左右。用手去挡电机,让电机停止后,明显感觉力变大了。这也说明:torque扭矩控制,控制的是驱动电流大小,而不是真实的电机扭矩

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时优惠出现震荡。要想获得稳定的加减速过程,需要逐步加速、减速,不能让力矩控制环中的电流current q、d发生巨变,如果发生巨变很可能引起电机震荡,甚至损坏电机、驱动电路。
在这里插入图片描述

  • 16
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Carsim是一种车辆动力学模拟软件,用于模拟车辆的运动行为和动力学特性。转向力矩控制是Carsim中的一项功能,用于控制车辆的转向动作。 转向力矩控制是通过对车辆的转向系统施加特定的力矩来实现车辆转向的过程。该控制方法通常通过车辆操纵系统中的转向机构传递力矩到车轮,从而产生转向动作。 在Carsim中,转向力矩控制可以通过多种方式实现。一种常见的方法是使用电动助力转向系统,该系统通过电机产生力矩来辅助驾驶员的转向操作。另一种方法是使用液压助力转向系统,该系统通过液压力矩转换器产生力矩来辅助转向。 在Carsim中,转向力矩控制可以通过调整控制参数来实现,例如调整助力转向系统中的助力系数或液压助力转向系统中的液压阻尼系数。通过调整这些参数,可以改变转向系统的灵敏度和转向力矩响应速度,从而影响整个车辆的操控性能。 转向力矩控制对车辆的操控性能具有重要影响。合理地调整转向力矩可提高车辆的操控稳定性、转向精度和驾驶员的操控感受。因此,在使用Carsim进行车辆动力学模拟时,合理地设定转向力矩控制参数是非常重要的。 综上所述,Carsim中的转向力矩控制是通过施加特定的力矩来实现车辆的转向动作。通过调整控制参数,可以改变转向系统的灵敏度和响应速度,从而影响整个车辆的操控性能。 ### 回答2: CARSim转向力矩控制是一种用于汽车动态控制的技术。转向力矩控制是指通过调节汽车的转向力矩,来改变汽车的转向响应和稳定性。 在CARSim中,转向力矩控制是通过控制转向系统中的电动助力转向(Electric Power Steering, EPS)系统实现的。EPS系统通过操纵转向机构,为驾驶员提供较佳的转向操纵感觉和车辆稳定性。 转向力矩是驾驶员在转向操作中需要施加的力量,它影响汽车的转向速度和转向角度。转向力矩控制的目标是在满足驾驶员的操纵意图的同时,使车辆的转向响应平稳和稳定。 在CARSim中,转向力矩控制的实现通常采用车辆动力学模型和控制算法。首先,通过建立车辆动力学模型,可以获取车辆的转向特性和操纵性能。然后,通过控制算法计算出实现期望转向响应的转向力矩指令。最后,将转向力矩指令传递给EPS系统,使其调节转向系统的输出力矩。 通过转向力矩控制,可以改善车辆的转向稳定性和操纵性能。例如,可以减小车辆的转向迟滞和转向过程中的震动,提升车辆的操纵舒适性。此外,转向力矩控制还可以根据不同的驾驶条件和路面状态,自动调节转向系统的输出力矩,提升车辆的安全性和稳定性。 总而言之,CARSim转向力矩控制是一种用于调节汽车转向响应和稳定性的技术。通过控制EPS系统中的转向力矩,可以提升车辆的操纵性能和安全性。这一技术对汽车制造商和驾驶员来说具有重要意义。 ### 回答3: Carsim转向力矩控制是指通过控制车辆的转向力矩来实现车辆的转向动作。转向力矩是指施加在车轮上的力矩,用于改变车轮的方向和角度。在Carsim中,通过控制转向力矩来调整车辆的转弯半径和稳定性以及改善车辆操控性能。 转向力矩控制通常应用于电子稳定控制系统(ESC)中,通过传感器监测车辆的行驶状态来实时调整转向力矩,确保车辆在转弯时的稳定性和安全性。 具体的转向力矩控制策略可以根据车辆的操控需求和驾驶情况来设计。一种常见的控制策略是根据车辆的侧滑角(即车辆横向滑移角)来调整转向力矩。当车辆出现侧滑时,控制系统会增大转向力矩来改变车轮的方向,使车辆重新稳定。 此外,转向力矩控制还可以与其他系统结合使用,例如牵引力控制系统(TCS)和制动力控制系统(ABS)。通过综合利用这些系统的信息和控制策略,可以更精确地调整转向力矩,提升车辆的操控性能和安全性。 总之,Carsim转向力矩控制是通过调整车辆的转向力矩来实现转向动作,并提升车辆的操控性能和安全性。这一控制策略可以应用于电子稳定控制系统中,并结合其他系统来实现车辆的稳定转弯和行驶安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值