增量式PID算法在c代码部分的实现过程

发布时间:2024-06-27  

下经常会用到对温度控制,适度控制,转速控制等需要自动控制相关的操作,因此在使用中需要不断提高对自动控制 原理部分的学习,一个好的自动控制系统包含三个 主要因素:稳,快,准。稳即系统的稳定性,快即系统的快速性,准即控制的准确性。


在自动控制中比例增益,积分时间,微分时间三个主要变量。下面就这三个变量进行动态展示。

动图

如上图所示,假设在单位阶跃响应下,比例控制幅值,kp越大值越高相关的,积分时间控制精确度,数值越大波形超调量越大,微分时间控制波形的平缓程度。


下面贴出增量式PID算法在c代码部分的实现过程。


//实现增量式PID算法 


#include "stdio.h" 

void pid_init();//PID参数初始化 

float pid_realise(float speed);//实现PID算法   


struct {

    float set_speed;//设定速度 

    float actual_speed;//实际速度

    float error;//偏差  

    float error_next;//上一个偏差  

    float error_last;//上上一个偏差 

    float kp,ki,kd;//定义比例,积分,微分参数  

     

}pid;



int main()

{

    pid_init();

    int count = 0;

    while(count<400)//进行400次 PID 运算,使初始值从0开始接近200.0   

    {

        float speed = pid_realise(200.0);//设定值设定为200.0  

        printf("%fn",speed);//输出每一次PID 运算后的结果  

        count++;

    }

}



void pid_init()

{

    pid.set_speed = 0.0;

    pid.actual_speed = 0.0;

    pid.error = 0.0;

    pid.error_next = 0.0;

    pid.error_last = 0.0;

    //可调节PID 参数。使跟踪曲线慢慢接近阶跃函数200.0 // 

    pid.kp = 0.2;

    pid.ki = 0.01;

    pid.kd = 0.2;

}



float pid_realise(float speed)//实现pid  

{

    pid.set_speed = speed;//设置目标速度  

    pid.error = pid.set_speed - pid.actual_speed;

    float increment_speed;//增量

     

    increment_speed = pid.kp*(pid.error-pid.error_next)+pid.ki*pid.error+

    pid.kd*(pid.error-2*pid.error_next+pid.error_last);//增量计算公式  

    

    pid.actual_speed+= increment_speed;

    pid.error_last = pid.error_next;//下一次迭代  

    pid.error_next = pid.error;

    return pid.actual_speed; 

    

}


运行数据得到图标如下 :

poYBAGKqov2ALrgkAABTRApyEyM634.png

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>