增量式PID C程序

增量式PID C语言 作者 笃行者 日期 2011-11-24 20:37:00

最近在解决激光器恒功率控制问题,把PID部分代码拿出来分享一下。功能已经可以使用了,但还没有添加积分饱和处理,只在输出的时候做了范围限制。

Process_IPD.c 文件:

//==================================================================================================

//| 文件名称 | Mod_ProcessPID.c

//|--------- |--------------------------------------------------------------------------------------

//| 文件描述 | 过程PID 控制(增量式PID)

//|----------|--------------------------------------------------------------------------------------

//| 版本 | 时间 | 作者 | 描述

//|--------- |-------------|-----------|------------------------------------------------------------

//| V1.0 | 2011.11.15 | 侯功 | 规范化

//==================================================================================================

#i nclude "..\TypeDefine.h"

#i nclude "..\F28335\DSP2833x_Device.h"

#i nclude "..\F28335\DSP2833x_Examples.h"

#i nclude "..\Driver\Drv_GpioDef.h"

#i nclude "..\Driver\Drv_LTC1867.h"

#i nclude "..\Driver\Drv_Dac124s085.h"

#i nclude "..\Driver\Drv_ADC_OnChip.h"

#i nclude "..\ProAPI\ProAPI_ANALOG.h"

#i nclude "Mod_ProcessPID.h"

//激光器电流控制默认参数

#define kDefaultCurrent 50//默认50毫安电流

#define kDefaultPID_K 5//默认的增益为5倍

#define kDefaultPID_T 5//默认控制周期为5秒

#define kDefaultPID_Ti 25//默认积分时间为5秒

#define kDefaultPID_Td 30//默认的微分时间为30秒

#define kDefaultSet 0.4//默认0.4毫安

//函数名:增量式PID参数初始化

//参数:PID_STRU 指针

//返回值:void

//作者:侯功 2011-11-15

void LD_Ctrl_PID_Init(PID_STRU * p_pid)

{

p_pid->set = kDefaultSet;//默认pd设置值0.2毫安 相当于激光器有50毫安驱动电流

p_pid->output = kDefaultCurrent;//默认激光器电流

p_pid->kp = kDefaultPID_K;//比例系数

p_pid->ti = kDefaultPID_Ti;//积分时间

p_pid->td = kDefaultPID_Td;//微分时间

你可能喜欢

  • C语言PID算法
  • 增量式PID控制算法
  • 位置式PID
  • 电子膨胀阀控制
  • 自动控制PID
  • 直流电机调速设计
  • 工程电路
  • 模糊自整定PID

增量式PID C程序相关文档

最新文档

返回顶部