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 还需要一些技巧 ...
随机推荐
- .net 中的几种事务
在一个MIS系统中,没有用事务那就绝对是有问题的,要么就只有一种情况:你的系统实在是太小了,业务业务逻辑有只要一步执行就可以完成了.因此掌握事务处理的方法是很重要,进我的归类在.net中大致有以下4种 ...
- PostgreSQL控制文件讲解及案例
PostgreSQL控制文件内容: 主要分为是三部分,初始化静态信息.WAL及检查点的动态信息.一些配置信息. 我们可以用过pg_controldata命令直接读取PostgreSQL控制文件内容: ...
- 看完这一篇,ShardingSphere-jdbc 实战再也不怕了
谈到分库分表中间件时,我们自然而然的会想到 ShardingSphere-JDBC . 这篇文章,我们聊聊 ShardingSphere-JDBC 相关知识点,并实战演示一番. 1 ShardingS ...
- Django中获取用户IP方法
Django中通过request.META可以来获取用户的IP. request.META 是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常 ...
- nginx部署+将安装包打包到requirements.txt文件中
pip freeze > requirements.txt 将在虚拟环境中安装的包记录到requirements.txt里 详解见https://www.jianshu.com/p/dba8 ...
- uniapp中关于navigateBack返回刷新,h5和小程序端
注意: 小程序中,如果路径中有参数,在生命周期onLoad()中需要获取,可以用beforePage.options 就能获取到url中的参数
- 【python操作Excel的常见方法汇总】 xlrd pandas xlwings
用python处理Excel数据,实现Excel的功能:分列.透视等功能 1. Excel 解压文件 #解压tar_path中的压缩文件到uzipPath def unzip_archive(tar_ ...
- redis 5.0.5集群部署与服务器宕机故障模拟
背景 业务稳定性要求需要一套redis集群来保障 因此采用 redis cluster 集群 环境 名称 ip地址 cpu 内存 master端口 slave端口 redis-651 10.65.6. ...
- PHP中的超级变量
超级变量,又名超级全局变量,是PHP内置的变量,这些变量在代码的任意位置都能正常使用 PHP中的超级变量 9种超级变量 $GLOBALS $_SERVER 9种超级变量 目前,PHP提供了9种超级变量 ...
- List<Object>集合获取指定属性最大值的对象
List<Vo> list = dao.selectList();if(CollectionUtils.isNotEmpty(list)) { Optional<Vo> max ...