热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【UAV】高度控制代码分析

文章目录代码分析MotorControl()控制流程图代码分析MotorControl()casePROCESS_31:{int16_tthr_temp;这里的定高标志在Mo


文章目录

  • 代码分析
    • MotorControl()
  • 控制流程图


代码分析


MotorControl()

case PROCESS_31:
{int16_t thr_temp;// 这里的定高标志在 Mode_Controller 中通过对按键的判定进行更改// height_lock 为 1 时标志进入定高飞行模型if(ALL_flag.height_lock) // 定高模式下 油门遥杆作为调整高度使用 {thr_temp &#61; pidHeightRate.out &#43; (Remote.thr -1000); // 输出给电机的是定高输出值}// 这里&#xff0c;定高比不定高多增加了一个高度内环速度的输出 pidHeightRate.outelse // 正常飞行状态&#xff0c;油门正常使用{thr_temp &#61; Remote.thr - 1000; // 输出给电机的是油门输出值}if(Remote.thr<1020) // 油门太低了&#xff0c;则限制输出 不然飞机乱转 {MOTOR1 &#61; MOTOR2 &#61; MOTOR3 &#61; MOTOR4 &#61; 0;break;}// thr_temp 用来给出电机的基础转速// 之后再增加上外环 pidRateX.out 等来控制姿态MOTOR1 &#61; MOTOR2 &#61; MOTOR3 &#61; MOTOR4 &#61; LIMIT(thr_temp,0,900); // 留100给姿态控制MOTOR1 &#43;&#61; &#43; pidRateX.out - pidRateY.out - pidRateZ.out; // 姿态输出分配给各个电机的控制量MOTOR2 &#43;&#61; &#43; pidRateX.out &#43; pidRateY.out &#43; pidRateZ.out; //MOTOR3 &#43;&#61; - pidRateX.out &#43; pidRateY.out - pidRateZ.out; //MOTOR4 &#43;&#61; - pidRateX.out - pidRateY.out &#43; pidRateZ.out; //
}
break;

控制流程图

在这里插入图片描述


推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了Java库中com.vividsolutions.jts.io.WKTWriter类的appendGeometryCollectionText()方法,并提供了实际代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在进行Revit插件开发时,经常会遇到窗口被其他应用程序遮挡的问题。本文将介绍如何通过简单的代码调整,确保插件窗口始终保持在Revit主界面的最前端,提升用户体验。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
author-avatar
敬昇文军3546
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有