# 開模定位 log [TOC] # 2023/10/11 今日開會。 一開始NB說有位置回授。 後來發現那不叫位置回授,只是根據目前距離終點剩多少距離,計算對應要下什麼速度command。最終位置-目前位置,好像是error,但不是。 首先error 應該是 目前目標位置-目前位置。 其次並非所有的 error input, speed output 的function 都叫控制器,必須證明會收斂才叫控制器。 這是規劃 一般x=f(t), v=g(t),NB是v=h(x)。就是$h=g(f^{-1}(x))$。所以這是規劃。 --- NB說他們之前有試過傳統PID。效果不好。 開出圖片後,發現PID output 的control effort 有異常。 --- 結論:我目前傾向是PID controller 的實現有誤。 Key point: 我覺得控制有用,他們覺得沒有用,而且他們做過,很難challegle。 key point solution: 要能challenge 幾乎只有兩個方法,拿code 找到錯的地方 or 直接做出來。 直接做出來的難/煩度非常高。要熟悉、使用他們的開發環境。或使用他們的環境。 其它: 1. 他們說有用示波器測jitter,但是有無正確的測(跑足夠長的時間,jitter值有無)還不知道。 # 2023/10/12 寧波 軟體部把它們的 PID 程式拿過來了,只有一部份。麻煩的點是,是用XML 檔包的。 看起來不是plc st,而是plc fbd ,裡面再寫 plc st 的code。 # 2023/10/13 在python 弄半天,驗證事情,和方向 1. NB 的 pid 大致上是對的 2. 模擬圖沒有原圖上那個peak 3. 可能是油壓system的pole 接近原點,所以很難調。用bode plot 掃頻可知system dynamic, 就能offiline 調 * 熱機冷機 都測一次,就能確定 system dynamic 會不會飄很多 可能有的問題是,泵一般是單向的,如何掃頻?先不考慮方向閥切換,因為切換要時間,更多nonlinear。 controller 是 position feedback to speed, 所以scan frequency應該是 speed command to position.(x) 加上積分項後,step response 就會往上一直增加(pole有在右半面),所以應該是speed command to 十字頭speed feedback。或是說position 微分一次。 還是說,還是bode plot,只是fft時,去掉0分量。 如果無法反轉,可能要step response, curve fitting。 還要再加上feed forward的模擬。 NB 的測試是**相關**性,而非找到不行的原因**因果**。在有否定因果出現之前,都應該stay in control。 c++ 的 control lib [control-toolbox](https://github.com/ethz-adrl/control-toolbox) # 2023/10/15 Fuzzy pid controller may help. PID still work acceptable in paper experiment result. The directional valve seldom used now in paper.(actually find none of case) They move to bidirectional pump. # 2023/10/16 這邊code 沒bug,只是simulation step size 要夠小,因為都是數值計算。 PID 找到一個少if case 的bug。 jerry 說不用繼續做這個,讓其它部門做。 # end