硬件工程师成长之路(7)——算法学习

系列文章目录

1.元件基础
2.电路设计
3.PCB设计
4.元件焊接
5.板子调试
6.程序设计
7.算法学习
8.编写exe
9.检测标准
10.项目举例
11.职业规划


文章目录

  • 前言
  • 算法大全
  • 一、控制算法
    • 1、PID算法
      • ①、PID算法的解析
      • ②、PID控制算法讲解
      • ③、PID参数解析(一文读懂PID并会调试kp,ki,kd)(位置式+增量式PID)
      • ④、STM32——PID恒温控制(含C语言程序)
      • ⑤、PID参数调节口诀
      • ⑥、PID温度控制参数整定方法
      • ⑦、Matlab调试
      • ⑧、个人经验
      • ⑨、串口波形调试助手
  • 二、滤波算法
  • 三、其他算法
    • 1、字符串模式匹配
    • 2、排序算法
      • ①、直接插入排序
      • ②、希尔排序
      • ③、直接选择排序
      • ④、堆排序
      • ⑤、冒泡排序
      • ⑥、快速排序
      • ⑦、归并排序
      • ⑧、基数排序
  • 四、可视化算法网站
    • 1、VisuAlgo
    • 2、algorithm-visualizer
  • 五、数据校验
    • 1、C语言版CRC-16系列校验算法
  • 六、数据转换
    • 1、十进制转16进制

前言


送给大学毕业后找不到奋斗方向的你(每周不定时更新)

【牛客网】构建从学习到职业的良性生态圈
中国计算机技术职业资格网
上海市工程系列计算机专业中级专业技术职务任职资格评审


算法大全

1、风仲达——算法笔记
2、坐在马桶上学算法
3、啊哈算法

一、控制算法

1、PID算法

①、PID算法的解析

PID算法的解析

②、PID控制算法讲解

通俗易懂的 PID 控制算法讲解

③、PID参数解析(一文读懂PID并会调试kp,ki,kd)(位置式+增量式PID)

PID参数解析(一文读懂PID并会调试kp,ki,kd)(位置式+增量式PID)

④、STM32——PID恒温控制(含C语言程序)

STM32——PID恒温控制

⑤、PID参数调节口诀

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低
若要反应增快,增大P减小I;
若要反应减慢,减小P增大I;
如果比例太大,会引起系统振荡
如果积分太大,会引起系统迟钝
硬件工程师成长之路(7)——算法学习_第1张图片

⑥、PID温度控制参数整定方法

先多看两个,来点印象,再调

1、PID温度控制参数整定方法
2、PID控制参数整定(调节方法)原理+图示+MATLAB调试
3、PID原理的详细分析及调节过程
4、PID调节经验
5、控温设备的PID参数选定的个人方法(真实有效)
(1) 确定比例系数Kp
确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为
纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增
大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。
记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。

(2) 确定积分时间常数Ti
比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现
振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分
时间常数Ti为当前值的150%~180%。

(3) 确定微分时间常数Td
微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,
则与确定Kp的方法相同,取不振荡时其值的30%。

(4) 系统空载、带载联调
对PID参数进行微调,直到满足性能要求。

⑦、Matlab调试

(1)、2016 matlab 中文版软件和安装教程
2016 matlab 中文版软件和安装教程

(2)matlab实现pid仿真
matlab实现pid仿真
硬件工程师成长之路(7)——算法学习_第2张图片
硬件工程师成长之路(7)——算法学习_第3张图片
硬件工程师成长之路(7)——算法学习_第4张图片
硬件工程师成长之路(7)——算法学习_第5张图片
在这里插入图片描述
硬件工程师成长之路(7)——算法学习_第6张图片
在这里插入图片描述
硬件工程师成长之路(7)——算法学习_第7张图片
在这里插入图片描述
搜索,PID
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
硬件工程师成长之路(7)——算法学习_第8张图片
在这里插入图片描述
硬件工程师成长之路(7)——算法学习_第9张图片

硬件工程师成长之路(7)——算法学习_第10张图片

⑧、个人经验

刚碰到这个东西的时候,也啥都不知道,跟着网上各种教程就瞎调,最终还真调出来了
在这里插入图片描述
(1)、首先先有程序,上面第四小节有,PID.c和PID.h可以直接用;讲的还是比较细的。
(2)、程序只是套用,调还得自己花时间调,主要调KP,Ti和Td;
硬件工程师成长之路(7)——算法学习_第11张图片
(3)、先把KP设为1,其他为0;看输出波动情况

如果输出的实际值一直缓慢上升,超过设定值了还上升,上升了好久才下来,这时应该是
KP设小了

硬件工程师成长之路(7)——算法学习_第12张图片
硬件工程师成长之路(7)——算法学习_第13张图片
硬件工程师成长之路(7)——算法学习_第14张图片
硬件工程师成长之路(7)——算法学习_第15张图片
在这里插入图片描述

(4)、KP等于刚才的值不动,TI等于100000,TD还是0;
硬件工程师成长之路(7)——算法学习_第16张图片
硬件工程师成长之路(7)——算法学习_第17张图片
硬件工程师成长之路(7)——算法学习_第18张图片

(5)、KP,TI等于刚才确定的值,TD等于1。
硬件工程师成长之路(7)——算法学习_第19张图片
硬件工程师成长之路(7)——算法学习_第20张图片
在这里插入图片描述
硬件工程师成长之路(7)——算法学习_第21张图片
以上为正常情况,下面还有不正常情况
1、检测端有问题
在这里插入图片描述
当不管怎么调整,输出就是要么一直偏高,要么一直偏低,这时候就要看看是不是你的检测的这个信号有没有问题。
2、输出端有问题
硬件工程师成长之路(7)——算法学习_第22张图片
当不管怎么调整,输出就是要么一直振荡着有缓慢上升趋势或下降趋势,这时候就要看看是不是你的输出端有问题;举个例子,假如控制到100,那么100就是保持信号,101就是当前还没达到设定值,加大输出信号,同理99就是减小输出信号。如果在线调试,99成了加,或者101成了减,那么就会出现上面的情况。

以上均为个人经验,欢迎指正。

⑨、串口波形调试助手

纸飞机调试助手

纸飞机串口调试助手观察mup6050数据波形

硬件工程师成长之路(7)——算法学习_第23张图片

二、滤波算法

嵌入式开发中常见用的10种数字滤波算法
硬件工程师成长之路(7)——算法学习_第24张图片

三、其他算法

1、字符串模式匹配

硬件工程师成长之路(7)——算法学习_第25张图片
硬件工程师成长之路(7)——算法学习_第26张图片

硬件工程师成长之路(7)——算法学习_第27张图片
硬件工程师成长之路(7)——算法学习_第28张图片

2、排序算法

算法中的排序问题总结,时间复杂度为O(n)的排序,计数排序,桶排序,基数排序
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

①、直接插入排序

在这里插入图片描述

在这里插入图片描述

②、希尔排序

在这里插入图片描述
在这里插入图片描述

③、直接选择排序

在这里插入图片描述
在这里插入图片描述

④、堆排序

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

⑤、冒泡排序

在这里插入图片描述
在这里插入图片描述

⑥、快速排序

在这里插入图片描述
在这里插入图片描述

⑦、归并排序

在这里插入图片描述

⑧、基数排序

在这里插入图片描述
在这里插入图片描述

四、可视化算法网站

1、VisuAlgo

VisuAlgo
硬件工程师成长之路(7)——算法学习_第29张图片
该网站特点:

算法可视化
文字讲解
复杂度备注
图形可操控调整

2、algorithm-visualizer

algorithm-visualizer
硬件工程师成长之路(7)——算法学习_第30张图片
该网站特点:

算法可视化
有代码
有控制台输出帮助理解
算法种类丰富

五、数据校验

硬件工程师成长之路(7)——算法学习_第31张图片

1、C语言版CRC-16系列校验算法

CRC-16 CCITT
C语言版CRC-16系列校验算法

六、数据转换

1、十进制转16进制

你可能感兴趣的:(硬件工程师成长之路,算法)