2023年1月28日 星期六

VTOL PID調整

英文原版

建议参考官方文档或者雷迅中文版http://doc.cuav.net/tutorial/copter/

一起食用,风味更佳~~!


为治疗大佬的急躁症,开出一剂特效药方~~直接下载最下方的计算器,填入详细信息直接生成·保守·保守·保守·的参数,飞行不满意在来看详解慢慢调整




MOT_BAT_VOLT_MAX    电芯最高电圧,一般电芯设置4.2,高压电芯一般设置4.35(4.3-4.4根据实际设置)*电芯数量(3S*3;4S*4)


MOT_BAT_VOLT_MIN   电芯的最低电压,一般设置3.3,高压电芯设置3.5,也可以高一点;使用18650或者21700电芯的可以设置到3*电芯数量(3S*3;4S*4)

(本人小白,理解可能不够透彻,此二参数可能涉及到电压变化时的PID补偿,请指正)


MOT_THST_EXPO     推力曲线

   如下图,根据螺旋桨尺寸设置,穿越机5寸桨设置0.55;

                                    常见的大疆2212/2312电机9045/1038桨设置0.65;

                                    6系电机20寸桨如大疆E2000动力可以设置0.75

                                    其他尺寸根据下图以此类推

                                      

../_images/tuning-process-instructions-1.hires.png


电机部分

MOT_SPIN_ARM   电机解锁时的怠速转速,指的是解锁起飞前的转速,如果怠速太高降低该值,如果解锁后电机不转或由于转速太低卡顿的情况增大该值,小比例调节,一次不要加的太多以免发生危险


MOT_SPIN_MIN   可以理解为飞行时的最低转速,注意区分上一条参数,这里指的是飞机在飞行时的转速,建议比解锁时转速大三分之一以上;有的同学动力过剩,拉低油门还往上飞,应调小该值


INS_ACCEL_FILTER  加计滤波,10-20,大桨调小小桨调大,一般默认


INS_GYRO_FILTER  陀螺滤波, 5寸80Hz ,10寸 40Hz , 20寸20Hz 

官方解释:https://ardupilot.org/copter/docs/parameters.html#ins-gyro-filter 





ATC_ACCEL_P_MAX

ATC_ACCEL_R_MAX

10寸110000,20寸 50000 , 30寸20000 


ATC_ACCEL_Y_MAX     10寸27000, 20寸18000 ,30寸 9000  


必改,疗效显著,但我使用的是偏方,大家还是按官方的来·······

P/R/Y具体参数参考下图






本疗程结束,开始试飞,基本常识不在复述、、、比如飞控校准,电机顺序、转向,螺旋桨正反,遥控通道正反等...自查自纠


自稳模式解锁,慢慢给油,飞机线性拉起不要飞太高不要有大动作,观察飞机姿态是晃还是抖,是大动作还是小动作

如果离地前就感觉要翻,立即收油上锁,参照上一条检查,一般是电调插错了火者螺旋桨装错

http://47.110.9.138/zb_users/upload/2021/01/202101061609922091692054.xls


T-1 Ranger VTOL Ardupilot設定流程

 參考至這個影片,摘錄重點


一開始校正跟遙控器設定就跳過去了

新增第二個副翼舵機,兩傾轉舵機以及三個馬達

https://youtu.be/NJMIgvoN6aU?t=133

這段自己看影片,沒甚麼特別的。

接下來是參數設定

Q_ENABLE = 1,重開機,重新連接(或者右邊有Reflash Params的按鈕) 等待新的參數顯示。

Q_FRAME_CLASS = 7 

Q_TILT_ENABLE = 1,重新開機,重新連線等待新參數顯示

Q_TILT_TYPE = 2 (Vectored)

Q_TILT_MASK = 3 (啟用tilt servos)

設定三個飛行模式 QSTABLE,FWA,MANUAL

首先在FWA模式檢查所有伺服器動作是否正常,在Servo Outputed頁面反向

QSTABLE模式檢查馬達是否達到超過垂直一定角度(12-15度),在Servo Output頁面調出最大角度,直到螺旋槳不會擊中飛機。

https://youtu.be/NJMIgvoN6aU?t=582

FWA模式是否水平,否則在Servo Output頁面調整

接下來再QSTALBE調整,Q_TILT_YAW_ANGLE,讓馬達垂直

https://youtu.be/NJMIgvoN6aU?t=630

到這邊應該大致上可以了,剩下來就是PID。

其他建議調整參數

Q_ASSIST_SPEED = -1,即使在最低速度時也不啟動馬達來協助飛行,其實是有道理的,因為傾轉馬達如果要協助浮力的話,會瞬間減速,因為馬達要抬起來。

Q_M_BAT_VOLT_MAX,Q_M_BAT_VOLT_MIN 設定電池最高最低電壓,如果沒有電池感應器就不用設定

Q_M_PWM_MAX,Q_M_PWM_MIN 這個是ESC的PWM訊號

Q_M_PWM_TYPE ESC通訊協定 

Q_OPTIONS 選Level Transition, (在轉換期間限制角度...難怪不太轉的動) ThrLandControl, (啟用油門控制著陸速率...不懂)  EnableLandReposition (enable pilot controlled repositioning in AUTO land.Descent will pause while repositioning 不懂)

https://youtu.be/NJMIgvoN6aU?t=818

Q_RTL_ALT = 15,回家的高度

Q_RTL_MODE = 1

Q_TRANSITION_MS = 3000 原本是5000 ....轉換時間(不太懂)

Q_WVANG_HGT_MIN

Q_YAW_RATE_MAX = 240 應該是YAW的最大旋轉速度吧

剩下來應該就是PID了


2023年1月5日 星期四

Tailsitter Planes Setting

 這次要設定的目標是長這樣


沒有控制面是特色

設定參考頁面https://ardupilot.org/plane/docs/guide-tailsitter.html

1. Q_TAILSIT_ENABLE設置為2(對於 Copter Motor Only Tailsitters 的特殊情況(沒有升降舵或副翼/升降舵的控制面))來啟用

ArduPilot 將 tailsitters 細分為兩大類:

  • 矢量尾翼

  • 非矢量尾翼, 在 Non-vectored 中有兩個子類別,Single/Dual Motor 和 CopterMotor:我們要採用的是CopterMotor 使用三個、四個或更多電機,並以更像直升機的方式運行。這些可能有也可能沒有可用於固定翼飛行的控制面以進行控制。** 沒有它們的 CopterMotor 尾翼(即只有一個沒有控制面的升力翼)在固定翼飛行模式下必須始終使用它們的電機來提供控制。設置Q_TAILSIT_ENABLE = 2 會自動執行此操作。**

Q_TAILSIT_MOTMX = 15 (啟動motor 1- 4)
Q_FRAME_CLASS = 1 (quad)
Q_FRAME_TYPE = 17 (X) ***
Q_A_ANGLE_BOOST = 0 未能禁用此功能將導致油門隨著機頭下沉而減小,使機頭進一步下沉並導致撞車。

有兩種直升機尾翼特定配置可供使用,它們為直升機式電機提供無偏航扭矩 (NYT) 控制:Q_FRAME_TYPE = 15 (Plus) 和 =16 (X)。

(從上方俯視鼻子)

NYT QUAD PLUS 電機尾翼

電機由 M1-M4 輸出控制:

../_images/plus-copter-quadplane.jpg

NYT QUAD X 電動尾翼

電機由 M1-M4 輸出控制:

../_images/x-copter-quadplane.jpg
飛控的安裝方向依照飛機形式朝機頭方向
***搞死人,要注意馬達方向,跟常見的Quad不同

這邊有寫到啟動的方式: 簡單的說,要水平啟動,然後再立起來
  • Power up horizontally, and allow the autopilot to begin initialization in this position. After the IMUs tilt initialization is completed (usually in the first ten to fifteen seconds or so), the Tailsitter can be set vertically for the remainder of the initialization (ie after GPS lock and EKF is using the GPS) and then armed.

  • Or, if you get the Pre-Arm failure above, lay the Tailsitter down horizontally for 10-30 seconds to allow the various AHRS subsystems to synchronize. After that it can be raised and arming should proceed normally.

23/01/10

機體的部分依照進度慢慢完成當中,只有幾個小地方沒注意到。像是3mm碳纖棒開的孔3.2mm是不夠的,應該需要到3.4mm
另外就是艙蓋沒有設計固定的方式

至於飛控,PID的部分已經調整的差不多了。原來是這個P值超低,所以預設值放上去都一直震動。而YAW還是不受控制,除非YAW的問題能夠解決,不然應該會失敗。
我有找到一篇討論,跟我的問題一模一樣
https://discuss.ardupilot.org/t/quad-motor-tail-sitter-4-1-yaw-response/77025
最後一個回答是
I suggest to increase Q_A_ACCEL_Y_MAX to 110000.
明天試試看,希望有用。

23/01/11 
還是沒用,而且我把油門用手壓住只轉YAW,然後觀察飛機的反應,基本上YAW是完全沒動作的。
想了很久...我覺得應該是我自己完全會錯意了

Q_FRAME_TYPE = 15 (Plus) 和 =16 (X) 這兩種構型應該是不提供YAW控制
我原文看了幾次才慢慢了解 之前以為是為了無舵面飛機特別提供
其實原文的意思是早期的版本並沒有YAW控制功能,後來新版有了,但是為了給舊版用習慣的人可以沿用舊的控制,所以增加這兩種構型。

好吧...等等調整一下 明天測測看


23/01/13
很順利,沒錯,就是搞錯,Q_RAaME_TYPE = 1就OK了
並且做最後組裝。
幾個洞的角度跟大小沒調整得很好,但是無礙。我會把3D圖修正一下。
底蓋廢棄,因為在畫的時候沒注意到低點是主翼後緣,所以底蓋廢棄。
倒是在測試的時候,發現飛機模式時候,YAW的偏行不是很明顯。所以我會加上垂直翼以防萬一。





23/01/19
前幾天去試飛,還是一樣發生原地自旋。一直以為已經解決。回來看log也是找不到問題。主要是看磁羅盤跟震動,好像都在範圍之內,發生自旋的時候,IMU也是有正確偵測到。
後來在飛場還發顯馬達運轉不良。原本以為是內部線圈有斷掉,但回來之後怎麼檢查都找不到問題,最後整個韌體重刷過就神奇恢復。
難道是馬達的問題?不知道,反正今天換上新馬達,有空重新測試。

23/1/21
今天去後山調參,悟到了一個參數值I的重要。之前都只調整P跟D,I值要嘛很低,不然就乾脆留0。今天把飛機拿在手裡的時候發現I值的重要。
I值主要是提供緩慢的回到初始位置,所以如果把I值設成0的話,用手去轉Yaw,轉的時候會有抵抗力,可是手一鬆他會停住。如果I值有設定的話,不只抵抗增加,手放開還會回到最開始施力的位置。重要的是它會增加抵抗力。
所以原地自轉的問題算是找到答案了,就是I值沒設。
另外今天也測試了Q_HOVER跟Q_LOITER,結果高度完全不行。沒有氣壓計高度變動得太厲害。

23/1/25
考慮許久,還是試著增加氣壓計。
相關資料
無氣壓計警告
https://ardupilot.org/copter/docs/common-speedybeef4.html
改用GPS為高度測量
https://ardupilot.org/copter/docs/common-gps-for-alt.html#common-gps-for-alt
https://ardupilot.org/copter/docs/common-non-gps-to-gps.html#common-non-gps-to-gps
https://ardupilot.org/copter/docs/common-apm-navigation-extended-kalman-filter-overview.html

23/2/2
今天氣壓計到貨,晚上弄了很久都偵測不到。同一個bus上的compass沒問題。單獨把她拿到arduino上去讀資料也ok。找不出原因....
決定放棄用這塊FC來做這個計畫,還是弄回pixhawk吧,省的白做好多工。

23/2/4
改成pixhawk之後去測試,終於把高度定住了。一整個差很多....
另外還打算測試飛行模式的控制
結果發現FWA可以控制,但是stable模式則完全沒反應。另外嘗試調整了一下PID...好像沒反應,可能統一由Quad那邊的PID調整吧??





這邊在閱讀討論區,找到一些有用資訊
你好@kd0aij,@iampete,@tridge
我正在建造四翼雙翼飛機尾翼,在從 qloiter 到 fbwb 的過渡過程中遇到了一些問題。當我切換到 fbwb 時,轉換以 45 度(默認)完成。然後它繼續俯仰直到到達地平線,因為所需的俯仰幾乎為零。這種轉變非常快,我的飛機墜毀了幾次。有什麼方法可以使過渡緩慢而平穩。另外,如果我想在向前飛行時固定俯仰角(非零值),是否可以這樣做?因為目前,fbwb 控制器希望所需音高為零。我想看看我的飛機在固定高度下的俯仰角與速度圖的表現。我想以 10 度的增量從 90(零速度)到 10 度(我猜是最快的速度)改變俯仰,並研究所消耗的功率如何變化以找到最佳俯仰角。我希望你能在這方面幫助我。您的幫助將不勝感激。

  • 如果您沒有足夠快地達到飛行速度,您可以將過渡角度 Q_TAILSIT_ANGLE 增加到大約 60 度……您還可以(在 master 中)確定從垂直到 60 度所需的時間:Q_TAILSIT_RAT_FW
  • FW 中的俯仰角從自動駕駛儀的角度(即機身框架)始終為 0,但是,您可以通過僅在 Mission Planner 中將飛機保持在所需角度進行校準水平來更改迎角(地球框架中的俯仰角)攻擊(通常在機翼弦上 3-5 度,相對於地平面參考),那麼您將需要調整 Q_TRIM_PITCH 參數以補償 VTOL 模式下的垂直為 0 俯仰,或者您可以使用 TRIM_PITCH_CD 參數僅影響FW 模式下的俯仰調整,然而,這不會反映在 OSD 或 Mission Planner VHR_HUD 顯示中,並且看起來自動駕駛儀總是偏離水平,所以我更喜歡第一種方式,我自己
    另一種設置俯仰微調而不是使用 Mission Planner 中的 LEVEL Calibrate 按鈕的方法是手動設置 AHRS_TRIM_Y 值……以弧度為單位,因此您可以在飛行到 FBWA 中的不同值時設置它並查看需要什麼油門以保持恆定高度……然後您可以查看地面速度的對數值(假設您進行逆風和順風通過以及空速的平均值)與油門與您使用 AHRS_TRIM_Y 修剪的俯仰角
另外關於Q_OPTIONS bit 7 跟8

控制面

雖然通常不推薦,但可以駕駛沒有控制面的尾翼飛機。應注意首先讓車輛在懸停模式下飛行良好。

  • Q_OPTIONS位 7:強制Qassist將強制車輛在所有飛行模式下使用直升機控制器。

  • Q_OPTIONS位 8:Mtrs_Only_ Qassist允許對電機使用直升機控制器,但將任何控製表面留在平面控制下,這允許控製表面充當電機的“微調選項卡”。

有關如何通過空速、高度、姿態和/或開關自動啟用和禁用Qassist的更多詳細信息,請參閱輔助固定翼飛行。RCx_OPTION

就算看英文也不是很懂,不過好像bit7要設定成1

另外又有看到關於 QASSIST 參數:
Q_ASSIST_ALT 0.0 ****
Q_ASSIST_ANGLE 10.0
Q_ASSIST_DELAY 0.5
Q_ASSIST_SPEED 0.0 ****

打星星的兩個比較重要 不過好像預設值就長這樣

23/02/15
大失敗,Quad模式還好,轉道FWA之後大概兩三公尺,飛機就會像發瘋一樣垂直拉起來然後在天上亂飛。試了兩次最後大墜毀。
目前已知的問題是因為面積大,在Quad模式停懸稍微有點風的時候要修正Yaw光靠扭矩是不夠的,可以看到其中一個馬達都停了還無法修正。
至於轉FWA模式為什麼會垂直拉升,我有兩個猜測,第一是要修正滾轉但是扭矩不足,已經有一個馬達停掉。
另外就是可能某個參數設錯,導致飛控以為要墜毀所以強制戒數。

參考資料
  • Tailsitter 討論串  https://discuss.ardupilot.org/t/copter-tailsitters/45514?page=39
  • QuadPlane VTOL 調整» 調整過程說明 https://ardupilot.org/plane/docs/quadplane-vtol-tuning-process.html
  • QuadPlane Setup » Tailsitter Planes https://ardupilot.org/plane/docs/guide-tailsitter.html

2023年1月4日 星期三

更新BLHELI ESC


 之前想要更新飛塔上的ESC,用BLHeliSuite怎麼連都連不上。今天不知道看到哪篇文章,才赫然發現,原來BLHeli有兩種,一個是Blheli_32另外一個是Blheli_S,我之前以為後綴32是新板,結果發現是意思是給32bit MCU用的而_S則是比較弱的MCU用的

https://oscarliang.com/choose-esc-racing-drones/#firmware

他奶奶的...原來之前工具都下載錯了

所以BLHeliSutie跟BLHeliSuit是兩種不同的工具

而更早的BLHeli config則是跟後者相同 但是功能比較簡單

OK....反正手邊4in1連不上的今天都連上去了...

而之前要刷Hobbywing Xrotor 10A成BLHeli固件的也是一換工具就OK....


相關資料: 

  • Xrotor 10A 刷Blheli文章參考這 

http://dronehitech.com/en/flash-silabs-esc-blheli-firmware/

  • 刷寫工具跟用法

https://oscarliang.com/flash-blheli-s-esc-firmware-fc-pass-through/

  • 支援的ESC列表

https://github.com/bitdump/BLHeli/blob/master/SiLabs/BLHeli%20supported%20SiLabs%20ESCs.pdf


手邊一堆的雷虎30AOPTO原來是HOBBY  Platinum Pro 30A OPTO,難怪這麼眼熟


然後得到一個驚人的結果,原來好盈出貨給雷虎的已經是刷好Blheli的電變。

應該是吧,這顆是我從箱子裡翻出來已經去皮的,可是印象中我沒有動過韌體。