【分享帖】功率限制(大方向)
![帅帅的麦兜](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000049849_avatar_big.jpg)
本人写此博客之目的,主要用于启发后人,抛砖引玉。核心代码本人不做深究讨论。(ps:CSDN和博客园是本人长期更新的地方。在官方论坛写这个,更多的是方便晚辈查找资料。因为之前鄙人在此学习过程中,走了很多弯路,但却未找到较为适合的教程便萌发了写这个东西的想法。)
地盘功率限制方案,总的思路是控制功率。(未谈论+超级电容的情况)
·故,在用PID进行调控时你就需要读取功率以及控制功率输出。
好,这是两个大方向点:1.读取功率 2.控制控制功率输出。
*那么怎样读取功率呢?
两种,一种方法是通过与官方裁判系统连接进行功率读取(50HZ)。另一种就是通过电流计或者INA226之类的,算出总电流X电压(电压大致24V左右,不会有很大波动)。
两种方法都可,但这里我选择了用官方裁判系统数据读取功率。因为我们限制功率的主要目的,是怕超功率运行导致“扣血”。而这个裁判系统扣血的“眼”,就是裁判系统自己所捕捉到的数据(功率)来决定的。
*扣血怎样避免?
这里就涉及到,裁判系统通信里面的一个东西——缓冲能量(功率超限制时会相应扣除,当未超功率会渐渐补满)。当缓冲能量无,功率又超上限时便会扣血。按照超功率比例
扣血。(详情请见每年的规则,超功率扣血那部分) 因此,只要我们牢牢地控制在这个缓冲能量>0的边缘就不会因为功率扣血。
*牢牢控制住功率在缓冲能量>0的边缘,就意味着地盘功率限制就限制好了吗?
并不是的。你要知道,W=P*T,也就是说瞬间功率高并不意味着你会被扣血,不是这样的。它是按照时间来的,按照单位时间做的功来的。(见图片,用的是伏特加上位机观察数据)
你牢牢把车功率控制住,但是车可能反应就很慢。不是那个速度慢,而是反应慢,它的加速度小。因为你的功率输出太低的,不足以让车(电机)立马转到你需要的那个状态。虽然最后也能达到状态,但是太慢了严重的直接飘逸了。(这里以后再谈)
还有比较重要的一点,就是功率再分配。你上坡时车由于重力的作用,你光前轮使力有什么用,要后轮足够的推上来才行撒。所以呢,上坡时后轮的功率应当比前轮多。它需要的力,就更大,功率就更多。不然,你前轮空白消耗那么多功率,而后轮又喘不上劲儿,这时候车卡住或者下滑或者翻车都是可能的。这些在赛场上,都是很致命的后果。
*怎样控制功率输出呢?
控制电调输出的电流,即可。(3508电机配套的C620电调最高瞬时功率:24*20=480w,底盘的话就是1920w.电调max电流20A,工作电压24V)同时,要注意裁判系统数据读取的频率,避免数据丢包严重。这里涉及到CAN电机的处理,就不详谈了。下次就直接程序图以及代码。
欢迎各位批评指正。转载请注明出处。(CSDN,博客园,同ID:帅帅的麦兜。
PS:之前发错分区了,原来发到超级对抗赛去的那个。我就删除了,重发。
地盘功率限制方案,总的思路是控制功率。(未谈论+超级电容的情况)
·故,在用PID进行调控时你就需要读取功率以及控制功率输出。
好,这是两个大方向点:1.读取功率 2.控制控制功率输出。
*那么怎样读取功率呢?
两种,一种方法是通过与官方裁判系统连接进行功率读取(50HZ)。另一种就是通过电流计或者INA226之类的,算出总电流X电压(电压大致24V左右,不会有很大波动)。
两种方法都可,但这里我选择了用官方裁判系统数据读取功率。因为我们限制功率的主要目的,是怕超功率运行导致“扣血”。而这个裁判系统扣血的“眼”,就是裁判系统自己所捕捉到的数据(功率)来决定的。
*扣血怎样避免?
这里就涉及到,裁判系统通信里面的一个东西——缓冲能量(功率超限制时会相应扣除,当未超功率会渐渐补满)。当缓冲能量无,功率又超上限时便会扣血。按照超功率比例
扣血。(详情请见每年的规则,超功率扣血那部分) 因此,只要我们牢牢地控制在这个缓冲能量>0的边缘就不会因为功率扣血。
*牢牢控制住功率在缓冲能量>0的边缘,就意味着地盘功率限制就限制好了吗?
并不是的。你要知道,W=P*T,也就是说瞬间功率高并不意味着你会被扣血,不是这样的。它是按照时间来的,按照单位时间做的功来的。(见图片,用的是伏特加上位机观察数据)
你牢牢把车功率控制住,但是车可能反应就很慢。不是那个速度慢,而是反应慢,它的加速度小。因为你的功率输出太低的,不足以让车(电机)立马转到你需要的那个状态。虽然最后也能达到状态,但是太慢了严重的直接飘逸了。(这里以后再谈)
还有比较重要的一点,就是功率再分配。你上坡时车由于重力的作用,你光前轮使力有什么用,要后轮足够的推上来才行撒。所以呢,上坡时后轮的功率应当比前轮多。它需要的力,就更大,功率就更多。不然,你前轮空白消耗那么多功率,而后轮又喘不上劲儿,这时候车卡住或者下滑或者翻车都是可能的。这些在赛场上,都是很致命的后果。
*怎样控制功率输出呢?
控制电调输出的电流,即可。(3508电机配套的C620电调最高瞬时功率:24*20=480w,底盘的话就是1920w.电调max电流20A,工作电压24V)同时,要注意裁判系统数据读取的频率,避免数据丢包严重。这里涉及到CAN电机的处理,就不详谈了。下次就直接程序图以及代码。
欢迎各位批评指正。转载请注明出处。(CSDN,博客园,同ID:帅帅的麦兜。
PS:之前发错分区了,原来发到超级对抗赛去的那个。我就删除了,重发。
请问这篇文章对你有用吗?
【分享帖】功率限制(大方向)