找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4517|回復(fù): 7
收起左側(cè)

各位大神,PID溫度控制的程序不太懂,幫忙看下吧,小白感激不盡,黑幣奉上!

[復(fù)制鏈接]
ID:103523 發(fā)表于 2016-5-12 09:14 | 顯示全部樓層 |閱讀模式
50黑幣
我在做PID溫度控制的時(shí)候,下面的這個(gè)函數(shù)有一部分不懂,我用紅色標(biāo)記出來,大神幫忙看一下,幫下小白哈,小白再次感激不盡!

  • /***********************************************************
  • 溫度比較處理子程序
  • ***********************************************************/
  • void compare_temper()
  • {
  •     unsigned char i ;
  •     //EA=0;
  •     if(set_temper>temper)//設(shè)定值大于測(cè)量值
  •     {
  •         if(set_temper-temper>1)
  •         {
  •             high_time=100 ; //大于1°不進(jìn)行PID運(yùn)算
  •             low_time=0 ;
  •         }
  •         else
  •         {   //在1°范圍內(nèi)進(jìn)行PID運(yùn)算
  •             for(i=0;i<10;i++)                      //為什么要進(jìn)行10次,這樣前九次不是都沒用了嗎?
  •             {
  •                 //get_temper();
  •                 rin=s;
  •                 // Read Input
  •                 rout=PIDCalc(&spid,rin); //執(zhí)行PID運(yùn)算(位置式PID)
  •                 // Perform PID Interation
  •             }
  •             if(high_time<=100) //限制最大值
  •             high_time=(unsigned char)(rout/800);//這里為什么要除以800啊?
  •             else
  •             high_time=100;
  •             low_time=(100-high_time);
  •         }
  •     }
  • /****************************************/
  •     else if(set_temper<=temper) //當(dāng)實(shí)際溫度大于設(shè)置溫度時(shí)
  •     {
  •         if(temper-set_temper>0)//如果實(shí)際溫度大于設(shè)定溫度
  •         {
  •             high_time=0 ;
  •             low_time=100 ;
  •         }
  •         else
  •         {
  •             for(i=0;i<10;i++)
  •             {
  •                 //get_temper();
  •                 rin=s ;
  •                 // Read Input
  •                 rout=PIDCalc(&spid,rin);
  •                 // Perform PID Interation
  •             }
  •             if(high_time<100) //此變量是無符號(hào)字符型
  •             high_time=(unsigned char)(rout/10000);//這里又為什么除以10000?
  •             else
  •             high_time=0 ;//限制不輸出負(fù)值
  •             low_time=(100-high_time);
  •             //EA=1;
  •         }
  •     }
  • }
  • 各位大神幫忙看下,如果需要其他源程序,小白立馬貼上。
  • 在這里再次感謝各位大神了。
  • 小白在線等,非常感謝。。!



相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:103523 發(fā)表于 2016-5-12 18:53 | 顯示全部樓層
有沒有大神 幫忙看一下嘛 謝謝了!。
回復(fù)

使用道具 舉報(bào)

ID:97438 發(fā)表于 2016-5-13 08:49 | 顯示全部樓層
1 rout是一個(gè)全局變量 2 為什么要除以10000要看你這個(gè)rout的定義,建議貼一下完整程序
回復(fù)

使用道具 舉報(bào)

ID:103523 發(fā)表于 2016-5-13 10:28 | 顯示全部樓層
luoluoluo136 發(fā)表于 2016-5-13 08:49
1 rout是一個(gè)全局變量 2 為什么要除以10000要看你這個(gè)rout的定義,建議貼一下完整程序

你好,rout 就是那個(gè)PID控制里面的u(k)就是PID的輸出值。幫忙看下  非常感謝哈!
回復(fù)

使用道具 舉報(bào)

ID:102012 發(fā)表于 2017-11-4 22:15 | 顯示全部樓層
我也想知道,研究半天了
回復(fù)

使用道具 舉報(bào)

ID:246492 發(fā)表于 2017-11-6 12:35 | 顯示全部樓層
1 rout是一個(gè)全局變量 2 為什么要除以10000要看你這個(gè)rout的定義,建議貼一下完整程序
回復(fù)

使用道具 舉報(bào)

ID:627396 發(fā)表于 2019-10-21 09:37 | 顯示全部樓層
麻煩附上完整程序看看呢
回復(fù)

使用道具 舉報(bào)

ID:601756 發(fā)表于 2019-10-21 17:14 | 顯示全部樓層
你好,方便加個(gè)qq一起研究下嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表