25B無人直升機調試(Tuning)

要知道的直升機原理
首先要掌握的5個飛行模式 本文首先調試自穩模式
Stabilize 自穩模式
Alt Hold 定高模式
Loiter (& OF_loiter) 懸停模式
RTL (Return-to-Launch) 返航模式
Auto 自動模式

Acro 特技模式
Sport 運動模式
Drift 漂移模式
Guided 導引模式
Circle 繞圈模式
Position 定點模式
Land 着陸模式
Follow Me 跟隨模式
Simple and Super Simple 簡單(超簡)模式


從零開始你的無人直升機:

1.安裝mission planner地面站
2.下載、編譯、燒寫Ardupilot源碼 (一)(二),pixhawk飛控出到2代了,用源碼編譯上傳時別傳錯版本,或者直接下載固件(用AC3.6.4 AP3.9.4,AC3.67 AP3.9.7,AC3.6.6 別的版本heli setup page是灰的)
3.確定使用的硬件,雷迅m8n GPS+羅盤模塊,XBee電臺microhard PICO900(P900)電臺FUTABA CGY750陀螺儀,無線電遙控,減震器等等,並正確連線
4. 校準硬件
5. 調參
6. 日誌分析官方教程
7. 自動調參


25B直升機參數
機體參數

長/寬/高(mm)1778/508/711
主旋翼直徑:2146mm
尾旋翼長:403mm
淨重:16.12kg
引擎參數
引擎模式:日本ZENOAH風冷雙缸水平對置發動機
排氣量:80cc
輸出功率:7匹
啓動方式:外置電啓動器
使用燃料:汽油+潤滑油混合
性能參數

續航時間:50-55分鐘
最大燃料容量:3.84升(可隨載荷情況自行改裝)
最大有效載荷:11.5kg(滿3.84L油料情況下)
飛行速度:0~80km/h
飛行高度:2400m(注意法定限高)

航模直升機按尺寸分級
450級最受歡迎,抗風性和價格都是最合適的,機長65cm,旋翼直徑70cm。
700級是競技機,機長140cm,旋翼直徑150cm。


  • Ardupilot從3.4開始參數名和代碼規模發生了改變,舊版本調試文檔
  • 如果使用者要設置傳統直升機的參數,請務必使用gcs中的全部參數表,不要使用爲多旋翼準備的基本、擴展、高級調優界面, 這些界面會對直升機設置進行不必要的更改
  • 改完記得保存

調試順序:
調試之前確定你的斜盤是水平的

  • 設置默認值(官網Tuning中已給出,或者看本文表格)
  • 調尾舵,將直升機懸停在離地面不超過0.25米的高度,將ATC_RAT_YAW_VFF設置成0.05,尾部不能穩定保持增大ATC_RAT_YAW_P(不建議高於0.38),發生快速振動時減小ATC_ANG_YAW_P(不建議低於3.5)
  • 調ATC_RAT_RLL/PIT_VFF(初值一般設0.15)和 ATC_ACCEL_P/R_MAX(根據直升機大小調)800-900級機器通常在36000-52000範圍內;較小的450-500級機器通常在90000-110000範圍內。stability模式懸停,比較日誌中P.des與P(期望與實際值),R.des與R兩對信號,如果實際速率大於期望速率,則需要降低VFF,如果是小於則增加VFF,如果你得到匹配的速率,並且他們覺得他們太快了,那麼減少ATC_ACCEL_MAX參數。有副翼的直升機從0.22 VFF 開始。
  • 調D和P增益,先調D再調P。先在遙控器上改參數,調整遙控旋鈕直到ATC_RAT_PIT/RLL_D增益爲0.001,roll軸給大輸入,每次增加0.001,直到開始抖動將其減半作爲最終值。
    ATC_RAT_PIT/RLL_P初值0.05,每次加0.01,開始抖動減半。
  • 調 I 增益以及IMAX、ILMI,讓ATC_RAT_PIT/RLL_IATC_RAT_PIT/RLL_VFF相等,IMAX初值0.4。相對地速小於5m/s時應該減小這個值。要修改時使IMAX = 1,以最大期望速度飛行飛機。拉出日誌,查看PIDP消息中的最大 I 值是多少。將IMAX設置爲高於最大值0.1。您可以對滾動軸做同樣的操作,但通常0.4就足夠了。ILMI設置爲您希望在懸停時保留的最大積分器值,以幫助保持姿態。建議該值不大於0.1。
  • 微調AHRS_TRIM_X,AHTS_TRIM_Y
    此步驟是爲了在stability模式下,飛手脫桿直升機能夠差不多的懸停。
    修改AHRS_TRIM_X調整飛機前後,修改AHRS_TRIM_Y調整飛機左右。

  飛機的控制率是一種跟隨的算法模型,這種模型會把飛手輸入的量轉化爲姿態控制(自穩模式)或速度控制(特技模式)以便能夠實現期望量的輸出。而軟件根據飛手或自動駕駛儀的輸入來跟蹤或預測飛機在空間中的位置(即俯仰和橫搖姿態)。它有兩個控制器(姿態和速度)一起工作,以確保實際飛機實現軟件預測的俯仰翻滾速度以及飛機姿態。

  無人機可以完全由飛手用遙控控制來保持平穩,也有傻瓜模式(自穩模式)飛機平衡由飛控控制,飛手只需控制飛機的飛行方向。

飛手的指令可以被限幅
ATC_ACCEL_P_MAX 和 ATC_ACCEL_R_MAX分別限制pitch和roll方向的加速度
飛機對飛手的輸入靈敏度/響應速度(crispness 快/sluggishness 慢)由ATC_INPUT_TC(3.5及之前版本叫RC_FEEL)控制
這些量會反饋給 rate controller

attitude controller作用是使真實姿態跟隨預測姿態,ATC_ANG_PIT_P 和 ATC_ANG_RLL_P 兩個參數分別控制pitch和roll的rate,這兩個參數反饋給rate controller

rate controller接收飛手輸入和從attitude controller的到的rate的和。rate controller使用PID和前饋控制使飛機跟隨輸入。前饋控制使用輸入的rate,並將ATC_RAT_PIT_VFF 和 ATC_RAT_RLL_VFF 兩個增益作用到pitch和roll上來控制斜盤(swashplate ),PID通過輸入rate和真實rate的差來控制斜盤,然後PID做和去控制伺服。

初始調試使用VFF增益使requested rates 和 actual rates 大致一樣,然後使用PD增益抗擾,但PD增益不能保持他們的匹配,然後引入I(積分)增益,用ATC_RAT_RLL_IMAX 和 ATC_RAT_PIT_IMAX 參數限制roll和pitch。
當ground speed(地速:飛機相對於地面的速度)慢於5m/s時,積分增益降低,ATC_RAT_RLL_ILMI 和 ATC_RAT_PIT_ILMI 限制最多降低多少,如果ILMI參數是0則積分器不會增長,最終姿態不會跟上預測姿態。如果不是0或者足夠大,直升機會陷入低俗速或盤旋最後跟上預測姿態(就是跟蹤速度慢),在飛機前進時需要大量積分器,而在盤旋或者起落時大量積分器會讓直升機在一側翻轉,所以要保持一定的積分器,又不能讓他在一側翻轉。

以下是pitch和roll的默認參數,將VFF設成0.15pitch和rool,尾槳yaw需要自己調

pitch,roll參數
手飛時P,R方向加速度限制,
根據直升機大小確定
ATC_ACCEL_P_MAX 110000
ATC_ACCEL_R_MAX 110000
姿態控制器P參數 ATC_ANG_PIT_P 4.5
ATC_ANG_RLL_P 4.5
飛機懸停設0.001,在roll輸入一些大動作,
如果沒震動加大0.001,調到震動時減小一半
ATC_RAT_PIT_D 0
ATC_RAT_PIT_FILT 20
和ATC_RAT_PIT_VFF相同 ATC_RAT_PIT_I 0
ATC_RAT_PIT_ILMI 0
ATC_RAT_PIT_IMAX 0.40
設0.05,每次增加0.01調到振動減小一半,P值會跟飛機動力有關係,
動力大合適的P值可能較小,反之可能較大
ATC_RAT_PIT_P 0
前饋P ATC_RAT_PIT_VFF 0.15
ATC_RAT_RLL_D 0
ATC_RAT_RLL_FILT 20
ATC_RAT_RLL_I 0
如果ILMI或積分器減小到最小值爲零,那麼積分器將不允許增加,
並且不會控制姿態與飛控預測的姿態完全匹配建議不大於0.1
ATC_RAT_RLL_ILMI 0
地速小於5m/s時減小 ATC_RAT_RLL_IMAX 0.40
ATC_RAT_RLL_P 0
前饋R ATC_RAT_RLL_VFF 0.15
ATC_INPUT_TC 0.15

在這裏插入圖片描述

調試yaw

調pitch和roll之前建議先保持尾槳(yaw)正常
**重要提醒:**無人直升機和運動直升機不同,通常headspeed較低並且會有higher disc loading(槳盤負載),對於機械驅動的尾槳也意味着較低的轉速和權重,如果直升機符合這些描述,在懸停實驗前將 ATC_RAT_YAW_VFF 參數設爲 0.05。

懸停實驗:
將飛機懸停在離地面0.25米左右,如果尾巴(yaw)方向不能保持將 ATC_RAT_YAW_P 調大,如果快速來回擺動降低ATC_ANG_YAW_P

在所有情況下,不建議將ATC_ANG_YAW_P 調到3.5以下或將 ATC_RAT_YAW_P 調到0.38以上,如果直升機尾部在這些限幅內還是不穩定可能是出現了機械問題:
either excessive “slop” or play in the linkage, binding of the linkage or a servo problem

將上述參數調完之後再對pitch和roll參數精調

以下是yaw的默認參數

尾槳參數
ATC_ACCEL_Y_MAX 27000
不建議低於3.5 ATC_ANG_YAW_P 4.5
ATC_RAT_YAW_D 0.003
ATC_RAT_YAW_FILT 20
ATC_RAT_YAW_I 0.12
ATC_RAT_YAW_ILMI 0
ATC_RAT_YAW_IMAX 0.33
“鬆了”增大,快速振動減小 ATC_RAT_YAW_P 0.18
第一次懸停建議設0.05 ATC_RAT_YAW_VFF 0.024

設置pitch和roll的 VFF 和 ACCEL_MAX
先將VFF設成0.15,起飛自穩模式盤旋,在pitch和roll軸上給一些 sharp stick 輸入,拿下飛機上的SD卡在地面站上看日誌,比較P.des(pitch Desired Rate)和P(pitch actual Rate)以及 R.des 和 R 如果 actual rate 高於 desired rate 就降低VFF,如果低就增加VFF。
If the desired and actual rates are offset by some amount it means that your swash was not properly leveled in the setup(斜盤沒放平) or the CG(這玩意兒是啥???) is not right.
這種情況只要保持rate真實值和期望值相似就行,如果覺得這兩個rate match的太快就減小 ATC_ACCEL_MAX 並重覆上面步驟去match desired and actual rates

如果調VFF飛機開始擺動,減小該軸對應的ATC_ANG_xxx_P 值,直到擺動停止,對大多數直升機上述推薦值不會出現這種情況。

With a flybar(平衡翼???) head 推薦開始pitch和roll VFF 爲0.22,你有可能需要更高的 0.22 VFF值。But for a flybarless head,不要高於0.22,unless you have really really slow servos or slow linkage rate。

最後根據直升機大小設置 ATC_ACCEL_MAX 參數,大的800-900級直升機設在36000-52000之間,小的450-500級直升機設爲90000-110000之間,ATC_INPUT_TC 值建議設在0.15-0.25之間(for RC_FEEL with AC 3.5 or earlier, the recommended range was 25 to 50)

下圖是Rate Roll Desired 和 actual Rate Roll 的比較,峯相當於一個 rapid stick,兩條曲線峯值相當,時間偏移不超過100毫秒(milliseconds)
在這裏插入圖片描述
Note on Tuning Flybar Helicopers
flybar is a mechanical version of the rate PID loop
所以flybar只用pitch和roll的VFF調,

調PD參數
把VFF參數調好後開始調PID參數,PID的作用是抗擾並讓actual跟隨 predicted rates

先調D,使用連接到遙控器通道6的ArduCopter的調優功能。進行以下參數更改。

name valude
TUNING 21
TUNING_LOW 0
TUNING_HIGH 30*

對於futaba收音機,這相當於旋鈕的一個增量爲0.001

調整遙控器6通道的旋鈕,直到ATC_RAT_RLL_D和ATC_RAT_PIT_D增益爲0.001。上升到懸停狀態,並在roll方向做一些大動作。大多數直升機在看到俯仰振動之前都會先看到橫搖振動。這就是爲什麼建議使用roll輸入。如果沒有震動,增加0.001,然後再試一次。在得到快速抖動的值處,將該值減半,並將其作爲ATC_RAT_RLL_D和ATC_RAT_PIT_D的最終調優值輸入。測試將直升機懸停在空中,並在俯仰和翻滾中做一些快速的運動,以確保它是穩定的。

接下來調整P增益,確保進行以下參數更改。

name value
TUNING 4
TUNING_LOW 0
TUNING_HIGH 300*

對於futaba遙控器,這相當於旋鈕的一個增量爲0.01

調整6通道旋鈕,直到ATC_RAT_RLL_P和ATC_RAT_PIT_P增益爲0.05。盤旋上升,從一邊到另一邊猛烈滾動。如果沒有抖動,將增益增加0.01,然後重試。在得到快速搖晃的值時,將該值減半,並將其輸入爲ATC_RAT_RLL_P和ATC_RAT_PIT_P的最終調優值。測試懸停直升機,並在俯仰和滾轉中進行一些快速的運動,以確保其穩定。

在調整了P增益和D增益後,飛機應該會感覺更平穩。

設置I增益以及IMAX、ILMI
建議將ATC_RAT_PIT_I增益設置爲ATC_RAT_PIT_VFF增益,ATC_RAT_RLL_I增益設置爲ATC_RAT_RLL_VFF增益,IMAX值限制了積分器誤差的累積,積分項可以用來對抗較大的姿態擾動。在飛機的pitch軸上,當飛機高速前進時ATC_RAT_PIT_I能夠保持飛機的姿態,初始值是0.4。要改這個值時使IMAX = 1,以最大期望速度飛行飛機。拉出日誌,查看PIDP消息中的最大 I 值是多少。將IMAX設置爲高於最大值0.1。您可以對滾動軸做同樣的操作,但通常0.4就足夠了。ILMI設置爲您希望在懸停時保留的最大積分器值,以幫助保持姿態。建議該值不大於0.1。

下面是在ILMI參數設置爲零,適當設置I-gain和IMAX參數的情況下,直升機在高速自主飛行中期望橫搖姿態與實際橫搖姿態的關係圖,將使直升機在超過5m/s的速度下,以超過2秒的時間(我們稱之爲“動態飛行”)非常接近所期望的姿態。在動態飛行中,它應該在所需的1-2度誤差範圍內。在圖的右邊,飛手將直升機從懸停狀態切換到穩定飛行模式。您將注意到實際滾動姿態和期望滾動姿態之間的差異,這是將ILMI設置爲0的原因。ILMI可以被認爲是懸停時的一種“自動配平”,當直升機不在動態飛行時,這種配平可以減少期望和實際俯仰和滾轉姿態之間的差異。
在這裏插入圖片描述
懸停配平、懸停飛行模式和航路點飛行的高級調優
在這一點上,你應該有一架反應靈敏又穩定的直升機。但是我們需要修整直升機,這樣它就可以在stability飛行模式下自由盤旋。在AUTO 飛行模式下調整I-增益,以便在飛機在全自動駕駛儀全部控制下正確跟蹤姿態。

懸停調優
在俯仰和翻滾軸上調整直升機是防止飛機在stability和althold模式下漂移的一個重要步驟。翻滾軸的配平姿態受尾旋翼推力的影響。所有傳統的帶有扭矩補償尾槳的單旋翼直升機,根據主旋翼轉向的方式,要麼右滑低,要麼左滑低。ArduCopter軟件有一個參數(ATC_HOVR_RLL_TRIM)來補償這種現象。縱向重心位置將影響俯仰軸上的配平姿態。沒有參數可以告訴飛行控制器飛機在俯仰姿態上漂移盤旋。它總是以飛行控制器測量的零度俯仰爲目標。因此,飛機盤旋的實際俯仰姿態可能是5°機頭高,但飛行控制器AHRS配平值被設置爲使其認爲姿態爲零。

爲了配平飛機,將ATC_HOVR_RLL_TRIM 參數設置爲零。在飛行控制器的初始設置過程中,AHRS配平值是在加速計校準過程中的最後一步設置的,最後一步是使飛機水平。對於這個步驟,你應該確保軸在俯仰和滾動上是完全垂直的。對於此步驟,建議您檢查並使用以下方法。

用數字螺距尺測量實際的節距和滾動角度(在垂直於主軸的框架部分)。通過MavLink連接到地面站軟件,注意飛行控制器測量的俯仰和滾轉角度。調整AHRS_TRIM_X和AHRS_TRIM_Y值,使飛行控制器匹配你用數字螺距尺測量的相同的框架角度。您可以使用地面站中的校準水平面功能,將直升機水平放置在實際高度。該功能將爲您調整AHRS_TRIM。

以上是必要的,這樣我們就可以精確地測量滾轉角來設置ATC_HOVR_RLL_TRIM。飛行控制器現在“知道”主軸何時完全垂直。

給直升機裝載其正常有效載荷,並在stability飛行模式無風條件下懸停直升機。着陸並查看日誌,注意你必須保持的滾轉角( noting the roll angle that you had to hold with the stick to keep the helicopter from drifting),以防止直升機漂移。以百分位數爲單位,在ATC_HOVR_RLL_TRIM參數中輸入該值。對於順時針轉動主電機,如果需要3.5度的右滾來補償,輸入350。負值適用於需要左滾進行補償的逆時針轉動主電機。

重要提醒 - do not use the radio trims at all. Make sure they are centered.

設置好ATC_HOVR_RLL_TRIM後,現在再次懸停直升機。如果仍然漂移,則對SERVO1_TRIM、SERVO2_TRIM和SERVO3_TRIM進行小的調整。使斜盤完全水平的機會非常低,需要這種動態調整來調整直升機。如果它需要與原始的SERVOx_TRIM值有較大的偏差,那麼很可能是您的重心問題,或者您在調平斜盤時的初始設置不是很準確。

你的直升機現在調整好了。這種修整步驟使難以操縱的直升機與真正具有飛行品質和操縱能力的直升機有所不同。(This trimming procedure makes the difference between a helicopter that is difficult to handle vs one that flies with true scale quality and handling.)

高速自主飛行模式下的I增益的調整
用你的地面站軟件準備一個任務,讓直升機以6米/秒的速度左右轉彎。執行此任務的直升機,從microSD卡中取出日誌,查看動態飛行中所需的AHRS與實際俯仰、橫搖和偏航姿態。他們誤差應該在1-2度內。如果沒有,則增加該軸的ATC_RAT_xxx_I值,直到滿足。

現在,以9-10 m/s的更高速度執行同樣的任務,並以同樣的方式分析日誌。根據需要進一步調整I增益和IMAX值,不同的直升機需要不同的值。但是0.25-0.38的I增益值在俯仰和滾轉中很常見,在偏航中爲0.18-0.30。0.40-0.45的IMAX值很常見,但是請參閱“設置I增益以及IMAX、ILMI”部分,瞭解如何確定IMAX值。

微調AHRS_TRIM_X,AHTS_TRIM_Y
此步驟是爲了在stability模式下,飛手脫桿直升機能夠差不多的懸停。

修改AHRS_TRIM_X調整飛機前後,修改AHRS_TRIM_Y調整飛機左右。

調整直升機在AltHold模式下懸停

param name value
PSC_POSZ_P 5
PSC_VELZ_P 1
PSC_ACCZ_P 0.5
PSC_ACCZ_FF 0
PSC_ACCZ_FILT 20
PSC_ACCZ_I 1
PSC_ACCZ_IMAX 800
PSC_ACCZ_D 0

PSC_POSZ_P用於將高度誤差(期望高度和實際高度之間的差值)轉換成期望的爬升率或下降率。更高的速率會使它更快速地試圖保持高度,但如果設置得太高,會導致油門反應不穩。

PSC_VELZ_P(通常不需要調整)將期望的爬升或下降速度轉換成期望的上升或下降加速度。

油門加速比例積分微分增益將加速度誤差(即期望加速度和實際加速度之間的差值)轉換爲電機輸出。如果修改這些參數,應該保持PSC_ACCZ_P:PSC_ACCZ_I=1:2。這些數值不應該增加,但是對於重量級的直升機來說,你可以通過減少PSC_ACCZ_P與PSC_ACCZ_I來獲得更好的控制。

在日誌中可以查看CTUN中Dalt(期待高度)與alt(實際高度)來分析高度控制的如何。

在這裏插入圖片描述

調整直升機在PosHold模式下懸停
這一步纔是真正意義下了懸停,通過此步驟,飛機能夠在poshold模式下定點。

此模式下的XY方向的控制率與高度Z方向的控制率有相同的規律。多調試,多看日誌,多分析。

param name value
PSC_ACC_XY_FILT 2
PSC_POSXY_P 1
PSC_VELXY_D 0
PSC_VELXY_D_FILT 5
PSC_VELXY_FILT 5
PSC_VELXY_I 0.5
PSC_VELXY_IMAX 1000
PSC_VELXY_P 1

通過日誌裏的PSC可以看到位置控制,其中T開頭的是期望值。
在這裏插入圖片描述
下面8個RC通道對應main out輸出

RC Channel SERVO output
1 Aileron(副翼)
2 Elevator(升降舵)
3 Collective
4 Rudder(方向舵)
5 Flight Modes(飛行模式)
6 Tuning
7 Aux
8 Throttle(油門)

在這裏插入圖片描述
引腳連法:
Motor 1, which is normally the left front servo on your helicopter goes to pin 1. Motor 2, which is normally the right front servo goes to pin 2. Motor 3, which is normally the rear (elevator) servo goes to pin 3. Tail servo goes to pin 4.

If you are using a DDVP (Direct Drive Variable Pitch) tail rotor, the tail motor ESC connects to pin 7. The throttle servo or ESC for the main rotor motor connects to pin 8.

H_SW_TYPE參數用於斜盤選擇,不同的value代表不同斜盤目前支持的斜盤
在這裏插入圖片描述

通用飛控法則

  有兩個controller分別控制姿態attitude(Stabilize Mode) 和速度rate(Acro mode),就是兩個跟隨輸入的模型,地面站會持續跟蹤並預測飛機的空間位置。

飛控的指令會受加速度限制,可通過以下參數調節
ATC_ACCEL_P_MAX pitch的最大加速度
ATC_ACCEL_R_MAX roll的最大加速度
ATC_INPUT_TC 輸入的(crispness/sluggishness) (不知道咋翻譯,AC3.5或更早版本中叫RC_FEEL)
  初始輸入和這些參數用於確定達到需求的相應速度,該速度會反饋到rate controller
  attitude controller用於確保實際姿態和飛控預測的姿態相同,將ATC_ANG_PIT_P和 ATC_ANG_RLL_P分別控制的pitch和roll的速率反饋給rate controller,來完成對預測的跟隨。
   rate controller接收輸入和attitude controller 的sum來控制swashplate,使用PID算法和前饋,前饋用輸入ATC_RAT_PIT_VFF給pitch做增益,ATC_RAT_RLL_VFF給roll做增益。

ATC_RAT_RLL_IMAX roll的最大積分(I)增益
ATC_RAT_PIT_IMAX pitch的最大積分(I)增益

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章