VESC学习
VESC的上位机使用手册
// 1.本手册对应vesc_tool版本为0.95,vesc_tool 3.00版本类似,仅做简单介绍
// 2.一切内容都可点击对应栏目尾端的显示详情
// 3.使用时相对重要的部分会加粗标红提示,其他在初学阶段可仅作了解,以后再深入学习
// 4.如果只想先了解整定流程请直接参阅“整定流程”部分
/*左侧参数栏*/
零、Welcome&Wizard:
左键为连接VESC,中键为开始整定电机的向导。
一、 Connection:
正确接线硬件设备查看((USB-)Serial)部分,Port将显示串口端口,Baud为波特率一般设置为115200bps不用更改,TCP和Bluetooth LE部分不用管。之后点击 Welcome&Wizards界面的或右边栏的,连接成功则在底部栏右侧显示信息
二、 Firmware:
vesc的固件信息,简单了解即可
三、 Motor Setting:
①. General:
1. General:Motor Type表示控制方式,一般选择FOC(关于FOC算法的相关知识可以自己找点资料,但现阶段还不用了解的太深);Invert Motor Direction表示电机认为的正转方向(给正转速时的旋转方向);Sensor Port Mode为编码器的选择,队内一般使用AS5047 Encoder;Encoder Counts表示编码器的反馈线束,与精度相关,队内为8192线
· 2. Current:Current Max和Max Brake表示运行时电流限制和刹车时电流限制,与电机参数相关,需要根据电机实际参数调整,初学时建议调整为30A;Absolute Maximum Current是绝对最大电流,峰值电流;Slow ABS Current Limit是开启滤波后的电流作为判定依据;Battery栏的内容设置同电池相关,通常与电机的参数对应;DRV8301不管
3. Voltage:检测到低于Start部分电压是电流输入会减少至End停止输入电压
4. RPM:电转速(电转速=极对数×转速)限制
5. Wattage:功率限制
6. Temperature:温度限制
7. Advanced:Minimum Input Voltage表示最低电压限制,欠电压报错依据;Maximum InputVoltage表示最高电压限制过电压报错依据;Minimum Duty Cycle表示最低占空比设置;Max Duty Cycle为最高占空比设置;Fault Stop Time表示出现报错后电机进入禁止使用状态的时间;后两项我也不知道是啥
②. BLDC不重要
③. DC不重要
④. FOC:
1. General:Sensor Mode中Sensorless表示无感模式,Encode及使用编码器,Hall及霍尔传感器,后两者为有感模式;Resistence和Inductance还有Linkage是电机参数,一般通过整定得到;Current Kp/Ki为电流环参数,通过整定得到;Observer Gain,观察者参数,用来在整定数据不太ok的情况下可以适当调整(一般直接重新整定了)
2. Sensorless(无感模式相关设置):Openloop ERPM无感模式下,低于该电转速使用开环模式换向,该项内容可根据负载特性调整;Openloop Hysteresis如果电转速在这段时间一直低于开环转速,那就转化到开环模式;Oponloop Time在触发后保持这一段时间的开环;Stator Saturation Compensation定子饱和补偿,开环模式下大电流低转速启动困难,可以尝试增大该参数以试图补偿定子饱和,但是这一项参数不要大于15%;Temp Comp对观察者使用的电机电阻进行温度补偿,当电机温度和测量温度差距过大可以开启这一补偿,低速模式下可能有一点效果;Temp Comp Base Temp测量电机电阻的温度。
3. Hall Sensors(霍尔传感器下的有感模式相关设置):暂时不需要,可以补充进来
4. Encoder(普通编码器下的有感模式相关设置):Sensorless ERPM:高于该转速,则使用无感换向;Encoder offset编码器偏移量(似乎不是很有效);Encoder Ratio编码器和电机之间的比率,比如带有直接连接编码器的14极对数电机的该项值为7;Encoder Inverted电机旋转方向控制
5. Advanced:Switching Frequency开关频率,控制器和估计器以该频率的一半运行,如果V0和V7中的“采样”选项处于活动状态,则控制器和估计器将以全开关频率运行,但此选项仅在具有相位分流器的硬件上可用(我也不知道啥意思,但是咱暂时不用);Dead Time Compensation死区时间失真补偿,低速时或许有效;Speed Tracker Kp/Ki速度跟踪器比例/积分增益,速度跟踪器通过跟踪相位角来估计电动机速度;Duty Downramp Kp/Ki占空比下降斜坡控制器的比例/积分增益,这个控制器用于占空比模式,由于占空比的下降是通过限制调制来实现的,占空比降低时可能出现较大的电流尖峰,这个控制器可以限制这些电流尖峰;D Current Injection Duty在低于工作循环的情况下注入D轴电流,可以帮助低速观测;D Current Injection Factor使用此系数乘以D轴电流注入的Q轴电流,某些情况下,D轴电流注入可以帮助低速观测;Sample in V0 and V7 对空间矢量调制的V0和V7中的电流和电压进行采样,并以两倍的速率运行控制回路可用于开关频率有限的高速电机,或用于降低调制噪声,对于给定的开关频率,此选项将需要两倍的计算能力,此选项仅适用于带有相位分流器的硬件,如VESC Six;High Current Sampling Mode在采样过程中选择最低电流以获得最高电流,由于电机电流是平衡的,并且总和为0,因此可以使用其中两个相电流来导出第三个相电流,启用此选项将使电流测量比较所有电机电流,并从两个较低的电流中得出最高电流,通过这种方式,可以测量出比ADC增益允许的电流高出2/sqrt(3)倍或大约1.15的电流,此选项仅适用于具有三个分流器的硬件,如VESC Six;Observer Gaim At Minimum Duty观测器增益按最小占空比缩放,减小该参数将使观测器在较低的调制下增益较低,这有助于跟踪电机,将此参数设置为1将使观测者增益在所有调制下保持恒定;Current Filter ConstantFOC实现中滤波电流的常数,将影响慢速abs最大电流故障触发的速度。范围从0到1,其中0是最慢的,1是无筛选。
⑤. PID
1. 速度环:正常的pid;Speed PID Kd Filter对速度控制器的导数项进行滤波,0表示忽略导数项的结果,1表示不处理;Minimum ERPM电转速低于这个值时速度控制器将被禁用;Allow Braking允许速度控制器施加制动电流,一般情况下,应该启用此选项,但对于某些应用程序,在速度控制期间禁用制动可能是有意义的。
2. 位置环:正常的PID;Position PID Kd Filter同上;Position Angle Division位置控制器的角度划分,可用于将一个控制旋转映射到多个电机旋转,有点像加减速比的操作
⑥Additional Info:
1. General:前面的都不重要;Motor Poles电机极对数;Position
Sensor 位置信息编码器,同FOC中的Sensor Mode类似,队内常用AS5047;Motor Loss Torque电机损失扭矩
2.Descrip和Quality不用管
四、 App Settings:
①. General:
1.APP to Use:不用调整
2.VESC ID:设置VESC驱动器的CAN ID,需要与单片机程序对应。VESC的ID从 1开始。
3.Timeout:超时时间,当VESC接收不到信息超过该时间后将会断连并失能电机
4.Timeout Brake Current:超时后用该电流对电机施加制动,不用调整
5.Send CAN Status:是否定期在CAN总线上发送状态消息。有助于让其他VESC 知道哪些VESC在CAN总线上。
6.Can Status Rate:当启用Send CAN Status时,状态消息发送的频率。
7.CAN Baud Rate:CAN总线的波特率,总线上的所有设备必须具有相同的波特率, 否则VESC将会无法接收到CAN报文。队内CAN的波特率为1M。
②.PPM:
1.General:
1>Control Type:控制方式
Off:无论输入如何,输出都将关闭。
Current:电流控制。当输入居中时,输出关闭。输入小于中心的制动器, 直到电机停止,此时电机以相反方向启动。
Current No Reverse:电流控制。当输入最小时,输出关闭。
Current No Reverse Brake:电流控制。当输入居中时,输出关闭。输入 小于中心的制动器,直到电机停止,但不能进一步停止。
Duty Cycle:电流控制。当输入居中时,输出关闭。小于中心的输入给出 负占空比。
Duty Cycle No Reverse:占空比控制。当输入最小时,输出关闭。
PID Speed Control:PID速度控制。当输入居中时,输出关闭。小于中心 的输入给出负的设定速度。
PID Speed Control No Reverse:占空比控制。当输入最小时,输出关闭。
2>Median Filter:是否对解码的脉冲使用中值滤波器。开启后将略微延迟信号, 但会避免由噪声引起的异常值。
3>Safe Start:是否开启安全启动
4>PID Max EPRM:使用PID速度控制时与最大输入相对应的电转速设置点。
5>Positive Ramping Time:正斜坡时间常数。通过斜坡来过滤输入,这个常数 表示从零到完全输出所需的秒数。
6>Negative Ramping Time:负斜坡时间常数。与上个参数恰好相反。
<7.8.9是总线上存在多个VESC时需要考虑的参数>
7>Multiple VESCs Over CAN:是否监听CAN总线上的其他VESC,并向它们 发送相同的控制命令。请注意,只需在主VESC上设置应用程序。
8>Traction Control:是否启用通过CAN总线连接的多个VESC之间的牵引力 控制。
9>TC Max ERPM Difference:最快的电机完全关闭的ERPM差异。如果ERPM 的差值低于该差值,则流向更快电机的电流将按比例缩小。
2.Mapping和Throttle Curve不重要
③.ADC:参考PPM,不重要
④.UART:设置波特率为115200bps即可
⑤.Nunchuk:参考PPM,不重要
⑥.Nrf:
五、 Data Analysis:
①.Realtime Data:接收VESC反馈来的电机数据,需要打开右侧栏的按钮才能接收
1.Current:电机电流
2.Temperature:电机温度
3.RPM:电机转速(实际上是电转速)
4.FOC:FOC算法下给出的直轴与交轴电流ID与IQ
5.Rotor Position:转子位置,对于无感模式而言,可以点击右侧的Observer观察;对于有感模式而言,可以点击右侧的Encoder观察,Encoder的数据会随着电机转动而在0-360之间变化,在判断编码器是否有问题时,可以观察此界面的数据是否随电机转动而变化。
②.Sampled Data:不重要
/*右侧操作栏*/
连接
断连
读取Motor Settings参数①
复位Motor Settings参数
写入Motor Settings参数①
读取App Settings参数②
复位App Settings参数
写入App Settings参数②
启用方向键控制③
启用数据波形图④
不重要
启用心跳报文
不重要
①:当整定完成后,你在之后对任何Motor Settings参数的修改(例如PID)都必须点击“写入Motor Settings参数”键才能使之写入VESC从而生效,这点还请切记!当整定完成后,整定的数据将存入VESC驱动器中并得以保存,允许掉电或插拔(注意:由于三相线的接法会影响电机的正方向,因而尽量不要拔掉电机与驱动器的三相线连接,如果非要如此,请记住三相线线序并在下次按原序接回)而不丢失,当下次使用同一块VESC整定同一电机时,可以直接点击“读取Motor Settings参数”键来直接获取相关信息而无需重新整定。
②:同理于①,整定完成后如果修改App Settings的参数(例如VESC ID)都必须点击“写入App Settings参数”键以生效,当下次使用同一块VESC整定同一电机时,可以直接点击“读取App Settings参数”键来直接获取相关信息。综合①②,在修改参数完成后,请统一点击“写入Motor Settings参数”和“写入App Settings参数”;当下次使用同一块VESC整定同一电机时,请统一点击“读取Motor Settings参数”和“读取App Settings参数”。
③:启用方向键控制后,可以用上下左右键控制电机转动,其中上下键控制加正反向电流,左右键控制加正反向速度。一般用来检验整定后电机是否能正常控制,在加电流时电机会不断加速,请留心占空比不要过大,注意安全!(同时按下左右键也会为电机加速,请小心)
④:启用数据波形图后,便可以在Realtime Data中查看电机运行时的各项参数了。
/*下方操作栏*/
当电机整定完成后,我们便可以设定下方操作栏的参数来控制电机了
1.D:占空比模式,设置电机运行时的占空比
2.I:电流模式,设置电机运行时的电流
3.ω:速度模式,设置电机运行时的速度
4.P:位置模式,设置电机要转到的角度
以上四个模式相互独立,要使用哪个模式时,就在哪个模式对应的文本框中修改参数,并点击该模式右侧对应的按键,请注意:在按下该按键后,电机就会立刻启动,请注意安全!
我们一般只会用到速度模式,初学时速度请设置在10000-25000 ERPM之间。
停止电机的按钮是这两个:
左边的按钮是急停,右边的按钮是缓停,可以都试试看感受一下区别。
最右边的是状态栏:
上方为占空比,可以根据占空比判断当前状态下的电机负荷情况,并推测电机满载值
下方为当前电机电流情况,电流的最大值不会超过整定时设置的最大电流
占空比和电流都有正负显示,当占空比过大或电流拉满时,请立即停止电机!
/**整定流程**/
在整定之前,请确保硬件连接无误且已连接上VESC
在Welcome&Wizard界面,点击下方中键Motor Setup Wizard[Motor]弹出如下界面:
点击Next后弹出如下界面:
点击Next后弹出如下界面,在这里设置电机运行的最大电流,初学时建议把Motor Current Max和Motor Current Max Break都设置为30A:
点击Next后弹出如下界面,在这里设置电池节数,我们在Cell这里修改为6,并点击Apply:
点击Next后弹出如下界面,在这里设置无感或有感模式,无感请选择Sensorless,有感请选择队里使用的AS5047 Encoder编码器:
点击Next后弹出如下界面,我们会在这个画面整定电机,请注意安全!
请根据向导,先点击问号图标右边的第一个按钮,此时VESC会检测电机的电阻与电感,弹出如下对话框后点击OK,电机将会在短暂延迟后产生明显的噪声,属正常现象,这一步通过后,R和L的背景颜色将会变成绿色。
接下来,按顺序点击问号图标右边的第二个按钮,此时VESC会检测电机的旋转参数,请注意:在弹出的对话框中点击OK后,电机将会高速旋转,请确保电机已经被良好固定且旋转过程中不会受到任何阻滞,这一步非常危险,初学时最好有学长陪同,请注意安全!这一步通过后,λ,KP,KI和Observer Gain的背景颜色将会变成绿色。当所有的框都变为绿色后(如下图),意味着这一步的整定完成,点击Apply上传参数。
IF:在这一步中很有可能会出现整定失败的情况或看似整定成功的情况。整定失败的明显特征是点击OK后连续出现三次噪声(这是VESC在尝试让电机旋转起来,无需惊慌,有时候第一次不行,后面两次就可以了),最后弹出带有红色感叹号的警告框(当然有时候它能转起来,是否整定失败的关键还是看该警告框是否出现)。由于这一步的整定与是否有感整定无关,故大概率是由于电机阻力或机械结构等问题导致的,此时我们可以通过调高I,λ或降低ω来尝试通过整定。通常调大I不超过10A,占空比λ不超过0.7(一般I给7-8A就可以了)。这样子VESC将会加大功率来让电机转起来以测定参数,当然这么做带来的必然结果是电机会转的更快,因而也是非常危险的!
有的时候也会出现看似整定成功的情况,其明显特征就是虽然框都绿了,但参数非常不对劲,例如R和λ的值达到了几千的情况,这也是不合理的,即使整定完成电机也转不起来,请按照上面的方法重新整定。
这一步会出现非常多可能的异常情况,如果自己尝试无果后请联系学长解决!
如果成功通过了这一步,对于无感模式来说,整定便已经完成了;而对于有感模式而言,我们还有最后一步,即整定编码器,点击Next后弹出如下界面:
点击I:10.00A后的启动键,电机就会开始有感整定,具体分为两步,首先电机会朝着一个方向缓慢运动后反向,如果编码器连接无误,接下来电机会朝着一个方向脉动后反向并完成有感整定。如果编码器连接出现错误,电机会在第一步完成后弹出错误窗口,请检查你的编码线连接以及编码器本身是否有问题(可以在Rotor Position->Encoder中检查)
这一步完成后,恭喜你,你就已经完成了一个电机的整定,可以通过方向键或下方操作栏来尝试控制电机了!如果方向键控制没什么问题的话,电机整定就基本算通过了,下方操作栏的控制与PID有一定的关系,请尝试调整PID得到完美的控制曲线吧!
最后来总结一下一般的整定流程吧:
先空载整定各基本参数,PID可以先不着急整定,但可以大致看看纯Kp曲线最后会不会趋平,如果会有固有振荡,则机械上可能存在一定问题。当完成基本参数整定后,这些参数会被保存在本杰明板里,因而一般整定完成后电机与本杰明连接的三相线,编码器与本杰明连接的编码线就不会再进行拆卸。当装上负载并连接完成后,依次点击连接本杰明,并把本杰明的数据读到电机里,之后就可以整定PID了。
/**其他事项**/
1.祖传PID:
2.关于位置环:
VESC的位置环范围仅限0-360°
但利用PID Controllers->Position Controller->Position Angle Division调整减速比以实现转多圈的效果。
VESC位置环符合约瑟夫环思想,即总是以最近角度达到所在的位置。例如现在角度为260,如果输入10,VESC不会认为从260反转到10,而认为是260正转到10(260->360(0)->10)
3.关于VESC驱动器警报:
红灯闪三下:芯片故障
V3.00使用说明(大本杰明)
1.整定流程:
Autoconnect不变->Setup Motors VESC->电机选型为Small Outrunner->Battery Cells Series=6->设置减速比(电机侧与轮系侧比例,如果直驱则直接勾选Direct Drive即可)->Run Detection(no CAN),之后VESC就会自动完成整定流程,基本流程仍是振动->转圈->编码器。
整定成功后会弹出如下窗口,重要参数是最后一个Sensors,它表明了你是否使用编码器(有感还是无感),之后把界面close即可,整定完成。
注意:大本杰明缺省的波特率CAN Baud Rate是500K,要把它改成队里通用的1M(在App Settings->General->CAN Baud Rate里)
调整Can Status Message Mode可以将本杰明反馈的报文设置精简或详细,可以发送0-5条不同信息的报文,一般设置为4即可(4即为对应小本杰明的0x901-0x908,反馈最基本的速度角度电流信息)
后记
在此之前,队内一直都没有一个系统的VESC使用指南,该指南由戚竣皓提议与牵头制作,由戚竣皓与沈畅进行编辑与审稿,由刘昕磊负责部分截图的提供。本指南首次完成于2023.8.24,不足与错误在所难免,希望后人不断完善。
- @Description: WHU机器人队VESC使用指南
- @Version: 1.0.0
- @Date: 2023-08-24 15:36:49
- @LastEditTime: 2023-08-24 15:36:49
—-WHU_ROBOCON All Rights Reserved—-