久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PX4中混控器Mixer的分析

 limao164 2022-10-31 發(fā)布于四川

PX4架構(gòu)保證了核心控制器中不需要針對機(jī)身布局做特別處理,?;炜刂傅氖前演斎胫噶睿ɡ纾哼b控器打右轉(zhuǎn))分配到電機(jī)以及舵機(jī)的執(zhí)行器(如電調(diào)或舵機(jī)PWM)指令。對于固定翼的副翼控制而言,,每個(gè)副翼由一個(gè)舵機(jī)控制,,那么混控的意義就是控制其中一個(gè)副翼抬起而另一個(gè)副翼落下。同樣的,,對多旋翼而言,,俯仰操作需要改變所有電機(jī)的轉(zhuǎn)速。將混控邏輯從實(shí)際姿態(tài)控制器中分離出來可以大大提高復(fù)用性,。

1 控制流程

一個(gè)特定的控制器(如姿態(tài)控制器)發(fā)送特定的歸一化(-1.. 1)的命令到給混合(mixing),然后混合后輸出獨(dú)立的PWM到執(zhí)行器(電調(diào),,舵機(jī)等).在經(jīng)過輸出驅(qū)動(dòng)如(串口,UAVCAN,,PWM)等將歸一化的值再轉(zhuǎn)回特性的值(如輸出1300的PWM等)。如圖1所示,。

2 控制組

PX4 有輸入組和輸出組的概念,,顧名思義:控制輸入組(如: attitude),就是用于核心的飛行姿態(tài)控制,,(如: gimbal )就是用于掛載控制.一個(gè)輸出組就是一個(gè)物理總線,,如前8個(gè)PWM組成的總線用于舵機(jī)控制,組內(nèi)帶8個(gè)歸一化(-1.. 1)值,一個(gè)混合就是用于輸入和輸出連接方式(如:對于四軸來說,輸入組有俯仰,,翻滾,,偏航等,對于于向前打俯仰操作,就需要改變輸出組中的4個(gè)電調(diào)的PWM輸出值,,前倆個(gè)降低轉(zhuǎn)速,,后兩個(gè)增加轉(zhuǎn)速,飛機(jī)就向前),。對于簡單的固定翼來說,,輸入0(roll),就直接連接到輸出的0(副翼),。對于多旋翼來說就不同了,,輸入0(roll)需要連接到所有的4個(gè)電機(jī)。

  1. Control Group #0 (Flight Control)
  2. · 0: roll (-1..1)
  3. · 1: pitch (-1..1)
  4. · 2: yaw (-1..1)
  5. · 3: throttle (0..1 normal range, -1..1 for variable pitch / thrust reversers)
  6. · 4: flaps (-1..1)
  7. · 5: spoilers (-1..1)
  8. · 6: airbrakes (-1..1)
  9. · 7: landing gear (-1..1)
  10. Control Group #1 (Flight Control VTOL/Alternate)
  11. · 0: roll ALT (-1..1)
  12. · 1: pitch ALT (-1..1)
  13. · 2: yaw ALT (-1..1)
  14. · 3: throttle ALT (0..1 normal range, -1..1 for variable pitch / thrust reversers)
  15. · 4: reserved / aux0
  16. · 5: reserved / aux1
  17. · 6: reserved / aux2
  18. · 7: reserved / aux3
  19. Control Group #2 (Gimbal)
  20. · 0: gimbal roll
  21. · 1: gimbal pitch
  22. · 2: gimbal yaw
  23. · 3: gimbal shutter
  24. · 4: reserved
  25. · 5: reserved
  26. · 6: reserved
  27. · 7: reserved (parachute, -1..1)
  28. Control Group #3 (Manual Passthrough)
  29. · 0: RC roll
  30. · 1: RC pitch
  31. · 2: RC yaw
  32. · 3: RC throttle
  33. · 4: RC mode switch
  34. · 5: RC aux1
  35. · 6: RC aux2
  36. · 7: RC aux3
  37. Control Group #6 (First Payload)
  38. · 0: function 0 (default: parachute)
  39. · 1: function 1
  40. · 2: function 2
  41. · 3: function 3
  42. · 4: function 4
  43. · 5: function 5
  44. · 6: function 6
  45. · 7: function 7

3 混控文件的定義

ROMFS/px4fmu_common/mixers中的文件實(shí)現(xiàn)了預(yù)定義機(jī)架所使用的混控器,。它們可以用于自定義機(jī)架或者一般的測試,。

3.1 語法

mixer通過文本文件定義;以單個(gè)大寫字母加一個(gè)冒號開始的行是有效的,。其它的行則會(huì)被忽略,,這意味著注釋可以自由地在定義中穿插使用。
每個(gè)文件可以定義多個(gè)混控器,;混控器與作動(dòng)器的分配關(guān)系由讀取混控器定義的設(shè)備決定,,作動(dòng)器輸出數(shù)目則由混控器決定。
例如:每個(gè)簡單混控器或者空混控器按照它們在混控器文件中出現(xiàn)的順序?qū)?yīng)到輸出1到輸出x,。一個(gè)混控器定義通常具有如下形式:
<tag>: <mixer arguments>
tag標(biāo)簽決定混控器的類型,;M對應(yīng)簡單求和混控器,R對應(yīng)多旋翼混控器,,等等,。

3.2 空混控器

空混控器不接受控制輸入并產(chǎn)生單個(gè)作動(dòng)器輸出,其輸出值恒為零,??栈炜仄鞯牡湫陀梅ㄊ窃谝唤M定義作動(dòng)器特定輸出模式的混控器組中占位??栈炜仄鞫x形式如下:
Z:

3.3 簡單混控器

簡單混控器將0個(gè)或多個(gè)控制輸入混合為單個(gè)作動(dòng)器輸出,。所有輸入被縮放后,經(jīng)過混合函數(shù)得到混合后的輸入,,最后再經(jīng)過輸出縮放產(chǎn)生輸出信號,。簡單混控器定義如下:
M: <control count>
O: <-ve scale> < ve scale> <offset> <lower limit> <upper limit>
如果 <control count> 為0,那么混合結(jié)果實(shí)際上為0,,混控器將輸出一個(gè)定值,,這個(gè)值是在<lower limit>和<upper limit>限制下的<offset>。第二行用前文討論過的縮放參數(shù)定義了輸出縮放器,。計(jì)算以浮點(diǎn)操作被執(zhí)行,,存儲(chǔ)在定義文件中的值經(jīng)過了因子10000的縮放,,即偏移量-0.5會(huì)被存儲(chǔ)為-5000。緊跟在<control count>詞目之后的定義描述了控制輸入以及它們的縮放,,形式如下:
S: <group> <index> <-ve scale> < ve scale> <offset> <lower limit> <upper limit>
<group>值標(biāo)示了控制輸入來源,,縮放器從中讀取控制量,<index>值則是控制量在組內(nèi)的序號,。這些值對讀取混控器定義的設(shè)備而言都是特定的,。當(dāng)用來混合載體控制時(shí),控制組0是載體姿態(tài)控制組,,序號0到3通常對應(yīng)滾轉(zhuǎn),,俯仰,偏航和油門,?;炜仄鞫x行中剩下的域則用來配置縮放器,參數(shù)如前文討論,。計(jì)算以浮點(diǎn)操作被執(zhí)行,,存儲(chǔ)在定義文件中的值經(jīng)過了因子10000的縮放,即偏移量-0.5會(huì)被存儲(chǔ)為-5000,。
 

4 固定翼混控的簡單分析

分析一下固定翼Wing Wing Z-84的混控器設(shè)計(jì),,機(jī)型如圖2所示。它的混控文件為wingwing.main.mix,。這個(gè)機(jī)型只有左右副翼和一個(gè)電機(jī),。

其中左右副翼的鏈接輸出通道的0和1,電機(jī)鏈接輸出通道3,,對于輸出通道2則閑置,。輸入通道來源于通道0(飛機(jī)姿態(tài)),通道0中,,Roll,、Pitch、thrust分別對于0,1,3(這里好像不支持Yaw的控制),?;炜仄鞯脑O(shè)置由圖3所示。由于左右兩個(gè)舵機(jī)在物理上是反向的,,所以對于Pitch的輸入也需要做反向處理,。

混控文件是這樣的

混控器中第一行M:2表示輸出0需要對下面兩個(gè)通道的的輸入做簡單的加法混控。O:      10000  10000      0 -10000  10000代表負(fù)值正值的縮放比例都為1000,,偏置為0,最大最小輸出范圍為-10000到10000,。后面兩行S開頭的代表需要做混控的輸入,,第一行是對輸入Roll的處理,,第二行是對輸入Pitch的處理。同理第二個(gè)M:2是混控得到輸出1,。

舉個(gè)簡單的例子,,Roll的輸入為0,加入當(dāng)前Pitch的輸入為0.1,。執(zhí)行前兩個(gè)混控后,,得到的輸出為,通道0的輸出為650,,通道1的輸出為-650,,按理說對Pitch的控制,兩個(gè)副翼的角度應(yīng)該是一樣的,,但是因?yàn)閮蓚€(gè)舵機(jī)在以上的安放位置相反,,所以輸出也相反。
對于通道3的輸出就只有油門了,,對油門進(jìn)行縮放即可,。

5 多旋翼混控的簡單分析

多旋翼的的混控那最簡單的四軸X模式來分析,先分析混控文件,,如圖4所示,。四周的混控文件非常簡單,R: 4x 10000 10000 10000 0表示的意思為,,R:旋翼混控器,,4x:四軸X模式,后面的3個(gè)10000是Roll,、Pitch,、Yaw的縮放比例,0為死區(qū)范圍,。而后面的兩個(gè)混控器是準(zhǔn)備別的輔助通道混控,,Roll、Pitch,、Yaw的混控并不在這個(gè)混控文件里面,,因?yàn)樗妮S一個(gè)電機(jī)的輸出和Roll、Pitch,、Yaw,、thrust都有關(guān)系,所以四軸的混控在mixer_multirotor.cpp中完成,。

對于不同的旋翼機(jī)型會(huì)定義不同的混控?cái)?shù)組,,四軸X模式的數(shù)組如圖5所示。其中每一行對應(yīng)一個(gè)電機(jī)的輸出,,每一列對于Roll,、Pitch,、Yaw、Thrust的輸入,。

在mixer_multirotor.cpp文件中會(huì)先計(jì)算先根據(jù)Roll,、Pitch的輸入計(jì)算出混控器的輸出,然后根據(jù)電機(jī)是否飽和縮放后,,再次加入Yaw叫輸入的混控,,最后加入油門的混控。

6 飽和的處理

處理的代碼如下圖

1 根據(jù)混控矩陣計(jì)算得到out,,這一步已經(jīng)包含油門,,同時(shí)記錄下最大輸出和最小輸出,outputs保存四個(gè)電機(jī)的輸出值,。

2 第一種情況,,min小于0,max大于0,,min,,max之差小于1,可以通過偏移解決,。加油油門增加幅度大于|min|,,可以通過增加油門的方式解決,boost = -min_out;如果油門增加幅度太小,,需要把roll和pitch的縮小后再計(jì)算,。

舉個(gè)例子,當(dāng)前thrust為0.2,,計(jì)算得到新的輸出值之后,,min為-0.2,max為0.6,roll和pitch帶來轉(zhuǎn)速上的變化是0.4,,由于只計(jì)算了Roll和Pitch,,所以在旋翼里面,min和max到thrust的距離一定是一樣的,。這種情況就是第一種情況,,并且油門增大幅度為0.2*0.5=0.1,不足以平衡min的大小,。需要對Roll和Pitch進(jìn)行縮放,。計(jì)算得到boost=0.1,roll_pitch_scale=0.75,,然后再計(jì)算下面的代碼,。可以知道m(xù)in=0,max=0.6,,沒有飽和,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多