软件设计(舵机电机的PID控制)
首先定义 pid结构体:
typedef struct PID
{long SumError; //误差累计int32 LastError; //Error[-1]int32 PrevError; //Error[-2]int32 LastSpeed; //Speed[-1]float KP; //比例常数 Proportional Constfloat KI; //积分常数 Integral Constfloat KD; //微分常数 Derivative Const
} PID;
‘
在舵机,电机,编码器中,为了在面对不同的赛道的变化时做出相应的精确变化,通常采用PID控制,可以使它们在面对不同的赛道类型时达到闭环控制的效果。其中,主要用到2种PID。
代码如下:
float PlacePID_Control(PID *sprt, int32 NowPiont, int32 SetPoint)
{ int iError; //当前误差 float Kp=0,Actual=0; //动态PiError = SetPoint - NowPiont; //计算当前误差Kp = 1.0 * (iError*iError) / S3010[Set][T] + S3010[Set][P]; //P值与差值成二次函数关系Actual = Kp * iError + S3010[Set][D] * (iError - sprt->LastError);//只用PDsprt->LastError = iError; //更新上次误差return S3010_MID - Actual;}
代码如下:
int32 PID_Realize(PID *sptr, int32 ActualSpeed, int32 SetSpeed)
{int32 iError,Increase; //当前误差 最后得出的实际增量iError = SetSpeed - ActualSpeed;//计算当前误差Increase = sptr->KP * (iError - sptr->LastError)+ sptr->KI * iError+ sptr->KD * (iError - 2 * sptr->LastError + sptr->PrevError);sptr->PrevError = sptr->LastError; //更新前次误差sptr->LastError = iError; //更新上次误差return Increase;
}
软件设计(舵机电机的PID控制)相关推荐
- tec控制pid程序_利用 SPICE 设计 TEC 温度环路 PID 控制
使用模拟比例积分微分 (PID) 控制器的温度控制是一种非常简单的电路,是确保热电冷却器 (TEC) 的设置点能够对温度或者激光进行调节的有效方法.比例积分项协同工作,精确地伺服TEC的电流,以维持控 ...
- 大疆A型板使用经验分享(七)——大疆M3508电机和PID控制
一. 大疆M3508电机 大疆M3508电机可以从RM官网下载很多相关资料,这里不做过多赘述.关于电机配套电调使用的时候,重点是如下两张图: 第一张图是电调接收报文的格式,即如果要发送数据给1号到4号 ...
- 模糊PID控制在自动光电整纬装置中的应用
模糊PID控制在自动光电整纬装置中的应用 摘要:针对纺织品在运行过程中的变形是非线性.时变的特点,提出一种新型自动整纬装置的设计方法.采用高性能的TMS320LF2407A芯片作为主处理单元,软件采用 ...
- SLAM导航机器人零基础实战系列:(四)差分底盘设计——2.stm32主控软件设计
SLAM导航机器人零基础实战系列:(四)差分底盘设计--2.stm32主控软件设计 摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买 ...
- 变速积分pid控制器matlab,变速积分PID控制系统设计.docx
课程设计报告 设计题目变速积分PID控制系统设计 课程名称计算机控制技术B 姓名 苏丹学号 2008100731 班级自动化0803 教师闫高伟 摘 要 错误!未定义书签. Abstract 第1章数 ...
- matlab simulink四旋翼无人机模糊PID控制姿态
1.内容简介 略 532-可以交流.咨询.答疑 2.内容说明 四旋翼无人机控制灵活.安全性能较高,能够实现空中悬停.翻滚.任意角度横 向飞行,常常替代人们从事高空危险作业,给我们的生活与工作带来了很多 ...
- PLC控制系统的软件设计
软件设计就是编写满足生产控制要求的plc用户程序,即绘制梯形图或编写语句表. PLC的软件设计包括系统初始化程序.主程序.子程序.中断程序.故障应急措施和辅助程序的设计.首先应根据总体要求和控制系统的 ...
- pid调节软件_(四)差分底盘设计——5.底盘PID控制参数整定
运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为底盘包 ...
- SLAM导航机器人零基础实战系列:(四)差分底盘设计——5.底盘PID控制参数整定
SLAM导航机器人零基础实战系列:(四)差分底盘设计--5.底盘PID控制参数整定 摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买 ...
最新文章
- Parallax Mapping Shader 凸凹感【转】
- loadrunner- winsock 函数总结
- php zval_copy_static_var(),深入理解 PHP7 中全新的 zval 容器和引用计数机制
- html生成自定义表格,自定义js的表格插件
- 3.1	采购管理规划
- python中字典的find_python中的字典
- 字典-dict(无序)
- 计算机无法安装蓝牙驱动,windows10系统安装蓝牙驱动图文教程|windows10系统如何安装蓝牙驱动...
- Petalinux移除module或app的方法
- 40163 php,微信支付授权获取 openId {quot;errcodequot;:40163,quot;errmsgquot;:quot;code been used, hints:...
- vim中实现大小写转换
- VUE中导出Excel功能的实现
- smart 完成安装之前向导中断
- 使用李跳跳·自动关闭运动校园广告
- Java 中的 T,E,K,V, 别傻傻分不清楚!
- JavaScript核心知识总结(下)
- 好好聊聊Docker
- 关于风机滑环的寿命以及工作原理
- Java平滑处理什么意思_photoshop画笔选项里的“平滑”到底是什么意思?
- 圆周率250亿位资源
热门文章
- 微擎jsapi支付必须传openid怎么解决_支付宝如何做到免费提现?(最新最全的图文介绍)...
- 到google面试 google的21道面试问题
- 11.2.0.4rac service_name参数修改
- vue-cli2项目:mimi-music
- IC Insights:2020年全球物联网芯片市场将超过310亿美元
- C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!
- 全球开发者薪酬榜单新鲜出炉,看看咱们排第几
- 蓝桥杯 ADV-226 9-3摩尔斯电码 java
- 文案润色软件-文案润色的技巧
- 服务器和客户端程序(流星程序集之五)