APM电机输出逻辑之二
admin
2024-03-06 02:32:47

APM 飞控代码用c++编写,代码中用了很多多态的特性。

电机输出相关的函数在void Copter::motors_output()函数中。由于在Copter类中包含了AP_MotorsMulticopter类的实例化对象指针motors,因此在motor_output()函数直接使用motors->output()。通过motors对象指针,访问void AP_MotorsMulticopter::output()类。其中AP_MotorsMulticopter是编译的时候根据传入的参数决定的。./waf copter则编译AP_MotorsMulticopter类;./waf heli 则编译AP_MotorsHeli类。

在void AP_MotorsMulticopter::output()函数中调用父类的void AP_MotorsMatrix::output_armed_stabilizing()函数,将控制器计算的_roll_in,_pitch_in,_yaw_in数值(-1~+1)根据机架类型转化成每个电机获得的增量百分比数值,void AP_MotorsMatrix::output_to_motors()将每个电机获得增量的百分比数转化成PWM数值,通过SRV_Channels和SRV_Channel类输出给电调。

具体转化过程:

               1.将_roll_in,_pitch_in,_yaw_in乘以互补增益compensation_gain得到三个通道的推力数值(roll_thrust,pitch_thrust,yaw_thrust)。其中compensation_gain是通过电池电压和当前气压计算得出。

               2.优先分配俯仰横滚的推力,因为这两个通道直接影响飞机是否炸机。将两个通道的推力数值(roll_thrust,pitch_thrust)乘以电机系数即可。其中横滚电机系数(_roll_factor)是电机所在机臂方向与机体坐标系x轴正向的夹角加90度后的余弦值。从这个定义可以看出飞机向左边倾斜(横滚)为负、向右边倾斜(横滚)为正。俯仰电机系数(_pitch_factor)是电机所在机臂方向与机体坐标系x轴正向的夹角的余弦值(没加90度)。从这个定义可以看出飞机抬头(俯仰)为正、低头(俯仰)为负。航向电机系数则是+-1。+1表示逆时针旋转的电机,-1表示顺时针旋转的电机。飞机受电机反力矩作用朝相反方向旋转。由此可以飞机顺时针旋转为正向,逆时针旋转为逆向。

                核心公式:

                _thrust_rpyt_out[i] = roll_thrust * _roll_factor[i] + pitch_thrust * _pitch_factor[i];

                3.计算留给偏航剩余的推力。

                4.分配偏航推力。将第二步计算的结果加上yaw_thrust与偏航电机系数_yaw_factor的乘积。

                核心公式:

                _thrust_rpyt_out[i] = _thrust_rpyt_out[i] + yaw_thrust * _yaw_factor[i];

                5.添加刹车因素。_thrust_rpyt_out[i] ->actuator[i]。

                6.每个通道获得的pwm数值等于油门最小值加上油门最大值与最小值的差与各电机增量百分比的积。

                核心公式:

pwm_output[i] = pwm_output_min() + (pwm_output_max() - pwm_output_min()) * actuator[i];

其中1~4在output_armed_stabilizing()函数中完成,5~6在output_to_motors()函数中完成

                

                

相关内容

热门资讯

摸鱼、钓虾、吃瓜、赏荷…初夏时... 这个周末,一场场充满野趣的“田园嘉年华”在沪郊金山多个农场上演,吸引众多市民带着孩子下乡来,赛跑、吃...
原创 戚... 5月28日,北京环球影城迎来了一对温暖的家庭画面:戚薇和李承铉携三岁半的儿子Seven现身游玩。现场...
滹沱河畔 遇见“诗和远方” 图为市民在滹沱河畔休闲娱乐。 初夏五月,惠风和畅。徜徉在石家庄滹沱河生态区(城区段),澄澈河水蜿蜒...
在迪士尼排队两小时,我才看清V... 文丨沈理 在网上看到一则新闻: 上海迪士尼,创极速光轮排队区。一个父亲牵着七八岁的儿子,已经在烈日...
重庆文旅喊你去吃火锅、观山水、... 本网讯(草原云·正北方网记者 马丽侠)火锅、机车、文创、演艺……5月28日下午,重庆市文化和旅游发展...