自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 【从零开始的两轮自平衡车程序设计】04——控制算法之PID

姿态环只有PD,控制律中其实使用PD是最好的,因为不会导致系统升阶,但是D通常会有问题,因为如果通过俯仰角做差分,会把噪声放大,加滤波又带来延时,好在我们有陀螺仪。线性化后的状态方程可以这么写,如果不看转向环,即最后两个变量,那么这个状态方程的控制率设计为全状态反馈,通过配置好系数K,使得A-BKI的行列式全为负实数根,那么就收敛,这其实就是LQR是基础。除此之外,有个反直觉的事,速度环是正反馈,而不是负反馈,这也是由于单输入多输出系统的影响,速度的方程中,通过姿态产生抑制项,从而保证稳定。

2025-07-05 14:10:44 451

原创 【从零开始的两轮自平衡车程序设计】03——KEIL程序编写

c.卡尔曼滤波:这是从互补滤波的进一步,两个信息来源要组合,到底该多少系数合适,卡尔曼就是解决了这个问题,按照信息的方差的反比来设计比例,方差小的系数大,但是方差的多少是要由你来设定的,Q和R矩阵的大小。b.互补滤波:在a的基础上加上对陀螺数据的应用,俯仰角的变化速率是Gx,那么k时刻的俯仰角可以认为是k-1时刻的俯仰角加上Gx*T,但是陀螺也有缺陷,它的数据长期会漂移,就是它数据有零偏,这个零偏是随机游走的,而且积分后,这个零偏不像白噪声可以变成0,它会一直增大,所以不能完全使用陀螺数据。

2025-07-05 13:19:30 500

原创 【从零开始的两轮自平衡车程序设计】02——CUBEMX底层配置

【从零开始的两轮自平衡车程序设计】02——CUBEMX底层配置

2025-07-05 11:39:32 244

原创 【从零开始的两轮自平衡车程序设计】01

如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。如图的两轮小车,由硬件、软件、算法构成,硬件很多开源的,自己画也行,我是买的淘宝的,这样只需要写程序就行。无图无真相,第一步先传源码,后续再展开具体怎么实现,ch1就到这。6.直立环、速度环、转向环。8.PID/LQR/其他。1.STM32基础架构。5.MPU6050配置。9.TIM编码器功能。

2025-06-13 07:41:39 219

原创 关于温度滤波

采用18B20进行温度采样,最小分辨率1/16℃,然后计算温变速率用以进行数据补偿。 尝试了以下三种方法:温度取一分钟均值后,计算温变速率;利用TD计算;先差分求速率,然后低通滤波 结论:对速率进行低通滤波效果最好,代码最简单。 分析:真的很遗憾,第一次感受到了理论和工程实际的差距,TD的滤波效果是有限的,特别是输入的误差方差太大的时候,不如一个大的低通滤波来的平滑。其次,微分后应该滤波,因为微分导致高频信号赋值增大。

2023-03-03 17:16:30 859

原创 Kalman滤波器学习记录(三)

Kalman滤波器学习笔记

2022-08-01 20:41:40 349

原创 Kalman滤波学习记录(二)

Kalman滤波学习笔记

2022-07-31 18:27:21 377

原创 Kalman滤波学习记录(一)

Kalman滤波学习笔记

2022-07-31 15:32:44 188

原创 stm32cubeMX+HAL库+串口DMA+iap跳转+DCache

1.串口dma中断接收hal_uart_receive_it只能接收一次,要把他放在中断函数里才能连续接收,且while前要使用一次。dma的fifo能减少进入dma中断的时间,但是并不大。DCache会与dma冲突,导致数据在缓存里,dma读不到数,这是数据一致性的问题,可以解决,但是麻烦2.iap跳转通过串口接受到数据,数据写入内部flash,再执行跳转函数。注意bootloader程序的dma只能normal模式,否则跳转后卡死在dma中断程序里。通过右键文件属性可以看到生成的bin文件字

2021-10-26 11:10:16 803 1

原创 stm32cube,hal库来实现PS2手柄数据发送

stm32cube,hal库来实现PS2手柄数据发送很久前买了个PS2的手柄,如下,之前以前不会使用cube来配置工程,导致写程序很麻烦,对我这样的新手很不友好,看卖家提供的程序也很麻烦,拉高拉低的。现在接触了cube,决定用cube库来实现下,这样添加或者更改配置也方便。1.cube配置我使用的是STM32F103C8芯片,需要配置SPI,引脚随意,默认或者自己改都行,spi配置如下8位数据,LSB低位在前,分频依据时钟定,主要是波特率250k bits/s,时钟极性高,就是说平时是高,时钟相

2021-01-24 10:28:11 4094 5

平衡小车源代码,具体见专题文章

平衡小车源代码,具体见专题文章

2025-06-13

匀加速(变加速)运动Kalman滤波器MATLAB代码

匀加速(变加速)运动Kalman滤波器MATLAB代码 kalman滤波器初学者

2022-08-01

PS2手柄源码.zip

STM32F103利用HAL库编辑PS2手柄

2021-02-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除