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 还需要一些技巧 ...
随机推荐
- JZOJ 4417. 【HNOI2016模拟4.1】神奇的字符串
不能算解析的解析 很神仙的题 知道做法后很容易实现 这里不写题解 推荐一个:4417. [HNOI2016模拟4.1]神奇的字符串 感谢写此博文的神犇! \(Code\) #include<cs ...
- TrueNAS安装 一个厉害的nas系统
转载: 戴俊财--个人学习网站 https://www.daijuncai.cn/?p=128
- Linux命令-用户、权限管理
Linux命令-用户.权限管理 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个 ...
- 网页js版音频数字信号处理:H5录音+特定频率信号的特征分析和识别提取
目录 一.网页中的音频数据源 二.FFT:时域转频域 三.信号的特征分析 四.信号的识别提取 附录 音频数字信号处理 Audio DSP (Digital Signal Processing) 是一个 ...
- ELK 一些截图
一.背景 集成环境中,多台服务器会存在多份日志,不方便查阅 · 二.原理 三.配置原理 Logstash是安装在服务器上的,相当于读取本地日志,然后输出到ES服务器,kibana会从ES服务器读取数据 ...
- 【调试】ftrace(一)基本使用方法
简介 Ftrace是Linux Kernel的官方tracing系统,支持Function trace.静态tracepoint.动态Tracepoint的跟踪,还提供各种Tracer,用于统计最大i ...
- 遗忘的pawn 创建
默认加载 pawn::staticclass; ConstructorHelpers::FClassFinder<>Pawnpath(TEXT("_C")); 然后是的 ...
- es 6中for in与for of适用对象
在 ES6 中提供了 for-of,可以很方便的遍历数组和类数组,但是却不能遍历对象,这是为什么,与 for-in 仅仅相差一个单词,用途也是遍历,为什么却不能使用在对象上? 查资料后得知,原来 ES ...
- Google Earth Engine——基于改进的RSEI评估生态环境(水体掩膜后)
未经允许,禁止随意转载,尊重他人版权,仅供学习参考,欢迎交流. 背景介绍 遥感生态指数(Remote Sensing Ecological Index)的获得,是使用主成分分析法耦合了绿度.湿度.干度 ...
- idea 中 maven 项目构建 webapp 无 src 目录以及提示无程序包的解决办法
提示无程序包的解决方法 问题有可能出现在 IDE 版本上,问题版本是 2020.1,升级为 2020.3 后,tomcat 运行就不再提示无程序包的错误 之前尝试的解决办法 maven clean/i ...