`
lovnet
  • 浏览: 6766046 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

C语言几种PID控制代码

 
阅读更多

1.增量式PID控制算法

void pid_control(void)
{
offside1=standard_speed-actual_speed;		//计算当前速度偏差
 r1=kp*(offside1-offside2);
 r2=ki*offside1;
 pid_result=(unsigned char)(r1+r2);   		//浮点数强制转换为十六进制数
 offside2=offside1;
}


2.积分分离的PID控制算法

void pid_control(void)
{
offside1=standard_speed-actual_speed;		//计算当前速度偏差
r1=kp*(offside1-offside2);
 if ( offside1<threshold )           		//对积分部分的分离计算
   r2=ki*offside1;                 		//threshold作为门限值
 else r2=0;
 pid_result=(unsigned char)(r1+r2); 	//浮点数强制转换为十六进制数
 offside2=offside1;
}


3.变速积分PID控制算法

void pid_control(void)
{
 float f;
offside1=standard_speed-actual_speed;	//计算理论速度和实际速度的偏差
 r1=kp*(offside1-offside2);          		//计算P参数部分
 if(offisde1<=threshold1)           		//速度偏差是否小于门限threshold1?
   f=1;                          			//是,标记f=1
 else if(offside1>threshold1+threshold2)	//否,再比较偏差是否超过threshold1+threshold2?
   f=0;                          			//是,标记f=0
 else f=(threshold1+threshold2-offside1)/threshold2;  //否,重新计算f
 r2=ki*offside1*f;             	//计算I参数部分
pid_result=r1+r2+r3;   			//计算出PID计算结果,D参数部分(r3)这里认为0
offside2=offside1;             	//计算出速度偏差的偏差
}


分享到:
评论

相关推荐

    自适应PID C语言代码

    自适应PID控制器是一种在控制系统中广泛应用的算法,它结合了传统的PID控制(比例-积分-微分)与自适应控制理论,能够自动调整控制器参数以适应系统特性的变化。C语言是编写这类算法的常用编程语言,因其效率高、...

    PID温度控制算法--C语言程序

    在提供的"PID温度控制算法--C语言程序"文档中,你将找到详细的代码实现,这将帮助你直观地理解PID算法在实际工程中的运用。此外,文档可能还包含了参考网页链接,这些链接可能提供了更多关于PID理论、调参方法和实际...

    模糊PID控制C语言代码

    在这个“模糊PID控制C语言代码”中,我们可以深入探讨以下几个关键知识点: 1. PID控制器:PID(比例-积分-微分)控制器是最常用的自动控制算法之一,通过比例项P、积分项I和微分项D的组合来调整输出,以减少系统...

    最全pid控制算法的C语言实现

    2. 编写PID控制规律的C语言代码。 3. 实现比例环节、积分环节和微分环节的C语言代码。 4. 将三个环节的代码组合起来,形成完整的PID控制算法的C语言实现。 PID控制算法的离散化是指将连续的PID控制算法转换为离散的...

    最全PID控制算法的C语言实现

    综上所述,《最全PID控制算法的C语言实现》这份资料应包含了PID控制算法的理论介绍、C代码实现示例以及可能的优化技巧,对于理解和应用PID控制算法的工程师来说是一份宝贵的参考资料。通过深入学习和实践,可以更好...

    几种控制方法的C语言编程.

    C语言作为一种通用且高效的编程语言,被广泛用于编写这些控制算法的底层代码。本文将深入探讨两种控制方法:经典PID控制和自抗扰控制(ADRC),并结合C语言编程实现它们。 **一、经典PID控制** PID(比例-积分-...

    PID控制算法C语言

    PID(比例-积分-微分)控制算法是自动控制系统中广泛应用的一种控制策略,它通过结合当前误差、历史误差和误差变化率来调整控制输出,从而实现对系统性能的有效调节。在C语言中实现PID控制器,我们可以从以下几个...

    模糊自整定PID控制c代码

    在C语言中实现模糊自整定PID控制,主要涉及到以下几个核心知识点: 1. PID控制器:PID(比例-积分-微分)控制器是最常见的反馈控制系统,由比例(P)、积分(I)和微分(D)三个部分组成。比例项直接影响控制输出与...

    C语言任务管理器代码

    C语言是一种底层、高效且灵活的编程语言,常用于系统级编程,包括创建操作系统组件或管理进程。任务管理器是一个系统工具,用于监控和控制正在运行的任务、进程以及系统资源的使用情况。 在C语言中实现任务管理器...

    专家PID与模糊PID的C语言实现

    PID控制器是一种广泛应用的自动控制算法,它通过比例(P)、积分(I)和微分(D)三个部分的组合来调整系统的输出,以使系统能够跟踪期望的输入或达到稳定状态。C语言作为通用的编程语言,非常适合实现这种控制器,...

    PID控制算法的C语言实现pdf

    在提供的"PID控制算法的C语言实现.pdf"文件中,应该详细介绍了这些概念,并提供了具体的C代码示例,读者可以通过阅读这份资料来深入理解PID控制算法的C语言实现细节。通过实践和调整参数,可以掌握如何针对不同系统...

    增量式PID控制C语言.docx

    在给定的C语言代码中,定义了一个PID参数结构体,用于存储PID控制器的参数。然后,使用memset函数将PID参数结构体初始化为零。接着,使用while循环来实现PID控制算法,计算当前误差值和前一拍误差值之间的差异,并将...

    运动控制基础数字系统C语言实现

    在C语言实现中,增量式PID的代码可能包含一个循环,其中每次迭代计算误差的差值,并根据该差值调整控制信号。位置式PID则需要维护一个积分项,随着时间不断累加误差,然后根据总误差来调整输出。 在实际应用中,还...

    C语言实现PID算法

    PID(比例-积分-微分)算法是一种在控制理论中广泛应用的反馈控制系统设计方法。它通过结合当前误差、过去误差的积分和误差变化率来调整控制器的输出,从而达到稳定系统的目的。C语言实现PID算法可以广泛应用于工业...

    PID算法和C语言程序

    PID算法是一种在自动化控制领域广泛应用的反馈控制算法,其主要目的是通过调整控制器的输出来减少系统的误差,以达到期望的性能指标。PID控制器的输出是基于当前误差、历史误差的积分以及误差变化率的加权组合。在...

    温度PID_PWM 51单片机C语言程序

    这个文件很可能是程序代码或文档,详细描述了如何使用C语言在51单片机上实现温度控制的PID PWM算法。可能包含以下几个部分: 1. PID算法的数学模型和实现方法。 2. PWM信号的生成和占空比调整。 3. 与温度传感器的...

    模糊PID控制温控系统设计C语言程序代码.pdf

    本文档涉及的是一个基于C语言的模糊PID控制器在温控系统中的实现,主要涵盖以下几个关键知识点: 1. **模糊PID控制**:模糊PID控制是将传统的PID控制与模糊逻辑相结合的一种控制策略,它能更好地处理非线性、时变和...

    c语言PID算法。经典控制

    PID(比例-积分-微分)控制器是一种广泛应用在自动化领域的控制器,它通过结合比例(P)、积分(I)和微分(D)三个成分来调整系统的响应,以达到期望的控制效果。在C语言实现的PID算法中,我们可以深入理解这种控制...

    分数阶PID控制

    分数阶PID控制是一种在传统PID控制基础上扩展的控制理论,它引入了分数阶导数和积分的概念,使得控制器能够对系统的动态特性有更精细的调节能力。与传统的整数阶PID控制器相比,分数阶PID(FPID)控制器具有更广泛的...

Global site tag (gtag.js) - Google Analytics