PID模板
typedef struct
{
	float Kp,Ki,Kd;
	float Target;
	float Current;
	float Error[3];
	float DeadZone;
	float Output;
	float Increment;
	float OutputUpper;
	float OutputLower;
} PID_TypeDef;
void PID_Calculate(PID_TypeDef *Data)
{
	float Inc, P, I, D, Err;
	
	Err = Data->Target - Data->Current;
	
	Data->Error[0] = Data->Error[1];
	Data->Error[1] = Data->Error[2];
	Data->Error[2] = (Abs_float(Err) > Data->DeadZone) * Err;
	
	P = Data->Kp*(Data->Error[2]-Data->Error[1]);
	I = Data->Ki*(Data->Error[2]);
	D = Data->Kd*(Data->Error[2]-2*Data->Error[1]+Data->Error[0]);
	Inc = (P+I+D);
	
	Data->Increment = Inc;
	
	Data->Output += Inc;
	Data->Output = Min_float(Data->Output, Data->OutputUpper);
	Data->Output = Max_float(Data->Output, Data->OutputLower);
}
void PID_Clear(PID_TypeDef *Data)
{
	Data->Current   = 0;
	Data->Target    = 0;
	
	Data->Error[0]  = 0;
	Data->Error[1]  = 0;
	Data->Error[2]  = 0;
	
	Data->Increment = 0;
	Data->Output    = 0;
}
PID模板的更多相关文章
- 外置式与增量式PID模板程序(51单片机c语言)
		
外置式PID模板 #define MuBiaoCS 0 //目标常数 #define CHang_aCS 0 //比例常数 #define CHang_bCS 0 //积分常数 #define CHa ...
 - rbac-基于角色的权限控制系统(8种常用场景再现)
		
首先要抛出的问题是在代码世界里什么是权限? url就代表权限 如何实现权限控制? 下面详细介绍控制流程 1.1简单权限控制--表结构 简单权限控制,三个model,五张表 权限表permission ...
 - 从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)
		
原本关于T4模板原想分5个章节详细解说的,不过因为最近比较忙,也不想将整个系列时间拉得太长,所以就将它们整合在一块了,可能会有很多细节没有讲到,希望大家自己对着代码与模板去研究. 本章代码量会比较大, ...
 - shell脚本规划化模板
		
shell脚本规划化模板 Linux运维过程中,shell脚本是不可缺少的工具,但是每个运维人员编程的习惯都不一样,很多时候就是实现某个功能,写出来的脚本都是烂七八糟的.脚本必须规范化,应该从以后几个 ...
 - 【HDU 3037】Saving Beans Lucas定理模板
		
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
 - HDU4738 tarjan割边|割边、割点模板
		
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4738 坑点: 处理重边 图可能不连通,要输出0 若求出的结果是0,则要输出1,因为最少要派一个人 #inc ...
 - HDU 1532 最大流模板题
		
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1532 最近在学网络流,学的还不好,先不写理解了,先放模板... 我觉得写得不错的博客:http://blo ...
 - HDU 2222 AC自动机模板题
		
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2222 AC自动机模板题 我现在对AC自动机的理解还一般,就贴一下我参考学习的两篇博客的链接: http: ...
 - HDU 1533 最小费用最大流(模板)
		
http://acm.hdu.edu.cn/showproblem.php?pid=1533 这道题直接用了模板 题意:要构建一个二分图,家对应人,连线的权值就是最短距离,求最小费用 要注意void ...
 - HDU 2853 最大匹配&KM模板
		
http://acm.hdu.edu.cn/showproblem.php?pid=2853 这道题初看了没有思路,一直想的用网络流如何解决 参考了潘大神牌题解才懂的 最大匹配问题KM 还需要一些技巧 ...
 
随机推荐
- 题解 [SCOI2008]斜堆
			
好题.一道很有趣的性质提. 因为自己搞错结论然后改了 1h(悲 闲话少说,切入正题-- 这是不断插入的,所以根据套路我们会考虑最后一个插入的节点的性质.显然满足: 它是从根不停往左走的路上. 它没有右 ...
 - KMP字符串 AcWing 831
			
题目:https://www.acwing.com/problem/content/833/ 题意:求子串在母串中每次出现时的下标位置. 题解:哈哈哈,敲题时想到之前看到一个人叫 kmp 算法为 看毛 ...
 - Canvas:路径
			
路径的概念 路径是从起始点到结束点之间的连线.个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形.直线.曲线.圆形等各种几何图形:非线性图形包括图象.文本.像素.线性图形中又分为路径和非路 ...
 - JS的有关递归的知识点(数据无限级联的实现)
			
所用测试数据: 1 const data = [ 2 { 3 "area_id": 5, 4 "name": "广东省", 5 " ...
 - python数据方面的文章
			
excel 对接 jupyter https://mp.weixin.qq.com/s/NTCIOs_Yz3MIRgT8S36yGQ pandas 常用分拆数据 https: ...
 - Bug Bash测试
			
愿望 养成参加 Bug Bash 的习惯,就像养成到点就吃饭一样的习惯. 一.Bug Bash 名词解释 A Bug Bash is a collaborative effort across o ...
 - Linux与Windows对比
			
1. 前言 Windows是微软为个人台式机/设备或电脑(PC)开发的一系列操作系统.计算机操作系统(OS).每个操作系统都有一个图形用户界面(GUI),桌面允许用户查看所有文件.视频等.Window ...
 - 安装 deepin linux 系统、linux 使用记录
			
安装 deepin 深度linux系统 官网:https://www.deepin.org/zh/ 包含了下载ios镜像和安装教程: 最新版本:https://www.deepin.org/zh/do ...
 - MC 咖啡杯
			
#include <iostream> #include "minecraft.h" #include <windows.h> using namespac ...
 - 容器之 docker的监控平台(prometheus + Grafana)
			
cAdvisor (Container Advisor) :用于收集正在运行的容器资源使用和性能信息.https://github.com/google/cadvisor Prometheus(普罗米 ...