---
# System prepended metadata

title: 開模定位log
tags: [inject_mach]

---

# 開模定位 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