首页 > 编程知识 正文

pid算法如何实现(c语言中pid的用法)

时间:2023-05-05 03:37:19 阅读:74095 作者:4388

#include #include //C语言的memset函数头文件

# defineunsignedintuinttypedefstructpid {双设置; //设置目标定义值

双保; //比例常数Proportional Const

双集成; //积分常数Integral Const

双延迟; //微分常数Derivative Const

双光栅; //Error[-1]

双预览错误器; //Error[-2]

双和错误; //Sums of Errors

(PID;

/*====================================

====================================PID计算部分=====

=====================================

双精度下一点(PID * PP )。

{双错误,错误;

Error=pp-SetPoint - NextPoint; //偏差

pp-美丽的魔镜=Error; //点

dError=Error - pp-LastError; //当前微分

pp-PrevError=pp-LastError;

pp-LastError=Error; 返回(PP-proportion * error//比例项

);

() ) ) ) () ) ) ) ) ) ) ) ) ) ) ) ) )==============================

==================================初始化initializepidstructurepid参数

=====================================

语音识别(PID * PP )是

{

memset(PP,0,sizeof ) ) PID );

() ) ) ) () ) ) ) ) ) ) ) ) ) ) ) ) )================================

===================================main program的主程序=========

=====================================

双传感器(void )//dummy传感器功能

{返回100.0;

//void actuator (双精度增量)//Dummy Actuator Function//{} ) }

语音主(语音) {

PID sPID; //PID控制结构

双路由; //PIDresponse () output () ) ) ) ) ) )。

双精灵; //PID反馈(输入) )。

PIDinit(spid;//初始化结构

sPID.Proportion=0.5; //Set PID Coefficients

sPID.Integral=0.5;

sPID.Derivative=0.0;

sPID.SetPoint=100.0;//设置PID setpoint

for (; ()//

mock up of PID处理

rIn=sensor (;//读取输入

路由=PID calc (spid,rIn ); //performpidinteration//actuator (rout )//Effect Needed Changes

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。