久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3001|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

第十課_STM32的PID程序案例講解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:680841 發(fā)表于 2020-1-4 09:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
學(xué)習(xí)目的:
    1.掌握PID編程
    2.學(xué)會(huì)兩種PID控制的程序
    3. 了解溫度控制曲線、阻尼系數(shù)等專業(yè)術(shù)語

學(xué)習(xí)重點(diǎn)和難點(diǎn)
    1.溫度控制中的熱慣性問題
    2. 傳感器延遲等問題的系統(tǒng)分析

學(xué)習(xí)練習(xí)過程:
一.理論基礎(chǔ)
1.什么是PID
Proportional-Integral-Derivative control的縮寫
比例積分微分控制,簡稱PID控制,是最早發(fā)展起來的控制策略之一,由于其算法簡單、魯棒性好(Robust即強(qiáng)健穩(wěn)定)和可靠性高,被廣泛應(yīng)用于工業(yè)過程控制,至今仍有90%左右的控制回路具有PID結(jié)構(gòu)。
簡單的說,根據(jù)給定值和實(shí)際輸出值構(gòu)成控制偏差,將偏差按比例、積分和微分通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制。常規(guī)PID控制器作為一種線性控制器。
Proportional比例即實(shí)際輸出和設(shè)定值之間的差值乘上一個(gè)比例來控制輸出調(diào)整量。
Integral積分,當(dāng)實(shí)際輸出正好等于設(shè)定值時(shí)仍需給出一個(gè)調(diào)整量,即殘差,由積分來給出。
Derivative抑制達(dá)到設(shè)定值后過多的在設(shè)定點(diǎn)上下振蕩。

2.增量式PID
增量式PID控制,數(shù)字PID控制算法的一種基本形式,是通過對控制量的增量(本次控制量和上次控制量的差值)進(jìn)行PID控制的一種控制算法。
  實(shí)例:有一直流減速電機(jī)裝有編碼器,現(xiàn)在用PID進(jìn)行速度控制,已知每10ms讀取一次編碼值,每次讀到的編碼值減去上一次的編碼值(除以時(shí)間)可以反映出速度的快慢。也就是每次的增量就是反映實(shí)際的輸出值。

3.位置式PID
  直線電機(jī)或者導(dǎo)軌電機(jī),需移動(dòng)到某一個(gè)位置,這個(gè)位置可以用相對的脈沖數(shù)來表示,當(dāng)然這個(gè)數(shù)相對于絕對零位開關(guān)是個(gè)固定數(shù)。

二.具體編程步驟
1.增量式PID
①設(shè)定三個(gè)值kp、ki、kd即比例量、積分量、微分量
②增量=本次采集值-上次采集值
③增量與設(shè)定值算出當(dāng)時(shí)差值dif
④積分量=累加dif*ki
⑤輸出量=kp*dif+∑dif*ki+kd*((dif- lastdif)-( lastdif - prevdif))
        = kp*dif+∑dif*ki+kd*(dif+d prevdif -2* lastdif)
⑥上次lastdif再前次prevdif, 本次dif送上次lastdif。

說明:(dif-lastdif)-(lastdi-prevdif)反映被控值變化的快慢,抑制過快的變化。
float kp=50,ki=0.01,kd=2,sumi=0;
float dif,lastdif,prevdif,ks=132;           //ks是設(shè)定值與采集增量之間的系數(shù)
float scan,scan0,setnum=80,adjnum;
while(1)
{
  scan=TIM1->CNT;                                          //采集
  dif=(scan-scan0)*ks-setnum;                              //算出與設(shè)定值的差值
  scan0=scan;                                              //保存本次采集值
  sumi+=ki*dif;                                            //算出積分和
  adjnum=kp*dif+sumi+kd*(dif+ prevdif -2*lastdif);         //算出調(diào)整量
  TIM3->CCR3=adjnum;                                       //送出PWM調(diào)整
  prevdif = lastdif;                                       //上一次送前一次
  lastdif =dif;                                            //本次送上一次
  delay(10);                                     //時(shí)間為10ms采集和發(fā)出控制值,
}                                                          //建議用定時(shí)器做

另外可以做出限幅控制
  if (adjnum>2000) adjnum=2000;
if (adjnum<0)    adjnum=0;
比例及積分和的限幅和清零也可同上處理

2.位置式PID
基本與增量式相似。
差值dif就是實(shí)際值與設(shè)定值的差
Lastdif同樣也是保存上一次的差值
積分和也同樣算法,不同在于微分項(xiàng),直接用本次差與上次差來計(jì)算。參考以下代碼
float kp=50,ki=0.01,kd=2,sumi=0;
float dif,lastdif;                  //ks是設(shè)定值與采集增量之間的系數(shù)
float scan,setnum=80,adjnum;
while(1)
  {
scan=readencode(1);                      //讀取1號(hào)導(dǎo)軌滑臺(tái)現(xiàn)在位置值
dif=scan-setnum;
sumi +=dif*ki;
    if (sumi >100) sumi =100;
if (sumi <-100) sumi =-100;
adjnum=dif*kp+sumi+(dif-lastdif)*kd;
TIM3->CCR3=adjnum;                        //通過TIM3的PWM來輸出控制  
if (dif==0) sumi=0;
lastdif = dif;
delay(10);                                //同樣只有教學(xué)才能用消耗性延時(shí)
}

3.溫度控制中的問題
①熱慣性,熱電偶作為一種測溫傳感元件,被廣泛地應(yīng)用在工業(yè)現(xiàn)場及實(shí)驗(yàn)室。由于熱接點(diǎn)具有一定的熱容量,熱接點(diǎn)從介質(zhì)中吸熱量后,加熱自身、使溫度提高到穩(wěn)定值需要一定的時(shí)間。即熱接點(diǎn)的溫度變化,在時(shí)間上總是滯后于被測介質(zhì)的溫度變化。熱電偶的這種現(xiàn)象稱為熱慣性。
②阻尼曲線
由于存在傳感器滯后,和輸出變化及系統(tǒng)響應(yīng)上也存在一定的時(shí)間差,因?yàn)殡娚鸁幔瑹嵋獋鲗?dǎo)都需要時(shí)間,往往會(huì)在設(shè)定目標(biāo)點(diǎn)上下振動(dòng),逐漸趨于穩(wěn)定。
這是理想中的溫度曲線,加入PID目標(biāo)就快速到達(dá)設(shè)定值,并盡量減少目標(biāo)點(diǎn)上下的振蕩。

③測溫傳感器的選用,常用的有半導(dǎo)體測溫、熱電偶兩大種類,另外還有非接觸式紅外測溫,一般來說半導(dǎo)測溫靈敏度高,缺點(diǎn)溫度范圍較小即量程小,熱電偶線性度也不太好,但溫度測量范圍大。

4.參數(shù)設(shè)定
  ①確定比例系數(shù)
     以系統(tǒng)不振蕩為準(zhǔn)、最快達(dá)到設(shè)定值為依據(jù)。
  ②再確定積分和微分系數(shù),從小到大的方法。
  ③控制方式,由于烤箱是單相交流供電,所以輸出以準(zhǔn)PWM方式,因?yàn)镾SR(固態(tài)繼電器)開關(guān)時(shí)間<10ms,所以用10ms周期的PWM方式。
  ④光電隔離
      因?yàn)樯婕暗絾蜗嗍须姡許SR雖然已經(jīng)是光電耦合式,不過還是建議再用一級(jí)光耦來隔離,練習(xí)一下光耦的應(yīng)用。

   12是光電輸入,各光耦的輸入電流有所區(qū)別,一般設(shè)計(jì)在5-10ma之間,34為輸出的光敏三極管,輸出驅(qū)動(dòng)電流可以設(shè)計(jì)在10-30ma之間。

5.系統(tǒng)控制設(shè)計(jì)

輸入有兩路:
①熱電偶溫度傳感器
②設(shè)定值(簡單的話可以做個(gè)電位器AD轉(zhuǎn)成溫度設(shè)定),做一個(gè)按鍵設(shè)定程序

控制程序
   每隔10ms掃描一次,進(jìn)行PID數(shù)據(jù)采集,經(jīng)過計(jì)算后輸出控制信號(hào),做一個(gè)100分辨度的PWM,以1秒為單位,輸出1,就是開10ms,停990ms,輸出95,即開950ms,停50 ms。
   在選用SSR時(shí)一定要開關(guān)時(shí)間小于10ms的產(chǎn)品。







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:85865 發(fā)表于 2020-2-26 14:05 | 只看該作者
先收著,有空時(shí)測試下
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 综合另类 | 美日韩中文字幕 | 日本欧美国产 | 欧美日韩高清在线一区 | 国产欧美一区二区三区国产幕精品 | 国产精品毛片久久久久久久 | 亚洲v区| 亚洲成人一区 | 久久91精品国产一区二区三区 | 热re99久久精品国产99热 | 91亚洲国产成人精品一区二三 | 麻豆久久久久久 | 99久久精品免费看国产小宝寻花 | 在线观看中文字幕 | 中文字幕视频在线观看 | 成人福利片 | 国产成人在线播放 | 丝袜一区二区三区 | 91精品综合久久久久久五月天 | 国产 91 视频 | 一区二区三区四区免费在线观看 | 亚洲精品在线观看网站 | 少妇一区二区三区 | 亚洲视频在线观看免费 | 成年人免费看的视频 | 午夜在线| 黄色激情毛片 | 国产午夜影院 | 亚洲一区不卡在线 | 亚洲欧美综合 | 亚洲精品一区二区三区丝袜 | 亚洲高清一区二区三区 | 日韩成年人视频在线 | 欧美久久一区二区三区 | 国产一区二| 国产在线观看一区 | 99精品一级欧美片免费播放 | 毛片免费看 | 国产精品久久久av | 欧美精品片 | 午夜av电影 |