5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 4078|回复: 13
打印 上一主题 下一主题

四旋翼控制律图形化详解

[复制链接]
跳转到指定楼层
楼主
发表于 2018-12-17 10:30 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
点击查看详情
本帖最后由 uavpan 于 2018-12-20 10:26 编辑


四旋翼控制律流程图


位置控制模块参数设置窗口


位置控制模块内部流程图


位置控制模块内部高度控制流程图


姿态控制模块参数设置窗口


姿态控制模块内部流程图


位置控制模块输入输出定义




评分

参与人数 1威望 +2 模币 +10 收起 理由
永丰狼人 + 2 + 10 赞一个!

查看全部评分

欢迎继续阅读楼主其他信息

14
发表于 2022-1-2 09:14 | 只看该作者
本帖最后由 丹顶鹤 于 2022-1-2 09:17 编辑

    从兴趣和爱好到事业与追求     [复制链接]
        从青少年时代的兴趣和爱好到事业与追求 ,实在是难能可贵!

13
发表于 2019-1-8 09:45 | 只看该作者
大神都在这里啊
12
发表于 2019-1-6 15:54 | 只看该作者
11
 楼主| 发表于 2018-12-23 06:59 | 只看该作者
本帖最后由 uavpan 于 2018-12-23 07:07 编辑

控制律功能模块详解

一、直升机/多旋翼位置控制器模块 Copter Controller

控制器模块内部有三个控制通道:高度控制器、方向控制器和位置控制器。




输入:
AILE副翼(横滚)控制通道
ELEV升降(俯仰)控制通道
RUDD方向(航向)控制通道
THROT油门(升降)控制通道
F-Mode飞行模式控制通道
H-Mode航向模式控制通道
C-Mode航行模式控制通道
ARM解除保险控制通道
Battery电池电压监测通道

  • AILE、ELEV、RUDD和THROT的输入值范围:-1~ 1(摇杆增益设置为2)
  • F-Mode、H-Mode和C-Mode的输入值范围:0 ~1
  • ARM的输入值范围:< 0.5上保险, > 0.5 解除保险,无连接默认解除保险。
  • AILE、ELEV、RUDD和THROT的输入信号必须设置 ± 0.2 的死区
  • AILE、ELEV、RUDD和THROT人工控制的输入目标值取决于飞行模式


输出:
  • Roll目标横滚角(度)
  • Pitch目标俯仰角(度)
  • Yaw目标航向角(度)
  • Throttle油门输出值
  • Ground接地探测器输出(1-飞机在地面;0 -飞机在空中)
  • ARM解除保险输出(解除保险信号源自外部模块)
  • Alarm紧急检测器输出。当电池电压低于设定的低电池电量值超过10秒时,输出值为1(该输出可用于开启降落伞)。

控制模式的输入值定义

F-Mode飞行控制模式(排序自定义)
< 0.2 – 姿态保持模式(Stabilization)
0.2...0.4 – 高度保持模式(Altitude Hold)
0.4...0.6 – 位置保持模式(Position Control)
0.6...0.8 – 自动飞行模式(Auto)
> 0.8 – 返回起飞点模式(Return Home)

H-Mode机头指向控制模式
< 0.2 – 保持机头指向模式(启动后的初始指向或其他模式下的当前指向)
0.2...0.4 – 保持输入的转向角速率(方向摇杆控制机头指向)
> 0.4 – 保持飞机离开起飞点时的机头指向

C-Mode航行控制模式
< 0.3 – 正常
0.2...0.7 – 航向保持
> 0.7 – 环绕起飞点飞行(机头指向起飞点)
注意:C-Mode航行模式的输入值,仅在当前飞行模式下(F-Mode)的航行模式(C-Mode)定义为未使用(Not Defined)的情况下有效。否则C-Mode航行模式的输入值无效。(外部连接与内部设置的使能关系)


Flight Modes飞行控制模式描述

Stabilization姿态稳定模式
自动控制横滚角、俯仰角和航向角参数,油门参数控制直接来自于输入通道值。
控制值:
Roll = AILE_Input * Max_Roll_and_Pitch
Pitch = ELEV_Input * Max_Roll_and_Pitch
Yaw = RUDD_Input * Max_Yaw_Velocity
Throttle =Hover_Throttle +(THROT_Input / 2)

Altitude Hold高度保持模式
自动控制横滚角、俯仰角、航向角和高度参数,该模式等同于姿态稳定模式加高度控制器。
控制值:
Roll = AILE_Input * Max_Roll_and_Pitch
Pitch = ELEV_Input * Max_Roll_and_Pitch
Yaw = RUDD_Input * Max_Yaw_Velocity
Climb:
For positive (Up) values Climb = THROT_Input *Max_Up_Velocity
For negative(Dn) values Climb = THROT_Input * Max_Dn_Velocity

Position Control位置控制模式
在这种模式下,自动保持飞机的稳定、位置和高度。 操作手可以通过副翼AILE和升降ELEV通道,输入横向和纵向目标速度来移动飞机。 当输入为零时,飞机将保持当前位置。如果输入值不为零,则稳定输入的目标速度。
Ground Velocity X = ELEV_Input * Max_Ground_Velocity
Ground Velocity Y = AILE_Input * Max_Ground_Velocity
Yaw = RUDD_Input * Max_Yaw_Velocity
Climb:
For positive (Up) values Climb = THROT_Input *Max_Up_Velocity
For negative (Dn)values Climb = THROT_Input * Max_Dn_Velocity
可将直升机/多旋翼飞行模式参数CopterFlight Mode添加到遥测数据包中,飞行模式参数代码:1–姿态稳定模式、2–高度保持模式、3–位置保持模式。

Auto Control自动飞行控制模式
在这种模式下,直升机/多旋翼将按照上载的飞行航线自动飞行,操作手可以通过油门杆调整飞行高度。

Return Home返回起飞点模式


Course Modes航行控制模式描述

Normal正常模式
副翼AILE和升降ELEV通道的输入值,与对应的飞行控制模式相同。例如:在姿态稳定飞行模式,副翼AILE通道的输入值是所需的横滚角,升降ELEV通道的输入值是所需的俯仰角。

Keep Course航向保持模式
模块以保持机头初始航向的方式改变副翼AILE和升降ELEV通道的输入值(机头初始航向是在解除保险时设置的)。该模式类似于ArduPilot系统的简单模式Simple Mode。

Around Home环绕起飞点飞行模式
模块按环绕起飞点飞行的方式改变副翼AILE和升降ELEV通道的输入值(起飞点是在解除保险时设置的)。副翼AILE摇杆控制飞机以顺时针或逆时针方向围绕起飞点飞行。升降ELEV摇杆控制飞机距离起飞点的远近。该模式类似于ArduPilot系统的超级简单模式Super Simple Mode。
注意:飞机距离起飞点大于10米时,环绕起飞点飞行模式才有效。当距离小于10米时,航行模式自动切换至正常模式。

可将直升机/多旋翼航行模式参数Copter Course Mode添加到遥测数据包中,航行模式参数代码:1–正常模式、2–航向保持、3–环绕起飞点飞行。

Arming上电保险功能描述

基于安全考虑,模块在上电开机后将所有通道输出设置为0,直至油门输入值低于设定的最小油门值,并且ARM的输入值> 0.5才能解除保险。

重要提示:如果ARM输入未连接,则内部ARM信号始终为1,即处于解除保险状态。所以可以不连接,但建议使用ARM输入。

上电后解除保险操作步骤:
  • 将油门杆移至下部位置(确保油门输入的最小值低于设定的最小油门值)
  • 将ARM输入设置为1(或大于0.5的值)
重要提示:CCA4X有未校准保护功能,系统完成校准后才能解除保险。

重要提示:模块具有电池电量不足保护。 如果电池电压低于设定的电池电压最小值,则直升机/多旋翼不会解除保险。

飞行控制模式设置(飞行控制模式自定义排序)
飞行控制模式F-Mode有5种,可以根据需要设置飞行模式和航行模式的组合。
注意:如果RC遥控器上只有3位开关,请使用1、3、5模式。

如果激活的飞行模式设置为未定义,则不会改变当前的飞行模式。例如(参见下图):如果模块在模式1姿态稳定中工作,然后切换到模式2未定义时,模块仍继续在模式1下工作。



如果激活的航行模式设置为未定义,则可能有两种情况。如果连接了C-Mode模式输入,则将根据此输入值设置航行模式的值;如果未连接C-Mode模式输入,则不会改变当前的航行模式。


Altitude Limits 高度限制

高度限制设置在CCA4X设备配置表中,见下图:




直升机/多旋翼控制器模块,将直升机/多旋翼的飞行高度限制为低于设置的最大高度,它适用于高度保持控制模式Altitude Hold Mode。 在姿态稳定模式下StabilizationMode,手动控制油门该功能不起作用。
最低飞行高度用于着陆高度控制(参见下述紧急返回和着陆描述)。

Emergency Return and Landing 紧急返回和着陆

紧急返回和着陆功能仅适用于自动飞行模式Auto Control Mode。
如果电池电压最小值Battery Min参数不为0,模块则监视输入的电池电压。 如果电池电压降至电池电压最小值以下,返回起飞点模式将自动激活。
当电池电压低于电池电压最低值Battery Low参数时,直升机/多旋翼开始下降。 下降速率Climb等于最大下降速度Max Dn Velocity,直至设置的最低飞行高度值Minimum Altitude。当直升机/多旋翼高度低于最小高度Minimum Altitude时,下降速度降至着陆速度Landing Climb值。


设置参数:鼠标右键点击模块打开参数设置对话框




参数设置对话框描述

参数设置:

高度控制器:

位置控制器:

飞行模式设置:

数据记录标识:

勾选的控制器参数将自动添加到遥测数据包中,以便于控制器参数的调整。

记录参数内容:
Position X (Y) Controller:
Position X (Y) error
Position X (Y) ControllerProportional Part Value
Position X (Y) Controller Output
Velocity X (Y) Controller:
Velocity X (Y)error
Velocity X (Y) ControllerProportional Part Value
Velocity X (Y) Controller Integral Part Value
Altitude Controller:
Altitude Error
Altitude ControllerProportional Part Value
Altitude Controller Output
Velocity Z Controller:
Velocity Z Error
Velocity Z Controller Proportional Part Value
Acceleration Z Controller:
Acceleration ZError
Acceleration ZController Proportional Part Value
Acceleration Z Controller Integral Part Value
Throttle:

Holding Throttle

其它参数设置:



模块属性设置等同参数设置:



直升机/多旋翼位置控制器模块设置使用重要注意事项:

1.   油门输出设置值=油门杆参数值减1,例如:
油门杆在最大位置,油门杆参数显示1.96,则最大油门值设置为1.96 -1=0.96
油门杆在悬停位置,油门杆参数显示1.63,则悬停油门值设置为1.63 -1=0.63
注意:最小油门设置值必须大于油门杆的实际最小值(建议大于0.1)!!!

2.   舵机(电调)的参数设置
由于模块的油门输出值范围是:0~1,所以与油门输出相关的舵机(电调)的中立位置Offset必须设置为:1.0,舵机(电调)的下限设置为:1.05

3.   地面模式时,RUDD方向舵控制信号不能控制飞机转向!!!
模块正常工作后(油门杆低于油门最小设置值),当油门输出值大于悬停值时,模块将切换到空中模式;当油门输出值小于最小油门设置值时,切换回地面模式。如果起飞后飞机慢慢转动且航向通道不能控制,模块可能没有切换到空中模式。

4.   如果不使用电池电压控制功能,必须将电池电压最小值Battery Min和电池电压最低值Battery Low设置为0 !

5.   直升机/多旋翼位置控制器模块使用了与飞行导航模块Flight Navigation和飞行高度模块Flight Altitude相同的功能。这些模块不能与直升机/多旋翼位置控制器模块一起使用,否则控制程序将无法正常运行!

6.   使用直升机/多旋翼位置控制器模块时,必须在CCA4X设备配置表中勾选下列选项:





二、直升机/多旋翼姿态控制器模块Attitude Controller




输入:
Roll目标横滚角(度)
Pitch目标俯仰角(度)
Yaw目标航向角(机头指向:度)
Ground接地信号输入。输入=1飞机在地面,输入=0飞机在空中。输入不能空置,否则所有控制器的偏差积分将生效,这样会导致飞机在地面无法起飞!

输出:
AILE副翼通道信号(毫秒)
ELEV俯仰通道信号(毫秒)
RUDD方向通道信号(毫秒)
设置参数:鼠标右键点击模块打开参数设置对话框




模块参数设置对话框描述

横滚控制器:

俯仰控制器:

航向控制器:

横滚和俯仰角加速度最大限制值:

数据记录和警告标识:

勾选的控制器参数将添加到遥测数据包中,以便于控制器参数的调整。
记录的参数:

角度控制器Roll (Pitch, Yaw) Controller:
角度偏差Roll (Pitch, Yaw) Error
角度控制器比例增益值Roll (Pitch, Yaw) ControllerProportional Value

角速率控制器Roll (Pitch, Yaw) Rate Controller
角速率偏差Roll (Pitch, Yaw) RateError
角速率控制器比例增益值Roll (Pitch, Yaw) RateController Proportional Value
角速率控制器微分增益值Roll (Pitch, Yaw) RateController Derivative Value
角速率控制器积分增益值Roll (Pitch, Yaw) Rate Controller IntegralValue

警告Warnings
警告标识Warnings flags
警告
警告参数用于检测潜在的紧急情况,警告参数中的每一位代表一个标识:
0位-副翼AILE输出饱和
1位-俯仰ELEV输出饱和
2位- 方向RUDD输出饱和

模块属性设置等同参数设置:


三、PPM 输入模块 PPM Input



设置参数:
Number信号通道编号(1~18)
Coefficient信号增益系数(默认值1.0)
Offset信号中立位置(默认值-1.5毫秒)

模块输入值的范围取决于遥控发射机的通道末点(END POINT)设置,例如:
  
遥控发射机通道末点设置
  
模块的输入值范围(毫秒)
-100~100
1.1~1.9 ms
-120~120
1.0~2.0 ms
模块输出值的范围取决于模块的增益系数和中立位置设置,例如(以输入值范围1.0~2.0ms为例):
  
增益系数
  
中立位置
模块的输出值范围
1
-1.5
-0.5~0.5
1
-1.0
0~0.5
2
-1.5
-1.0~1.0
2
-1.0
0~1.0


四、PWM 输出模块 PWM Output






设置参数:
Number舵机通道编号(1~6)
Upper bound舵机上限行程(默认值2.0毫秒)
Lower bound舵机下限行程(默认值1.0毫秒)
Gain舵机信号增益系数(默认值1.0,正负号改变运行方向)
Offset舵机中立位置(默认值1.5毫秒)
模块输出值范围取决于输入值范围和模块的相关设置,例如:
  
输入值范围
  
中立位置
输出值范围
-0.5~0.5
1.5
1.0~2.0 ms
-0.5~0.5
1.0
1.0~1.5 ms
0~1.0
1.5
1.5~2.0 ms
0~1.0
1.0
1.0~2.0 ms



五、混控模块 Mixer




该模块用于多旋翼电机的通道混控。

输入:
Aileron副翼通道控制信号
Elevator俯仰通道控制信号
Rudder方向通道控制信号
Thrust油门通道控制信号
Enable使能信号

输出:
M1右前电机
M2左前电机
M3左后电机
M4右后电机

设置:
混合类型:当前仅适用于X布局四旋翼
禁用值:停止电机工作的信号值



10
发表于 2018-12-20 20:26 | 只看该作者
这个不错。看起爽心悦目


分享个图


9
发表于 2018-12-18 18:07 | 只看该作者
{:1_45:}
8
发表于 2018-12-18 13:37 | 只看该作者
7
发表于 2018-12-18 09:19 | 只看该作者
6
发表于 2018-12-18 08:09 | 只看该作者
                                    
5
发表于 2018-12-17 16:45 | 只看该作者
我公司买了一个,搭建逻辑开发确实快,就是太贵了。可以买一百个pixhawk。
4
发表于 2018-12-17 14:18 | 只看该作者
进来学习
来自安卓客户端来自安卓客户端
3
发表于 2018-12-17 13:43 | 只看该作者
沙发
发表于 2018-12-17 11:16 | 只看该作者
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表