pid控制算法的DSP程序设计与实现

pid控制算法的DSP程序设计与实现,第1张

typedef struct PID {

int SetPoint// 设定目标 Desired value

int Proportion// 比例常数 Proportional Const

int Integral// 积分常数 Integral Const

int Derivative// 微分常数 Derivative Const

unsigned int LastError// Error[-1]

unsigned int PrevError// Error[-2]

unsigned int SumError// Sums of Errors

// double Lastout //上次输出

unsigned int E1 // e1>e2

unsigned int E2 //

int Pmax//上限

int Pmin/段棚简和老/下限

} PID

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

PID计算部分,遇限消弱积分PID防饱和,积分分离算法实现

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

int PIDCalc( PID *pp, unsigned int NextPoint )

{

int dError,

Error

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

if (Error<=-pp->E1) return (pp->Pmin) //饱和

else if (Error>=pp->E1)

return (pp->Pmax)

else

{

dError = pp->LastError - pp->PrevError// 当前微分

pp->PrevError = pp->LastError

pp->LastError = Error

if (Error>=pp->E2||Error<=-pp->E2) //分离握裤

return (pp->Proportion * Error // 比例项

+ pp->Derivative * dError )//PD,考虑限幅

else //位置式

{

pp->SumError += Error // 积分

return (pp->Proportion * Error // 比例项

+ pp->Integral * pp->SumError // 积分项

+ pp->Derivative * dError // 微分项 //PID

)

}

}

}

一、准备阶段

1、了解开发时候的需求,AD采样、通讯、外设等等;

2、了解DSP所具有的硬件配置,硬件存储器资源、外设资源、通讯接口,方便初始化;

3、软件方案;

二、代码编写

1、文件框架,一般一种功能对应一个.c文件和.h文件,根据1.1需求来;不要只放在几个文物高件中,以方便维护。

2、函数框架,在对应文件中添加对应功能函数,函数只需要定义函数名;

3、往函数框架中添加代码。

(1)首先添加DSP器件相关程序,比如系统时钟配置,中断函数罩渗尺配置,中断函数;

(2)逐块添加喊兄算法代码,原则从易到难。

在现有的硬件基础上开发DSP软件大体步骤如下:

一、准备阶段

1、分析开发项目需求,即软件所需要具备的功能,如AD采样、通讯、外设控制等等;

2、了解硬件平台资源,如硬件存储器资源、外设IO资源、通讯接口等等,为DSP的初始化工作做准备的;

3、结合硬件资源和需求制定一个可行的软件方案;

二、代码编写阶段

代码编写因人而异,大体步骤:

1、搭建文件框架,一般一种功能对应一个.C文件和.H文件,根据1.1软件需求来;(特别提醒不要把所有代码都放在一个或几个文件里,不然哪怕注释得再清楚,在后期的调试和维猛纤护时都很费劲)

2、搭建函数框架,文件搭好后,在对应的文件中添加对应的功能函数,函数只需要定义函数名即可,如Void SystemInit(){;};

3、函数框尺知谈架也搭好后就可以开始添加代码了,首先是添加DSP器件相关程序,比如陵碰系统时钟配置,中断函数;I/O功能脚配置等;其次逐块添加算法代码,原则是从易到难,每个函数框架代码搭建完后最好都进行测试。

三、调试优化阶段

以上一块块功能测试正常后,就可以开始整体测试了,直至最终调试完成。

以上仅是个人经验,仅供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12484671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存