智能车学习(二十二)——浅谈速度控制

一、经典PID控制

      使用遇限反向PID会比较适合有加减速的车子,使用变速积分适合跑匀速的车子。然后这种方法的条件下,一定要尽可能缩短控制周期。。

 

二、PID加棒棒控制

      针对C车,因为电机太弱了。所以可以使用棒棒进行加减速可以有效的提升车子性能。一般推荐控制周期10ms

 

三。模糊控制

时间: 2025-01-07 11:23:37

智能车学习(二十二)——浅谈速度控制的相关文章

智能车学习(十二)——智能车原理

一.直立行走任务分解 1.任务分解 (1) 控制车模平衡:通过控制两个电机正反向运动保持车模直立平衡状态 (2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制.(3) 控制车模方向:通过控制两个电机之间的转动差速实现车模转向控制. 三个分解后的任务各自独立进行控制.由于最终都是对同一个控制对象(车模的电机)进行控制,所以它们之间存在着耦合.为了方便分析,在分析其中之一时假设其它控制对象都已经达到稳定. 二.车模平衡控制 1.平衡控

智能车学习(二十)——浅谈C车硬连接与软连接

一.为何要追求软连接?       车子进行软连接之后,可以达到一种效果,就是在高速过程中,车子如果快要发生侧翻的时候,只会跳一个后轮,且只是轻微,而前轮如果进行的内倾,就可以让前轮最大面积接触,增大摩擦力,在这种调节下,可以保持高速而不会翻车,且不会减速,增加过弯速度.然后还有在过陂的时候,可以有减震的作用(说到底就是C车电机太差了 = = ).       但存在一种情况..电机过分差的时候..速度无法过高,否则的话直接翻车,比赛结束.       经过个人的分析比对,参考上届的国特学长,以

智能车学习(十八)——电机学习

一.C车电机选择 1.摘要:      因为C车模在四轮车的优势是有两个电机,可以进行主动差速,劣势是电机太弱了....所以如何选择电机,就是个钱的问题了,电机多一点,就比较好选,但是C车电机跑多了就会变的很弱很弱.所以请准备好钞票. 2.选择方法: (1) 使用恒流源,配合单片机程序,测试出,对应电压的电流和转速,一般采样10个点即可,正反转都要   (2)使用Matlab进行相关性拟合(以电压和电流为输入),转速为输出,得到  cnt = a * V + b * I   中a和b的参数(正反

智能车学习(十四)——K60单片机GPIO学习

一.头文件: #ifndef __GPIO_H__ #define __GPIO_H__ #include "gpio_cfg.h" #include "common.h" //端口宏定义 typedef enum PORTx { PORTA, PORTB, PORTC, PORTD, PORTE } PORTx; //定义管脚状态 typedef enum GPIO_CFG { //这里的值不能改!!! GPI = 0, //定义管脚输入方向 GPIOx_PDDR

智能车学习(十九)——K60单片机定时中断学习

一.头文件 #ifndef _PIT_H_ #define _PIT_H_ extern uint32_t zero; //定义定时器 typedef enum PITn { PIT0, PIT1, PIT2, PIT3 } PITn; void pit_init(PITn, u32 cnt); //初始化PITn,并设置定时时间(单位为bus时钟周期) #define pit_init_ms(PITn,ms) pit_init(PITn,ms * bus_clk_khz); //初始化PITn

智能车学习(十五)——K60单片机ADC学习

一.头文件: #ifndef __ADC_H__ #define __ADC_H__ 1 #include "adc_cfg.h" /* #define ATD_B11_Check() ad_once(ADC1,SE15,ADC_10bit) ///B11 #define ATD_B10_Check() ad_once(ADC1,SE14,ADC_10bit) ///B10分压 #define ATD_B3_Check() ad_once(ADC0,SE13,ADC_10bit) //

智能车学习(十六)——K60单片机EXIT外部中断

一.头文件: #ifndef _EXTI_H_ #define _EXTI_H_ typedef enum exti_cfg { zero_down = 0x08u, //低电平触发,内部下拉 rising_down = 0x09u, //上升沿触发,内部下拉 falling_down = 0x0Au, //下降沿触发,内部下拉 either_down = 0x0Bu, //跳变沿触发,内部下拉 one_down = 0x0Cu, //高电平触发,内部下拉 //用最高位标志上拉和下拉 zero_

智能车学习(十九)——硬件电路设计

一.摘要 在华南赛之后,重新对车子进行布局,设计车模结构之后,实测一切OK,匀速可以达到3米2的水平.(直道少,连续弯居多),但需要驱动主板集成 二.板子展览

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

#HTTP协议学习# (十二)理解转发与重定向

本文转自:http://blog.csdn.net/meiyalei/article/details/2129120  生动清晰 解释一 转发是服务器行为,重定向是客户端行为.为什么这样说呢,这就要看两个动作的工作流程: 转发过程:客户浏览器发送http请求---->web服务器接受此请求-->调用内部的一个方法在容器内部完成请求处理和转发动作---->将目标资源发送给客户:在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的r