談論模糊控制前,須先知道模糊邏輯。傳統邏輯學,有非常明確的真假邏輯狀態,比如大於等於170為真 (True),反之為假 (False),但是模糊邏輯沒有明確的分界,比如說某人身高很高,那是180 cm 以上算高,還是 170 cm 以上才是高,這是個見人見智的問題。模糊邏輯利用歸屬函數 (Membership function) 將模糊的意念轉化為數值,以利電腦計算控制。
上圖為馬達轉速輸入歸屬函數 (Membership Function),包含三組規則 (Rule) Slow、Set、Fast,下圖為馬達出力歸屬函數,同樣也有 Accelerate、Keep、Decelerate 三組規則。為了說明簡單,輸入與輸出只各列三組規則,如果要更複雜的控制,可以再增列其他規則。
這三組規則可以表示為:
IF 轉速 = 慢 THEN 加速
IF 轉速 = 剛好 THEN 維持
IF 轉速 = 快 THEN 減速
希望轉速控制在500 °/sec,如果NXT馬達轉速比500 °/sec大,稱為快;比500 °/sec小,稱為慢。假設現在 NXT 馬達轉速為 450 °/sec,比設定的500 °/sec小,因此必需加速。
先看 Rule Slow,定義300 °/sec以下為100%僈,500 °/sec以上就不稱為慢,而中間逐步遞減。這就是模糊邏輯的精華所在,你可以自己定義這些數值,只要不太離譜馬達都可以控制。所以450 °/sec轉速可得 25% 歸屬度,再以此反查 Rule Accelerate,馬達應該增加約 Power +3 的能量。同理 Rule Set 75% 也可推得 Rule Keep 應增加 Power +3,但是 Rule Fast 0% 得 Power 0。最後,綜合這三條規則取最大值 Power +3,就可以讓馬達轉快一點接近500 °/sec。
了解這基本概念,NXT玩家趁暑假研究看看,如何寫出 Fuzzy control 程式讓 NXT馬達定速運轉,七月中我會公佈 source code。希望大家動動腦寫寫看,尤其是高中以上的同學,未來有志於研發工程師,更應該努力看看,不要等著看解答,能自己獨立完成挑戰的人,將會是優秀的研發工程師。
象棋棋壇大地震:趙鑫鑫、鄭惟桐、炸蛇等41人被廢!
-
2025年1月12日,我當時正在外面跟人玩象棋,結果地震了!趙鑫鑫,鄭惟桐,炸蛇等41人全部被廢!其中有幾個是終身禁賽的,有一些是禁賽幾年的,有一些被撤銷稱號,有些沒被撤,但是其實禁賽回來也不太好意思去參賽了吧?
下面是我的感想
首先,包括王天一、鄭惟桐、趙鑫鑫等人,我不認為他們有用軟件作弊。他們可能買賣棋,...
6 天前
沒有留言:
張貼留言