



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
比较典型的PID算法控制程序源代码比较典型的PID算法控制程序源代码比较典型的PID算法控制程序源代码xxx公司比较典型的PID算法控制程序源代码文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度比较典型的PID处理程序
[日期:2005-2-1]
来源:21ICbbs
作者:lookuper
[字体:大中小]
/*====================================================================================================
这是一个比较典型的PID处理程序,在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算
到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。
=====================================================================================================*/
#include
#include
/*====================================================================================================
PID
Function
The
PID
(比例、积分、微分)
function
is
used
in
mainly
control
applications.
PIDCalc
performs
one
iteration
of
the
PID
algorithm.
While
the
PID
function
works,
main
is
just
a
dummy
program
showing
a
typical
usage.
=====================================================================================================*/
typedef
struct
PID
{
double
SetPoint;
//
设定目标Desired
value
double
Proportion;
//
比例常数Proportional
Const
double
Integral;
//
积分常数Integral
Const
double
Derivative;
//
微分常数Derivative
Const
double
LastError;
//
Error[-1]
double
PrevError;
//
Error[-2]
double
SumError;
//
Sums
of
Errors
}
PID;
/*====================================================================================================
PID计算部分
=====================================================================================================*/
double
PIDCalc(
PID
*pp,
double
NextPoint
)
{
double
dError,
Error;
Error
=
pp->SetPoint
-
NextPoint;
//
偏差
pp->SumError
+=
Error;
//
积分
dError
=
pp->LastError
-
pp->PrevError;
//
当前微分
pp->PrevError
=
pp->LastError;
pp->LastError
=
Error;
return
(pp->Proportion
*
Error
//
比例项
+
pp->Integral
*
pp->SumError
//
积分项
+
pp->Derivative
*
dError
//
微分项
);
}
/*====================================================================================================
Initialize
PID
Structure
=====================================================================================================*/
void
PIDInit
(PID
*pp)
{
memset
(
pp,0,sizeof(PID));
}
/*====================================================================================================
Main
Program
=====================================================================================================*
double
sensor
(void)
//
Dummy
Sensor
Function
{
return
;
}
void
actuator(double
rDelta)
//
Dummy
Actuator
Function
{}
void
main(void)
{
PID
sPID;
//
PID
Control
Structure
double
rOut;
//
PID
Response
(Output)
double
rIn;
//
PID
Feedback
(Input)
PIDInit
(
&sPID
);
//
Initialize
Structure
=
;
//
Set
PID
Coefficients
=
;
=
;
=
;
//
Set
PID
Setpoint
for
(;;)
{
//
Mock
Up
o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物教学活动设计与安排计划
- 应急管理部门保安工作的执行与评估计划
- 全面解析2024年陪诊师考试要点及试题及答案
- 2024年全球金融市场趋势试题及答案
- 江西西部计划与企业责任试题答案解析
- 注册会计师与精算师考试共通性试题及答案
- 2024年十月份文职岗位劳动合同嵌入眼动追踪测试项
- 代码优化技巧的试题及答案
- 投资咨询工程师关键因素分析试题及答案
- 大班美术美丽房子
- 江苏旅游职业学院辅导员考试试题2024
- 2023年盐城射阳县兴桥镇招聘村(社区)干部考试真题及答案
- 2024年北京市公安局文职辅警招聘笔试参考题库附带答案详解
- (高清版)DZT 0350-2020 矿产资源规划图示图例
- 水电预留预埋课件
- 2023年宁波图书馆招聘考试真题及答案
- 《药理学》课程标准(2022年修订)
- 国开2023秋《人文英语3》第5-8单元作文练习参考答案
- 高三一模总结主题班会课件
- 药剂科妊娠患者处方点评统计表
- 国民经济行业分类大类一览表
评论
0/150
提交评论