• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: PI算法  比例积分  

资源简介

PI控制算法是控制系统中常用的简单有效的方法,用C语言实现数字PI软件算法,适用于各类嵌入式系统中

资源截图

代码片段和文件信息

/**
  ******************************************************************************
  * @file   : PI_Controller.c
  * @author : wind
  * @version:1.0.0
  * @date   :20150418
  * @brief  :
  ******************************************************************************
  */
/* ---------------------------------------------------------------------------*/

/************声明和定义,通常放在头文件中********/
typedef struct
{
int SetValue;        //设置值
int An; //当前误差e(n)的系数,=kp+ki
int Bn_1; //前一项误差e(n-1)的系数,= -kp
int Limit; //限制最大最小值
int Errorn_1; //e(n-1)
int DeltaUn; //输出增量△u(n);
int Un_output; //输出值 u(n)
}PI_Typedef;

void PI_StructInit(PI_Typedef *PI_Structint Kpint Kiint limit);
void PI_Controller(PI_Typedef *PI_Structint NewInputint *Output);
/*****************************************************************/


void PI_StructInit(PI_Typedef *PI_Structint Kpint Kiint limit)
{
PI_Struct->SetValue = 0;
PI_Struct->An = Kp+Ki;
PI_Struct->Bn_1 = -Kp;
PI_Struct->Limit = limit;
PI_Struct->DeltaUn = 0;
PI_Struct->Errorn_1 = 0;
}

void PI_Controller(PI_Typedef *PI_Structint NewInputint *Output)
{
int Errorn =0;

Errorn = PI_Struct->SetValue - NewInput;//计算e(n)

PI_Struct->DeltaUn = (PI_Struct->An)*Errorn+(PI_Struct->Bn_1)*(PI_Struct->Errorn_1);//计算增量
PI_Struct->Errorn_1 = Errorn;//保存误差e(n)作为下一次计算的e(n-1)
//限制增量的范围
if(PI_Struct->DeltaUn > PI_Struct->Limit)
{PI_Struct->DeltaUn = PI_Struct->Limit;}
else if(PI_Struct->DeltaUn < -PI_Struct->Limit)
{PI_Struct->DeltaUn = -PI_Struct->Limit;}

PI_Struct->Un_output += PI_Struct->DeltaUn; //计算输出u(n)=u(n-1)+△u(n)并保存作下一次运算

*Output = PI_Struct->Un_output;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1787  2015-04-18 21:54  PI_Controller.c

     文件      15663  2015-04-18 21:50  PID.docx

----------- ---------  ---------- -----  ----

                17450                    2


评论

共有 条评论