tag:blogger.com,1999:blog-3550204829234352390.post4355100384942843313..comments2024-03-27T09:13:48.546+08:00Comments on 研發養成所 ( Bridan's Blog - 4rdp, For R&D Person ): Apply PID to control speed and angleBridanhttp://www.blogger.com/profile/17055047757114667099noreply@blogger.comBlogger48125tag:blogger.com,1999:blog-3550204829234352390.post-55561669827160111072014-10-24T19:39:29.540+08:002014-10-24T19:39:29.540+08:00建議你先參考 PID Control 精彩討論 (1) 中 A3 答覆裡的試算表,試調看看,然後我們...建議你先參考 PID Control 精彩討論 (1) 中 A3 答覆裡的試算表,試調看看,然後我們再來討論。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-78724448491827415912014-10-24T14:09:45.997+08:002014-10-24T14:09:45.997+08:00您好 :
想像您請教一個問題 因為我剛接觸PID
看到 文中有說到
KP> 1 代表系統輸...您好 :<br />想像您請教一個問題 因為我剛接觸PID <br />看到 文中有說到 <br />KP> 1 代表系統輸出很強的力 因此 Ki 與 Kd 要搭配負值 否則無法調整 <br />這句話看不太懂, 因為前面看到的 都是說<br />一般調整PID 都是從 P 開始調 Ki 跟 Kd 先給很小 再慢慢往上調 <br />不知道 有要 給 Ki 或 Kd 負值 ?? <br /> Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-65747333493737468452013-10-15T21:41:08.425+08:002013-10-15T21:41:08.425+08:00Jhih Jie Hong,
東西完成就是自己的,無論成果為何,這些經驗只有歷練過的人才能體悟,加...Jhih Jie Hong,<br /><br />東西完成就是自己的,無論成果為何,這些經驗只有歷練過的人才能體悟,加油。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-25759123753047025032013-10-14T23:03:02.456+08:002013-10-14T23:03:02.456+08:00不好意思這麼久才回覆,單擺的題目可能要之後有空自己完成.
目前是硬體完成,差寫入程式.
但是前陣子更...不好意思這麼久才回覆,單擺的題目可能要之後有空自己完成.<br />目前是硬體完成,差寫入程式.<br />但是前陣子更換組員,題目也跟著更改.<br />抱歉settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-83218045000049762992013-07-19T09:03:24.465+08:002013-07-19T09:03:24.465+08:00您好,
在此發表文章,只當做網路義工傳播知識而已,還有很多好文值得你細讀。謝謝提供連結參考,PID...您好,<br /><br />在此發表文章,只當做網路義工傳播知識而已,還有很多好文值得你細讀。謝謝提供連結參考,PID 控制法是不怕負載變動的,當輸出出力固定一樣但負載變大時,那會產生較大誤差,這部分 P 項就會補償回來,因此使用 PID 無需擔心負載變動,可以恆定控制。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-35539017194971373062013-07-19T07:51:02.608+08:002013-07-19T07:51:02.608+08:00还没看完,楼主诲人不倦,了不起!此前看了下面链接的第一篇,觉得蛮清楚的:
http://ishare...还没看完,楼主诲人不倦,了不起!此前看了下面链接的第一篇,觉得蛮清楚的:<br />http://ishare.iask.sina.com.cn/download/explain.php?fileid=22755461<br />还不特别清楚的,是如何对具体的系统,确定参数值的高效办法,特别是负载变动的系统。<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-36357438298970521702013-06-09T22:00:15.934+08:002013-06-09T22:00:15.934+08:00Jhih Jie Hong,
期待你的作品分享。Jhih Jie Hong,<br /><br />期待你的作品分享。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-51683470732809061292013-06-09T14:00:26.942+08:002013-06-09T14:00:26.942+08:00OK!這幾天先把硬體換些零件,至於影片改天再MAIL給您.OK!這幾天先把硬體換些零件,至於影片改天再MAIL給您.settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-82932546934169886932013-06-08T23:31:05.824+08:002013-06-08T23:31:05.824+08:00同學您好,
因為平時工作忙碌,只有晚上才有空閒回覆問題,而且從讀者的問題中,讓我學習各位的經驗,教...同學您好,<br /><br />因為平時工作忙碌,只有晚上才有空閒回覆問題,而且從讀者的問題中,讓我學習各位的經驗,教學相長感覺很好,我想您的老師應該也會樂於解答你的疑惑,有空你可以試看看,問你的老師在我部落格的問題,看有沒有其它見解。<br /><br />寫任何韌體,中斷裡的程式碼越少越好,儘量設完旗標就離開,然後在主程式處理,如果會遇到中斷很多次的情形,應該再加次數計數,以便主程式不會遺漏。因此 U 式不要寫在中斷裡,務必養成好習慣。<br /><br />ADC 取得的數值需要平均,主要目的是濾除雜訊,讓控制比較穩定,而非比較準確。<br />不錯可以在中心點平衡一段時間,或許你能夠拍一段影片提供我參考,可以再給你建議。<br />此外,整理各種係數的運動情形比較,可以當作報告的一部分。<br /><br />就盡量善用現有資源達成目標,成功屬於有意志力完成任務的人的。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-51114499685636918612013-06-08T01:47:30.141+08:002013-06-08T01:47:30.141+08:00U=kp*p+i+kd*d 需要寫在中斷裡面嗎?
感測器經由ADC出來的值需不需要做平均才比較準確?...U=kp*p+i+kd*d 需要寫在中斷裡面嗎?<br />感測器經由ADC出來的值需不需要做平均才比較準確?<br />我有調整過kp,從小到大都嘗試過,最好狀況是在中心點一直左右來回,但過一會又倒下.<br />如果再不行可能就決定放棄換題目了,畢竟金費不夠,目前控制器是用MSP430...馬達也是12V玩具馬達...<br />感謝老師這麼晚還回復,如果學校老師有像您這麼熱情回答該有多好...settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-52205240197334955312013-06-07T23:56:36.462+08:002013-06-07T23:56:36.462+08:00再補充一個方法,換一個解析度較差的檢知器。這些方法都是避免頻繁調整。再補充一個方法,換一個解析度較差的檢知器。這些方法都是避免頻繁調整。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-63858681689695843062013-06-07T23:45:49.978+08:002013-06-07T23:45:49.978+08:00同學您好,
倒單擺想完全 I=0 應該不太可能,因此單擺一直反覆在中心點震盪是很正常。你可以想像用...同學您好,<br /><br />倒單擺想完全 I=0 應該不太可能,因此單擺一直反覆在中心點震盪是很正常。你可以想像用手指頂一隻筷子平衡的樣子。<br />想放慢調整頻度,有三個方式可以試看看:<br />一、延長調整時間週期<br />二、減小 Kp,也就是減慢調整速度<br />三、調小 M 值,power = M*U(t) Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-23808572548891748452013-06-07T22:04:51.840+08:002013-06-07T22:04:51.840+08:00老師
我目前有一個狀況,感測器(電位器)感測到單擺正中央的值會一直漂移,正中央沒有一個固定的值,
因...老師<br />我目前有一個狀況,感測器(電位器)感測到單擺正中央的值會一直漂移,正中央沒有一個固定的值,<br />因為這原因會一直有誤差產生,造成I項無法收斂到0...單擺一直反覆在中心點震盪.<br />請問是程式的問題還是必須換掉感測器呢?settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-51787513062265798502013-06-02T19:31:43.790+08:002013-06-02T19:31:43.790+08:00同學您好,
參數 Kd 是用來解決這種問題的,從 D(t) = E(t) – E(t-1) 可知,...同學您好,<br /><br />參數 Kd 是用來解決這種問題的,從 D(t) = E(t) – E(t-1) 可知,如果不修正可以預期誤差會越來越大,D(t)表示誤差的趨勢,基本上調大 Kd 是有幫助的,但不要設定過大而產生過度補償。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-91659479253181842942013-06-02T17:47:40.886+08:002013-06-02T17:47:40.886+08:00有個問題想再請教老師,
假設:
感測器讀取角度經由ADC給MCU的時間+得到角度誤差e給PID計算...有個問題想再請教老師,<br /><br />假設:<br />感測器讀取角度經由ADC給MCU的時間+得到角度誤差e給PID計算輸出控制u的時間+u值給轉換為pwm輸出馬達=需要t秒時間。<br /><br />假如現在我手碰觸單擺,偏移5度。經過t秒時間後輸出誤差5度對應到的pwm值,但此時單擺角度已經>5度了。<br />請問這該如何解決呢?是不是要修改pid的哪個參數?如果老師看不懂我可以在講更詳細。麻煩老師了。<br /><br />settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-14768795267737081022013-06-02T14:45:02.559+08:002013-06-02T14:45:02.559+08:00感謝老師解答!!!感謝老師解答!!!settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-17011188340461207722013-06-02T14:32:57.285+08:002013-06-02T14:32:57.285+08:00同學您好,
是的,可以不用寫物理方程式即可控制。
請先參考另一篇貼文 http://4rdp.b...同學您好,<br /><br />是的,可以不用寫物理方程式即可控制。<br /><br />請先參考另一篇貼文 http://4rdp.blogspot.tw/2008/05/pid-speed-control.html 改寫程式為角度控制,假設單擺平衡時為零度,你也期望它是平衡,因此設定角度為零度,然後檢知傾斜角度,角度差異越大馬達出力修正也越大,自己試調三個 K 參數值,以及尋找馬達控制式 power = M*U(t),以 NXT 轉速控制為例,M = 1/8。<br /><br />找出這四個參數即可程式控制,歡迎回文說明你的實驗結果。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-5642345889610212052013-06-02T12:25:12.858+08:002013-06-02T12:25:12.858+08:00意思是不一定要寫入物理方程的CODE,單靠PID程式控制就可以控制嗎?
現在我的硬體可以感測單擺角度...意思是不一定要寫入物理方程的CODE,單靠PID程式控制就可以控制嗎?<br />現在我的硬體可以感測單擺角度與馬達轉速正反控制,接下來該如何做呢?<br /><br />請老師指點指點settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-77706520114256344442013-06-02T07:11:23.613+08:002013-06-02T07:11:23.613+08:00同學您好,
控制這領域,條條道路通羅馬,沒有必要非寫成狀態方程式才能程式控制,通常列出狀態方程式是...同學您好,<br /><br />控制這領域,條條道路通羅馬,沒有必要非寫成狀態方程式才能程式控制,通常列出狀態方程式是為了系統鑑定,尋找該系統重要參數,以便模擬該系統運作特性。倒單擺適合角度型態 PID 控制,控制它需要有角度檢知器及伺服馬達,完全不知道它的系統參數(如單擺長度、質量)也可以寫程式,只是你要花時間去試 Kp,Ki,Kd 參數。<br /><br />關於第二個問題,最短控制時間週期 = 檢知時間 + 計算時間 + 馬達運轉時間,你的系統控制時間週期莫短於這個時間,時間過短系統就會過度補償而過衝,拉長時間間隔有助於穩定控制。<br /><br />歡迎留言討論。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-12156858231543897192013-06-01T22:26:52.956+08:002013-06-01T22:26:52.956+08:00請問老師,
目前在製作一個倒單擺系統,想請教老師幾個問題:
現在物理公式已經知道,但要寫入MCU內...請問老師,<br />目前在製作一個倒單擺系統,想請教老師幾個問題:<br /><br />現在物理公式已經知道,但要寫入MCU內是否要轉換成狀態方程式才可以撰寫成程式呢?<br /><br />如果MCU本身計算速度不快,是不是可以PID控制去補償時間誤差呢?<br />(假如系統反應速度需要1ms,但是從mcu計算速度是5ms)這樣有辦法用PID補償嗎?<br /><br />我是剛接觸控制這門領域,有點陌生,請老師指導指導。<br />感謝。settinghttps://www.blogger.com/profile/18064880723827871108noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-82668164292502889012013-04-23T21:20:46.650+08:002013-04-23T21:20:46.650+08:00Show 您好,
I(t) 是PID的積分項,Ki 是它的係數。Show 您好,<br /><br />I(t) 是PID的積分項,Ki 是它的係數。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-52355986863032356262013-04-23T16:00:08.461+08:002013-04-23T16:00:08.461+08:00請問阿
Ki 跟 I(t-1)+E(t)的I
都是依樣為參數嗎請問阿<br /><br />Ki 跟 I(t-1)+E(t)的I<br /><br />都是依樣為參數嗎showhttps://www.blogger.com/profile/18169862510019992016noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-74341332440299066412012-03-22T08:36:16.361+08:002012-03-22T08:36:16.361+08:00您好,
關於你的問題回答如下,
一、PID控制器对误差调整后得 到的输出控制信号u(t)具体是个什...您好,<br /><br />關於你的問題回答如下,<br />一、PID控制器对误差调整后得 到的输出控制信号u(t)具体是个什么值?<br />以你的例子,U(t) 的單位為溫度,它是—個控制程序中的過渡目標,假設你想從20 C加熱到40 C,你不可能一次到位,因此這一秒可能是21 C,下一秒為22 C,逐步控制到40 C。<br /><br />二、如何作用到阀 门上?即从u(t)到控制阀门的开度(0-100%)还需要一个过程 转换或者是一个比例转换吗?<br />假設閥門0%時20 C,100%為60 C,那你就要線性轉換。<br /><br />請細讀另一篇<br />http://4rdp.blogspot.com/2008/05/pid-speed-control.html<br />本文及此篇文章的問答,應該有你想要的關鍵知識。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-22523417210705666492012-03-21T18:27:13.084+08:002012-03-21T18:27:13.084+08:00老师你好!我感觉书本知识和实际情况还是有差别的。比如,我现在需要PID控制一个地暖系统,具体控制bo...老师你好!我感觉书本知识和实际情况还是有差别的。比如,我现在需要PID控制一个地暖系统,具体控制boiler的阀门。仿真的结果还不错。可是真正用到实际系统时,问题不少:比如仿真时是对设定温度与实际测量温度的误差进行PID控制,可是实际情况是PID控制器对误差调整后得到的输出控制信号u(t)具体是个什么值?如何作用到阀门上?即从u(t)到控制阀门的开度(0-100%)还需要一个过程转换或者是一个比例转换吗?我的邮箱地址wanghongyang1767@gmail.com.不胜感激!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-66198250167393719802012-02-10T08:04:30.889+08:002012-02-10T08:04:30.889+08:00Aopaw.Y 您好,
U = Kp*e + Kp*Ki*i 與 u = Kp*e + KI*i ...Aopaw.Y 您好,<br /><br />U = Kp*e + Kp*Ki*i 與 u = Kp*e + KI*i 兩式最大不同在表示方法的差異,其實 KI = Kp*Ki ,不同作者會以不同的方法表達。因此你引用別人的方程式時,須注意這些小細節,否則糸統會失控。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.com