社区导航

 

搜索
查看: 1286|回复: 5

[求助] PID算法

[复制链接]

12

TA的帖子

3

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-8-11 10:54 | 显示全部楼层 |阅读模式
求PID算法,PID控制PWM的调速或是电机的C语言代码,请留言    非常感谢

回复

使用道具 举报

13

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-8-11 11:16 | 显示全部楼层
#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 100.0;
}

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
    sPID.Proportion = 0.5;              //  Set PID Coefficients
    sPID.Integral   = 0.5;
    sPID.Derivative = 0.0;
    sPID.SetPoint   = 100.0;            //  Set PID Setpoint

    for (;;) {                          //  Mock Up of PID Processing

        rIn = sensor ();                //  Read Input
        rOut = PIDCalc ( &sPID,rIn );   //  Perform PID Interation
        actuator ( rOut );              //  Effect Needed Changes
    }
}

回复

使用道具 举报

7910

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

发表于 2015-8-11 11:16 | 显示全部楼层
你求救也不用发两个啊,要不是看到是求救我还以为是恶意广告贴呢?

点评

一看就知道是卡掉了。。。。。  详情 回复 发表于 2015-8-11 17:37

回复

使用道具 举报

445

TA的帖子

9

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2015-8-11 17:37 | 显示全部楼层
辛昕 发表于 2015-8-11 11:16
你求救也不用发两个啊,要不是看到是求救我还以为是恶意广告贴呢?

一看就知道是卡掉了。。。。。

回复

使用道具 举报

12

TA的帖子

3

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 2015-8-11 18:02 | 显示全部楼层
谢谢啊

回复

使用道具 举报

12

TA的帖子

3

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 2015-8-11 18:04 | 显示全部楼层
谢谢!!!!!!!!!!!!!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-30 02:55 , Processed in 0.214601 second(s), 27 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表