编码器
绝对型编码器:每一个相位都会有相应的编号,即使转轴不转动,也会有信号输出
增量型编码器:转轴不转动时无信号输出。
增量型编码器有两个输出,分别为A相、B相。相位差为90度
、
定时器编码器模式读取脉冲数据
Encoder Mode 编码器模式
平衡车上的轮子转一圈单项脉冲数为384,那么轮子转一圈,AB相捕获到的脉冲数即为1536(384 X 4 (四倍 )个
CubeMX上设置的编码器模式好像只适合与AB相的编码器,如果只有一相的话应该是测不了的
所以如果是单相的,那就用外部中断的方式去读取
M法测速(适合电机转速较高的场合)
分辨率:要想提高分辨率,要么增加刻线,要么增加单位测量时间
测量精度: 如果要降低测量的速度下限,那么就可以增加线束,或提高测量单位时间,使一次采集的脉冲尽可能多
离散化PID控制算法
PID:Proportion(比例)、Integral(积分)、Differential(微分)
位置式PID算法
它也被成为位置式PID算法或全量式PID算法。 它与之前所有的偏差都有关系。
它适用于不带积分部件的机构(不带记忆性的执行机构)(例如直流减速电机)
凑式法:先调比例相,然后调微分相,最后加积分项。
增量式PID算法
采样周期:
增量式PID与位置式PID比较
增量式PID是位置式PID改进后的版本。
上图内容来自如下文章:
增量式pid和位置式PID参数整定过程对比 - prayer521 - 博客园
其他参考资料链接如下:
位置式PID与增量式PID区别浅析_Z小旋-CSDN博客_增量式pid
主要是注意增量式PID的整定与位置式PID的整定方式不同,增改量式的PID的Ki相当于位置式PID的KP,增量式PID的KP相当于位置式PID的Kd。
并行PID控制自平衡小车
速度控制的输出作为直立控制的输入,直立控制的输出作为系统的输出。
直立控制采用PD控制。速度控制采用PI控制(因为编码器可能存在噪声,为防止噪声被放大并消除系统的误差,所以速度控制采用PI控制)
喵呜实验室的自平衡车代码并没有直接使用串级控制系统
匈牙利命名法
变量名 = 属性 + 类型 + 对象描述
全局变量: g_ 常量:c_ 静态变量:s_
constant variable常量 global variable全局变量 static variable静态变量