应用 注册用户名: 密码: 登录
HOHO
照片PK
转贴
投票
测试
礼物
开心部落
汽车工厂
七彩鱼
更多
网页游戏
转贴
热门转贴 最新转贴 好友的转贴 我的转贴 如何转贴? 问题反馈
honest3729的转贴 转贴
来自:
lclbdbk
第一转贴:
honest3729
时间: 2010-08-20 10:43
评论: 8条
投票: 0次
本贴转贴: 7
累计转贴: 8
汽车工厂
设计爱车,绝对
炫酷的DIY体
验。快来...
开心部落
神马是开心部
落?部落首领等
你来当!
七彩鱼
美丽宁静的七彩
海域里,住着一
群超萌超...
honest3729的 相关转贴:
制动电阻的作用
中国银行E-TOKEN动态口令卡(口
令牌)原理解...
微机控制系统的数字滤波算法
C++实现PID控制算
法|C++/VC/MFC/PID算法
他们也在玩的应用
http://
51单片机PID算法程序(三)增量式PID控制算法
(转载 出处blog.ednchina.com/tengjingshu
)blog.ednchina.com/tengjingshu/211739/message.aspx#
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动
步进电动机)时,需要用PID的“增量算法”。
增量式PID控制算法可以通过(2-4)式推导出。由(2-4)可以得到控制器
的第k-1个采样时刻的输出值为:
(2-5)
将(2-4)与(2-5)相减并整理,就可以得到增量式PID控制算法MATCH_
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
_1714118225600_0为:
(2-6)
其中
由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期T,一
旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(2-6)求出
控制量。
2011-3-15 转贴:51单片机PID算法程序(三)增…
apps.hi.baidu.com/…/16608571 1/4
增量式PID控制算法与位置式PID算法(2-4)相比,计算量小得多,因此
在实际中得到广泛的应用。
位置式PID控制算法也可以通过增量式控制算法推出递推
计算公式
六西格玛计算公式下载结构力学静力计算公式下载重复性计算公式下载六西格玛计算公式下载年假计算公式
:
(2-7)
(2-7)就是目前在计算机控制中广泛应用的数字递推PID控制算法。
增量式PID控制算法C51程序
/*====================================================
================================================
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
{
int SetPoint; //设定目标 Desired Value
long SumError; //误差累计
double Proportion; //比例常数 Proportional Const
double Integral; //积分常数 Integral Const
double Derivative; //微分常数 Derivative Const
int LastError; //Error[-1]
int PrevError; //Error[-2]
} PID;
static PID sPID;
static PID *sptr = &sPID;
/*====================================================
================================================
Initialize PID Structure PID参数初始化
=====================================================
================================================*/
void IncPIDInit(void)
{
sptr->SumError = 0;
sptr->LastError = 0; //Error[-1]
sptr->PrevError = 0; //Error[-2]
sptr->Proportion = 0; //比例常数 Proportional Const
sptr->Integral = 0; //积分常数Integral Const
2011-3-15 转贴:51单片机PID算法程序(三)增…
apps.hi.baidu.com/…/16608571 2/4
评论(8)
2010年10月12日 14:47qvsx100
很有用!谢谢
2010年12月03日 11:49鼎新守望者
you yong !
2010年12月14日 17:04beingelite
static PID sPID;
static PID *sptr = &sPID;
是不是写错了,应该是将static改为struct。
2010年12月14日 17:05beingelite
sptr->Derivative = 0; //微分常数 Derivative Const
sptr->SetPoint = 0;
}
/*====================================================
================================================
增量式PID计算部分
=====================================================
================================================*/
int IncPIDCalc(int NextPoint)
{
register int iError, iIncpid; //当前误差
iError = sptr->SetPoint - NextPoint; //增量计算
iIncpid = sptr->Proportion * iError //E[k]项
- sptr->Integral * sptr->LastError //E[k-1]项
+ sptr->Derivative * sptr->PrevError; //E[k-2]项
//存储误差,用于下次计算
sptr->PrevError = sptr->LastError;
sptr->LastError = iError;
//返回增量值
return(iIncpid);
}
来自: http://hi.baidu.com/lclbdbk/blog/item/cedd115041224c828d543057.html
2011-3-15 转贴:51单片机PID算法程序(三)增…
apps.hi.baidu.com/…/16608571 3/4
帮助中心 | 空间客服 | 投诉中心 | 空间
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
| 联系我们
2006-2011 © Baidu
static PID sPID;
static PID *sptr = &sPID;
是不是写错了,应该是将static改为struct。
2011年02月22日 20:29虚小字
看不明白,但感觉很强。
2011年02月24日 15:32smac1017
相当牛X
2011年02月24日 15:32smac1017
相当牛
2011年03月06日 09:51xinyu11115
还可以
2011-3-15 转贴:51单片机PID算法程序(三)增…
apps.hi.baidu.com/…/16608571 4/4