热门标签 | 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 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 在本周的白板演练中,Apache Flink 的 PMC 成员及数据工匠首席技术官 Stephan Ewen 深入探讨了如何利用保存点功能进行流处理中的数据重新处理、错误修复、系统升级和 A/B 测试。本文将详细解释保存点的工作原理及其应用场景。 ... [详细]
  • 本文详细介绍了Java库中com.vividsolutions.jts.io.WKTWriter类的appendGeometryCollectionText()方法,并提供了实际代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在进行Revit插件开发时,经常会遇到窗口被其他应用程序遮挡的问题。本文将介绍如何通过简单的代码调整,确保插件窗口始终保持在Revit主界面的最前端,提升用户体验。 ... [详细]
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社区 版权所有