四轮电磁------速度环增量式PID

这是我的第一次书写博客,仅代表我个人看法,若有问题希望各位大佬不吝赐教!!!

我们最近正在准备智能车四轮电磁的校内赛,我采用的是英飞凌的TC264单片机,使用的软件是AURIXTM Development Studio。以下是我在近日对速度环的一些学习。

例程学习+硬件测试

正式开始做一个项目,首先,我们学会使用这个软件和例程。例程是商家提供给我们学习测试硬件的一个代码,我们需要的是学会看,并且可以举一反三;与此同时,我们需要使用例程测试我们的硬件是否完好。在完全掌握和硬件测试之后,我们才能正式开始写代码。

速度环增量式PID

在博客里,介绍增量式的已经很多了,作为一只小菜熊,我就浅浅的把我的代码放出来请各位大佬指正指正。

PID结构体

typedef struct
{float actualValue;//真实值float set_point;//期望值float K_p;float K_i;float K_d;float sum_error;//本次errorfloat last_error;//上一次errorfloat last_2_error;//上两次error
}Pid;

设置PID参数

void setPIDParam(Pid* pid,float set_point,float p,float i,float d)//设置PID参数,
{pid->set_point=set_point;pid->K_p = p;pid->K_i = i;pid->K_d = d;
}

速度环PID

/***************************** 增量式pid* 控制电机* {* 本次误差 = 目标值-实际值* P输出 =Kp (本次误差-上次误差)* I输出 = Ki本次误差* D输出 =Kd (本次误差-2*上次误差+上上次误差)* ID输出 += P输出+I输出+D输出* 上上次误差=上次误差* 上次误差 = 本次误差* }***************************/
int32 speed_pid_ctrl(Pid *PID,int value)
{if(value<0){value=-value;i=0;}else i=1;PID->sum_error=PID->set_point-value; /*本次误差*/PID->actualValue += (PID->K_p * (PID->sum_error - PID->last_error))                          /* 比例*/+ (PID->K_i * PID->sum_error)                                             /* 积分 */+ (PID->K_d * (PID->sum_error - 2 * PID->last_error + PID->last_2_error));  /* 微分 */PID->last_2_error = PID->last_error;                                        /*储存偏差 */PID->last_error = PID->sum_error;if(PID->actualValue<2000)PID->actualValue=2000;if(PID->actualValue>6000)PID->actualValue=6000;if(i==1)return ((int32)(PID->actualValue));                                   /* 返回数值 */elsereturn ((int32)(-PID->actualValue));
}

PID在主函数的设置

    setPIDParam(&speed_left_pid,230,13,1.4,0);//左轮pidsetPIDParam(&speed_right_pid,230,13,1.4,0);//右轮pid

以上,便是我在写pid的一个简单过程,希望能够对初学者有一点帮助。
当然,如果有遗漏的地方,欢迎各位大佬指正。

过程中的简单问题

1.AURIXTM Development Studio这个软件对代码的要求很高:变量定义类型不同,会产生warning;全局若出现两个相同的变量名词,会产生error等等,遇到了很多不同的代码问题(这里想说一下,并不是所以的软件都需要之这样的要求,还是因软件而异)。
2.在这个过程中,我还遇到了一个硬件问题:我们对电机的控制是通过两个引脚(DIR和PWM)加上GND控制。

其中:
21.2 21.4 控制PWM
21.3 21.5 控制DIR

四轮电磁------速度环增量式PID相关推荐

  1. 位置式Pid和增量式Pid的定义及应用

    PID算法是一个典型的闭环控制系统.P.I.D,比例.积分.微分. 开环:输入量对输出量没有反馈作用: 闭环:输入量对输出量有反馈作用. 位置式Pid 位置式Pid就是位置闭环控制,位置闭环控制就是根 ...

  2. 入门智能车 | 带你认识PID闭环控制 - 增量式PID实现电机速度闭环

    带你认识PID闭环控制 - 增量式PID实现电机速度闭环 闭环控制是指控制论的一个基本概念.指作为被控的输出量以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系.带有反馈信息的系统 ...

  3. 增量式速度pid调节策略_增量式PID是什么?不知道你就落伍了

    目录 1 什么是增量式PID? 2 举个例子 2.1 位置式PID 2.2 增量式PID 3 伪算法 4 C语言实现 5 总结 在之前一篇博客中( 简易PID算法的快速扫盲 )简单介绍了PID算法的基 ...

  4. 四轮电磁------电磁循迹位置式PID

    四轮电磁------电磁循迹位置式PID 看了很多篇博客,针对我们智能车校内赛的电磁循迹,我对循迹方案如下: 电磁前瞻+舵机+例程 我们使用的是龙邱科技的电磁前瞻: 舵机 舵机是由占空比控制旋转方向, ...

  5. Arduino 让小车走直线的秘密 增量式PID 直流减速编码电机

    直流减速电机增量式PID 通俗易懂版 对于我一个双非学校没上过自控的电子专业本科生而言,这个东西真的是太难了,之前研究了一个A4950驱动,价格便宜,驱动能力高,安全性高,便捷性高,一句话就是比L29 ...

  6. 位置式PID与增量式PID——理论推导

    本文从数字化实现的角度理解PI(proportional integral, PI)环节,为数字化实现PI打下基础.在电机控制环节中,PI环节应用广泛,如电机FOC控制中的内环--电流环,外环--速度 ...

  7. C语言实现PID算法:位置式PID和增量式PID

    原创者微信公众号 PID算法可以说是在自动控制原理中比较经典的一套算法,在现实生活中应用的比较广泛. 大学参加过电子竞赛的朋友都应该玩过电机(或者说循迹小车),我们要控制电机按照设定的速度运转,PID ...

  8. 基于自适应算法和增量式PID算法的模拟直升飞机控制系统

    基于自适应算法和增量式PID算法的模拟直升飞机控制系统 文章目录 基于自适应算法和增量式PID算法的模拟直升飞机控制系统 控制系统硬件 单片机系统 传感器系统介绍 直升机模拟系统介绍 系统模块介绍 A ...

  9. 增量式pid分析 及 参数整定

    /************************************************************************** 函数功能:增量PI控制器 1.入口参数:编码器测 ...

最新文章

  1. 清华团队类脑计算首推「神经形态完备性」,通用人工智能要来了
  2. Pandas循环提速7万多倍!Python数据分析攻略
  3. 团队-Forward团队一阶段互评
  4. python画图零基础入门教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件...
  5. 为什么有转换流,作用是什么?
  6. php获取音频的时长,PHP编程获取音频文件时长的方法【基于getid3类】
  7. 等保数据备份和恢复关键点,这些你该知道!
  8. paip.deivsuit安装.检测文件与文件夹锁定进程与解锁
  9. docker-将ab测试工具打包镜像
  10. 尚学堂马士兵struts2 课堂笔记(二)
  11. 用计算机编纂家谱的作用,家谱的编纂几大流程?
  12. 汽车诊断协议:K线/CAN线、kwp2000、ISO14230、ISO1575、SAEJ1939
  13. 云原生服务网格 Istio 1.4 部署指南
  14. 手把手教你写Ov7725摄像头数据采集模块(带Verilog代码)
  15. 编译原理(二)文法和语言、符号和符号串、文法的类型、语法树
  16. JavaScript对象的键值对
  17. Java虚拟机(JVM源码):编译OpenJDK源码
  18. java 在线excel_开源Excel在线协同工具
  19. ffmpeg裁剪视频画面
  20. WPF 性能优化-高刷新绘图

热门文章

  1. 协同办公系统解决方案
  2. Java常见类库与工具及官网
  3. MIPI CSI接口调试方法: data rate计算
  4. 负数的二进制 原码反码补码
  5. 一个数学残的CRPS笔记(连续概率排位分数 Continuous Rank Probabilistic Score)
  6. 读书有益——》小朋友的诗(二)
  7. Golang 位操作符总结
  8. r语言 svm 大样本_R语言数据分析实战:十大算法之SVM模型 - 数据分析
  9. 尘锋信息基于 Apache Paimon 的流批一体湖仓实践
  10. 汕头金山中学2021高考成绩查询入口,广东汕头最好的4所高中,2020高考再创佳绩,堪称重本后援团...