文件名:_BruGi第二部分(PID)

這是項(xiàng)目中非常重要的PID控制器妹沙,為什么電機(jī)會(huì)時(shí)刻保持穩(wěn)定,主要就是靠它泛领,目前我認(rèn)為它應(yīng)該以實(shí)際位置與目標(biāo)位置的差值作為PID的控制器輸入一喘,控制電機(jī)的PWM波形的生產(chǎn)相關(guān)參數(shù)作為輸出。到底是不是呢涛碑,先看看函數(shù)本身的定義和之后的調(diào)用就清楚了精堕。

/************************/

/* PID Controller? ? ? */

/************************/

// PID integer inplementation

//? DTms? ... sample period (ms)//采樣周期

//? DTinv ... sample frequency (Hz), inverse of DT (just to avoid division)//采樣頻率,采樣周期的倒數(shù)蒲障,提前算好歹篓,避免由控制器計(jì)算除法瘫证,減小計(jì)算量

int32_t ComputePID(int32_t DTms, int32_t DTinv, int32_t in, int32_t setPoint, int32_t *errorSum, int32_t *errorOld, int32_t Kp, int16_t Ki, int32_t Kd)

//int32_t 是32位有符號(hào)整型數(shù),可以看到PID控制器的參數(shù)有DTms采樣周期庄撮,DTinv采樣頻率背捌,in(實(shí)際值),setPoint設(shè)定值洞斯,誤差errorsum誤差總和毡庆,errorOld上一步誤差,Kp烙如,Ki么抗,Kd,為PID的三個(gè)整定參數(shù)亚铁。

{

int32_t error = setPoint - in;//計(jì)算當(dāng)前周期內(nèi)的誤差蝇刀,給定值-實(shí)際值=誤差

int32_t Ierr;

Ierr = error * Ki * DTms;//計(jì)算當(dāng)前周期的誤差積分

Ierr = constrain_int32(Ierr, -(int32_t)1000*100, (int32_t)1000*100);//對(duì)lerr的數(shù)值進(jìn)行大小限制,控制在±100000之內(nèi)徘溢,是不是為了避免積分飽和呢吞琐?

*errorSum += Ierr;//當(dāng)前誤差積分與歷史誤差積分相加,產(chǎn)生新的歷史誤差積分

/*Compute PID Output*/

int32_t out = (Kp * error) + *errorSum + Kd * (error - *errorOld) * DTinv;//正好是三項(xiàng)甸昏,第一項(xiàng)比例項(xiàng)顽分,第二項(xiàng)積分項(xiàng),第三項(xiàng)微分項(xiàng)(相鄰兩個(gè)周期的誤差相減除以周期施蜜,就是誤差曲線的斜率)

*errorOld = error;//為下一次計(jì)算做準(zhǔn)備卒蘸,將本次周期的誤差存為上一次誤差

out = out / 4096 / 8;//這里為什么要連續(xù)除以4096和8的目的還不清楚,需要配合日后引用的代碼進(jìn)行分析

return out;

}


通過分析翻默,可以看出這個(gè)PID控制器是采用位置式的實(shí)現(xiàn)發(fā)放缸沃,也就是全量式的。

全量式有什么樣的缺點(diǎn)呢修械?

1)由于全量輸出趾牧,所以每次輸出均與過去狀態(tài)有關(guān),計(jì)算時(shí)要對(duì)e(k)(k=0,1,…n)進(jìn)行累加肯污,工作量大翘单。其實(shí)到也沒有多大的計(jì)算量,實(shí)際編程中也是逐項(xiàng)累加起來的蹦渣,一個(gè)循環(huán)周期內(nèi)也只是用到歷史綜合和當(dāng)前誤差哄芜。倒是需要對(duì)積分飽和的問題進(jìn)行控制。

2)因?yàn)橛?jì)算機(jī)輸出的u(n)對(duì)應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置柬唯,如果計(jì)算機(jī)出現(xiàn)故障认臊,輸出u(n)將大幅度變化,會(huì)引起執(zhí)行機(jī)構(gòu)的大幅度變化锄奢,有可能因此造成嚴(yán)重的生產(chǎn)事故失晴,這在實(shí)際生產(chǎn)中是不允許的剧腻。

與此相對(duì)應(yīng)的還有增量式的,具體實(shí)現(xiàn)方法可以參考這里涂屁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末书在,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胯陋,更是在濱河造成了極大的恐慌蕊温,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遏乔,死亡現(xiàn)場(chǎng)離奇詭異义矛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)盟萨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門凉翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捻激,你說我怎么就攤上這事制轰。” “怎么了胞谭?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵垃杖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我丈屹,道長(zhǎng)调俘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任旺垒,我火速辦了婚禮彩库,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘先蒋。我一直安慰自己骇钦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布竞漾。 她就那樣靜靜地躺著眯搭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪业岁。 梳的紋絲不亂的頭發(fā)上鳞仙,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音叨襟,去河邊找鬼。 笑死幔荒,一個(gè)胖子當(dāng)著我的面吹牛糊闽,可吹牛的內(nèi)容都是我干的梳玫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼右犹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼提澎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起念链,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盼忌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后掂墓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谦纱,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年君编,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跨嘉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吃嘿,死狀恐怖祠乃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兑燥,我是刑警寧澤亮瓷,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站降瞳,受9級(jí)特大地震影響嘱支,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜力崇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一斗塘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亮靴,春花似錦馍盟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搓侄,卻和暖如春瞄桨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背讶踪。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工芯侥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓柱查,卻偏偏與公主長(zhǎng)得像廓俭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唉工,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • PID控制器是一種常用的控制技術(shù)淋硝,常用于多種機(jī)械裝置(如車輛雹熬、機(jī)器人、火箭)中谣膳。用數(shù)學(xué)方式來描述PID控制器是非常...
    云淡天空閱讀 6,311評(píng)論 0 11
  • 總所周知竿报,PID算法是個(gè)很經(jīng)典的東西。而做自平衡小車参歹,飛行器PID是一個(gè)必須翻過的坎仰楚。因此本節(jié)我們來好好講解一下P...
    熊貓啃竹閱讀 1,558評(píng)論 1 12
  • 這個(gè)部分是整個(gè)云臺(tái)控制的核心流程,通過分析他可以了解整個(gè)云臺(tái)在一個(gè)周期內(nèi)所進(jìn)行的計(jì)算犬庇,了解整個(gè)控制流程僧界,對(duì)于我來說...
    無刷云臺(tái)你快弄死我吧閱讀 786評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)臭挽,斷路器捂襟,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • 雨點(diǎn)雨點(diǎn)葬荷,你要落在哪里? 我要落在平坦的大地上纽帖,給大地釋放熾熱的酷暑宠漩。 雨點(diǎn)雨點(diǎn),你要落在哪里懊直? 我要...
    謝卓卿閱讀 554評(píng)論 0 2