脈衝神經網路PID控制器

PID控制器可以用來控制各種變量,如汽車的輪速,空間的溫度等,控制器主要經由測量目標與偵測的誤差,並對其的比例(P)、積分(I)和微分(D)三項來獲得一個可以調整變量的輸出。

要製作這樣的控制器最主要的方式是透過數學運算來建構演算法,當然也可以使用人工神經網路進行更符合任務目標的控制,蘇黎世聯邦理工學院在2020年發布了一份文獻,他們使用了脈衝神經網路製作了一個PID控制器。

在這個控制器中,他們希望由IMU進行輸入,並經由Loihi進行運算,來調整只有一個自由度的無人機的角度,首先他們將IMU偵測到的輸入以及目標的數值經由Place code的方式輸入到神經元中,並經由Error matrix獲得誤差的數值(圖一),接著他們以比例(P)為例,將Place code的資訊經過權重的轉化賦予神經元數值的意義,傳入到Rate code建構的神經元中,並結合PID三個模塊,一起輸入至A神經元進行統合,並重新轉換為Place code編碼,最後經過互相抑制的方式獲得最後的結果(圖二)。
(圖一)
(圖二)

從結果來看,雖然效果比起使用數學在CPU上進行的PID控制還要差一些,但在速度上並沒有遜色,且功耗要更低於在CPU上的PID控制器(圖三)(圖四)
(圖三)

(圖四)



撰文:唐朝洋


Reference:
Stagsted, Rasmus, et al. "Towards neuromorphic control: A spiking neural network based PID controller for UAV." RSS, 2020.

留言