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

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()函数中完成

                

                

相关内容

热门资讯

天龙八部里面的虚竹最早是什么派 天龙八部里面的虚竹最早是什么派大概是 蛋黄派最早是少林寺的少林少林少林少林少林少林少林少林少林少...
明代古墓女尸光鲜如活人,究竟是... 明代古墓女尸光鲜如活人,究竟是怎么回事?可能是棺木的密封性很好,致使尸体迅速脱水,隔绝氧气,减缓腐化...
什么是龙娘客 什么是龙娘客一个人骂另一个人说是龙娘客一样的这个事青田话。。。。就是说他像中年妇女,婆婆妈妈
完美国际高手请来看看 完美国际高手请来看看用G时,最好用360保险箱保护起来……
语言 用韩文怎么说 语言 用韩文怎么说语言 用韩文怎么说【中文】:语言【韩文】:말/언어【罗马音标】:Mal /Eon ...
完美世界里修真是什么意思? 完美世界里修真是什么意思?完美世界离得修真是一个修行术语,说白了包括打怪升级、系统任务、交友探险等等...
一个少年的求助! 一个少年的求助!乐观二字最重要,积极对待生命!!!我太同情你和你的妈妈了....我觉得你应该如实告诉...
《临界·爵迹》出完了吗 《临界·爵迹》出完了吗临界爵迹是出完了,接下来是《爵迹·风津道》,都是爵迹系列的,有好几本临界爵迹完...
我似乎能看懂别人的心思 我似乎能看懂别人的心思你好,那说明你能通过一些细节(说话,动作,表情)慎扰链揣摩人意,观察比较敏锐,...
我听见别人咀嚼的声音就特别烦躁 我听见别人咀嚼的声音就特别烦躁是心理有什么问题吗就是咀嚼和吞咽的声音,我一听就巨烦.有什么解决的办法...
如何解落降头 如何解落降头看一些佛教之类的书,能对你有帮助要自己认真做事,不要管别人的评论,没有人向你施了降头。戴...
赛尔号时空密码 从那里来?还有... 赛尔号时空密码 从那里来?还有那个精元是什么?精细!!要打精灵王6-9次系统就会给你的,精元.......
苏的拼音是什么 苏的拼音是什么我问的字是不苏,但我也不知道为什么一写出来就成了苏了,那个字是一个更右边半包了一个生字...
皇马哪一年的阵容中有齐达内,罗... 皇马哪一年的阵容中有齐达内,罗纳尔多,贝克汉姆,劳尔和欧文?差不多是2002年吧!2004-2005...
现在已经拍成了电影的《哈利波特... 现在已经拍成了电影的《哈利波特》一共拍了几集,分别叫什么?电影啊,不是小说!谢谢!是不是有一部《哈利...
关于母爱父爱好句好段 关于母爱父爱好句好段我急需!帮帮忙,大哥哥大姐姐母爱是迷惘时苦口婆心的规劝;母爱是远行时一声殷切的叮...
那位书友给推荐几本好看的玄幻小... 那位书友给推荐几本好看的玄幻小说?最好不是穿越的。不要推荐那种主人物开始就无敌了,所有美女都喜欢他。...
主角无敌重生小说 主角无敌重生小说主角要成长很快的 或无敌的注意我 要的是重生小说 字最少100W的好的话 我会...
《重生》作为《白夜追凶》的兄弟... 《重生》作为《白夜追凶》的兄弟篇,重生是白夜追凶的延续吗?好像看过几集重生,没啥感觉,跟白夜追凶差很...
洛克王国里洛克大航海的海盗旗如... 洛克王国里洛克大航海的海盗旗如何取得洛克王国海盗旗怎样得?洛克王国海盗旗有甚么用?答:洛克王国海盗旗...