匿名四軸PID引數除錯講解
【過程詳解】
1、要在飛機的起飛油門基礎上進行PID引數的調整,否則“烤四軸”的時候除錯穩定了,飛起來很可能又會晃盪。
2、內環的引數最為關鍵!理想的內環引數能夠很好地跟隨打舵(角速度控制模式下的打舵)控制量。
在平衡位置附近(正負30度左右),舵量突加,飛機快速響應;舵量回中,飛機立刻停止運動(幾乎沒有回彈和震盪)。
2.1首先改變程式,將角度外環去掉,將打舵量作為內環的期望(角速度模式,在APM中叫ACRO模式,在大疆中叫手動模式)。
2.2加上P,P太小,不能修正角速度誤差表現為很“軟”傾斜後難以修正,打舵響應也差。P太大,在平衡位置容易震盪,
打舵回中或給干擾(用手突加干擾)時會震盪。合適的P能較好的對打舵進行響應,又不太會震盪,但是舵量回中後會回彈好幾下才能停止(沒有D)。
太大的D會在橫滾俯仰混控時表現出來(儘管在“烤四軸”時的表現可能很好),具體表現是四軸抓在手裡推油門會抽搐。
如果這樣,只能回到“烤四軸”降低D,同時P也只能跟著降低。D調整完後可以再次加大P值,以能夠跟隨打舵為判斷標準。
2.4加上I,會發現手感變得柔和了些。由於筆者“烤四軸”的裝置中四軸的重心高於旋轉軸,這決定了在四軸偏離水平位置後
會有重力分量使得四軸會繼續偏離平衡位置。I的作用就可以使得在一定角度範圍內(30度左右)可以修正重力帶來的影響。
表現打舵使得飛機偏離平衡位置,舵量回中後飛機立刻停止轉動,若沒有I或太小,飛機會由於重力繼續轉動。
3、角度外環只有一個引數P。將外環加上(在APM中叫Stabilize模式,在大疆中叫姿態模式)。打舵會對應到期望的角度。
P的引數比較簡單。太小,打舵不靈敏,太大,打舵回中易震盪。以合適的打舵反應速度為準。
4、至此,烤四軸”效果應該會很好了,但是兩個軸混控的效果如何還不一定,有可能會抽(兩個軸的控制量疊加起來,
特別是較大的D,會引起抽搐)。如果抽了,降低PD的值,I基本不用變。
5、加上偏航的修正引數後(直接給雙環引數,角度外環P和橫滾差不多,內環P比橫滾大些,I和橫滾差不多,D可以先不加),
拿在手上試過修正和打舵方向正確後可以試飛了(試飛很危險!!!!選擇在寬敞、無風的室內,1米的高度(高度太低會有地面效應干擾,
太高不容易看清姿態且容易摔壞),避開人群的地方比較適合,如有意外情況,立刻關閉油門!!!
5.1試飛時主要觀察這麼幾個方面的情況,一般經過調整的引數在平衡位置不會大幅度震盪,需要觀察:
5.1.1在平衡位置有沒有小幅度震盪(可能是由於機架震動太大導致姿態解算錯誤造成。也可能是角速度內環D的波動過大,
前者可以加強減震措施,感測器下貼上3M膠,必要時在兩層3M泡沫膠中夾上“減震板”,注意:鐵磁性的減震板會干擾磁力計讀數;
後者可以嘗試降低D項濾波的截止頻率)。
5.1.2觀察打舵響應的速度和舵量回中後飛機的回覆速度。
5.1.3各個方向(記得測試右前,左後等方向)大舵量突加輸入並回中時是否會引起震盪。
如有,嘗試減小內環PD也可能是由於“右前”等混控方向上的舵量太大造成。
6、橫滾和俯仰調好後就可以調整偏航的引數了。合適引數的判斷標準和之前一樣,打舵快速響應,舵量回中飛機立刻停止轉動(引數D的作用)。
至此,雙環PID引數調節完畢!祝爽飛!
相關文章
- 四軸PID思路整理
- vscode配置除錯引數VSCode除錯
- gdb除錯傳入引數除錯
- Linphone 配置引數(噪音除錯)除錯
- 如何除錯神經網路引數除錯神經網路
- 初略講解如何除錯Flutter應用除錯Flutter
- 7、超引數除錯、Batch正則化除錯BAT
- c/c++ gdb 除錯帶引數的程式C++除錯
- linux 程式引數檔案 /proc/pid/cmdline 簡介Linux
- 【轉載】Linux核心除錯之使用模組引數Linux除錯
- 埠掃描工具nmap的常用引數講解
- ES6中rest引數詳細講解REST
- SpringCloudAlibaba 微服務講解(四)Sentinel--服務容錯(二)SpringGCCloud微服務
- SpringCloudAlibaba 微服務講解(四)Sentinel--服務容錯(一)SpringGCCloud微服務
- 機器學習最困難的部分:超引數除錯機器學習除錯
- ng-template 使用過程中引數傳遞錯誤的單步除錯除錯
- Netcore webapi action swagger response返回引數使用匿名型別NetCoreWebAPISwagger型別
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- 五一勞動節,講講NEO智慧合約的除錯除錯
- PID 控制詳解
- 做一個幫你快速除錯UI引數的Android外掛除錯UIAndroid
- python之深入講解變數與名稱空間及資料引數與容器引數區別Python變數
- 詳解vue 路由跳轉四種方式 (帶引數)Vue路由
- java學習筆記day07 成員變數與區域性變數、形式引數、匿名物件、封裝、private、this、構造方法、類詳細講解、staticJava筆記變數物件封裝構造方法
- Python函式的位置引數、關鍵字引數精講Python函式
- /proc/{pid}/maps解讀
- Pytest 引數化報錯
- livewire 中wire:click=test('中文引數')引數報錯
- 四軸機械臂控制機械臂
- Linux PID個數設定Linux
- JMeter四種引數化方式JMeter
- GDB除錯命令詳解除錯
- 行動硬碟引數錯誤怎麼解決?行動硬碟開啟出現引數錯誤的修復方法硬碟
- 【Oracle】簡單引數也有講究,JOB_QUEUE_PROCESS引數調研Oracle
- 記錄解決HttpServletResponse在引數報錯的問題HTTPServlet
- Bug除錯專項訓練四筆記除錯筆記
- mybatis引數型別錯誤MyBatis型別
- 除錯篇——除錯物件與除錯事件除錯物件事件
- 實現ChromeDevtools除錯JavaScriptV8引擎Chromedev除錯JavaScript