收藏 分享(赏)

基于嵌入式系统的四旋翼飞行控制器设计.doc

上传人:无敌 文档编号:173604 上传时间:2018-03-23 格式:DOC 页数:7 大小:101.50KB
下载 相关 举报
基于嵌入式系统的四旋翼飞行控制器设计.doc_第1页
第1页 / 共7页
基于嵌入式系统的四旋翼飞行控制器设计.doc_第2页
第2页 / 共7页
基于嵌入式系统的四旋翼飞行控制器设计.doc_第3页
第3页 / 共7页
基于嵌入式系统的四旋翼飞行控制器设计.doc_第4页
第4页 / 共7页
基于嵌入式系统的四旋翼飞行控制器设计.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、基于嵌入式系统的四旋翼飞行控制器设计 En Un Chye A V Levenets 太平洋国立大学自动化与系统工程系 摘 要: 四旋翼飞行器以其灵活的自由度得到了广泛的应用, 已经由实验室走入到实际生产生活中。由于其软件任务的复杂程度高, 使以往单一顺序软件架构难以合理和有效地管理飞行器多任务的大型应用程序需求。开发者利用嵌入式操作系统平台可以轻松地完成飞行器任务调度、信息交互、内存管理的任务。本文以u C/OS-为平台进行了四旋翼飞行控制器的开发。关键词: 四旋翼; 嵌入式; 操作系统; uC/OS-; 作者简介:En Un Chye (1954-) , 男, 俄罗斯人, 教授, 博士,

2、主要从事信息测量与控制系统方面研究。收稿日期:2017-08-06Design of the Quadrotor Aircraft Based on Embedded SystemEn Un Chye A V Levenets Department of Automation and System Engineering, Pacific National University; Abstract: Quadrotor aircraft has been widely used due to its flexible degrees of freedom, which has graduall

3、y entered into actual production and life from laboratory. The high complexity of its software task makes the original single sequential software architecture difficult to manage the multi-tasked large-scale application reasonably and effectively. Developers who use these embedded operating systems

4、can easily complete task scheduling, information interaction and memory management. This paper develops the quadrotor aircraft based on uC/OS-.Keyword: quadrotor; embedded; operating system; uC/OS-; Received: 2017-08-060 引言u C/OS-是由 Micro开发的一个可升级、可固化的嵌入式实时性内核, 该内核在 II的基础上又升级了一步, 它对任务的个数支持无限。并且它是一个基于

5、优先级的、具有可剥夺性的实时性内核, 在最大程度上保证了系统任务的实时性。这个小巧的系统支持现代实时内核所期望的大部分功能, 例如资源管理、同步、任务通信等。将四旋翼的控制系统搭载上 u C/OS-, 为软件平台的设计和扩展提供了极大的便利。为后续的任务扩展创造了基础框架, 开发人员可以像开发 Windows程序一样专注于 API的实现, 而不用设计底层的编写。1 总体设计方案本设计主要包括硬件和软件两部分。其中, 硬件设计中包含机械结构的设计。四旋翼的结构主要分为两种, 通常根据姿态传感器放置位置分为 X型和十字型。X型的 X轴和 Y轴与陀螺仪的 X轴和 Y轴构成 45度夹角, 而十字形的

6、X轴 Y轴与陀螺仪的 X轴 Y轴重合。X 型结构的飞行器自由度多, 控制难;十字形则自由度相对较少, 但控制简单。如图 1所示为本次设计中采用的机械结构。硬件电路的搭建主要采用了以 STM32F103单片机为核心结合惯性测量传感器和其他辅助传感器作为此次设计的硬件平台。硬件平台主要负责信息的采集和为四旋翼的控制系统包括 u C/OS-提供一个运行的平台。如图 2所示为硬件的方案设计。图 1 机械结构实物图 下载原图图 2 整体系统框架 下载原图在此硬件平台的基础上, 结合搭建底层操作系统, 将飞行器的控制算法和扩展应用加入其中, 即完成了本次的软件结构的设计。2 四旋翼控制器的设计2.1 四旋

7、翼建模为了简化模型的建立和计算的难度, 在建立模型前提出如下假设:(1) 模型的中心与重心重合, 模型的质量是均匀分布的, 且结构是对对称的;(2) 由于角度之间的变换具有非常强的耦合性, 会引入很多未知的参数, 因此, 假设模型处于悬停状态, 且角度的变化非常小, 彼此没有耦合;(3) 模型的被控量目前只能控制飞行器的高度和欧拉角, 因此不考虑模型的水平方向位移;(4) 两个坐标系, 静止的以东北方向为参考的静止坐标系和固定于刚体的坐标系;(5) 飞行器的升力与转速的平方成正比。基于以上假设, 设模型的质量为 m (Kg) , 重力加速度为 g (N.m2) , 高度为H (m) , 螺旋桨

8、转速为 =1, 2, 3, 4。图 3为当前飞行器姿态, a, b, c 为刚体坐标系, X, Y, Z 为大地参考系, , 为当前的横滚角和俯仰角。假设此时某一桨叶位置如图 4所示。图 3 当前姿态图 下载原图图 4 桨叶位置图 下载原图螺旋桨产生的力的方向为刚体坐标系 a轴负方向, 假设此时产生的力为 F1, 则F1在以大地为参考系的 Z轴方向的分力为:Fz=F1*cos*cos (1) 同理可得, 其他螺旋桨在 Z轴方向的分力, 计算 Z轴方向的分力之和即为飞行器的升力。各个螺旋桨产生的力与螺旋桨的转速的平方成正比, 则可得 Z轴的分力之和即升力 U为:K1为常数。设飞行器在横滚方向、俯

9、仰方向和偏航方向所受的力矩为 U2, U3, U4, 则:其中, w2, w4 为左右桨, w1, w3 为前后桨, K2 为常数。2.2 模型仿真结合上述控制算法和数学模型, 使用 Matlab进行验证仿真。本次仿真采用 m文件形式对各个模块进行源代码编写。2.2.1 PID控制器以下为 PID控制器的 m文件, 输入参数为目标高度, 实际高度, PID 参数等。PID控制器采用上述提到的微分先行的控制方式。2.2.2 直流电机模型直流电机模型采用通用的模型, 模型参数由电机资料获取。普通直流电机的模型如式 (6) , 为角速度, v 为输入电压, 其他为常数。2.2.3 高度闭环根据上述几

10、个模型, 即可做出高度的闭环模型, 如下 m文件源代码, 图 5为闭环响应曲线。图 5 高度闭环响应曲线 下载原图2.2.4 欧拉角模型如下为欧拉角模型 m文件, 输入为转速, 输出为角加速度。通过将输出的角速度积分后得到当前的角度。加入 PID控制器后得到闭环的姿态响应, 如图 6所示。图 6 欧拉角闭环响应 下载原图如图为给定 Yaw=0.15, Pitch=0.1, Roll=0.06时的闭环响应曲线。响应的稳定性和快速性都能满足要求。3 使用 u C/OS-进行多任务管理u C/OS是一个可剥夺性的多任务管理内核。可剥夺性代表高优先级的任务可以抢占或优先使用 CPU, 这极大保证了高优

11、先级任务的实时性。多任务管理代表的是在多个任务间调度和切换 CPU的使用权的方法, 合理的分配 CPU的使用权, 利用 uc/OS用户可以轻松地管理这些应用程序。每一个任务都是一个独立的 C函数, 在任务中不允许返回。任务通常有两种存在形式:一是运行至完成型, 这种形式的任务在程序运行结束时通过调用OSTask Del () 函数来将自己删除以结束自己的生命周期, 操作系统不会再调用此函数;二是无限循环型, 这种形式的任务以无限循环的形式存在, 所以它的生命周期将从始至终一直存在, 并且受操作系统的调配。另外, 每一个无限循环的任务 (系统创建的空闲任务例外) 都必须有一个激励信号, 该激励信

12、号可以使得该任务就绪, 也就是任务需要等待一个激励信号到来后才开始执行。这个激励信号可以是一个延时或外部输入等信号。因为如果一个任务没有这种激励源, 那将会导致其成为一个真正的无限循环, 一直处于就绪状态, 会导致比它优先级低的任务无法执行。图 7 任务状态框图 下载原图图 7为典型的任务状态图。任务在系统中以不同状态存在, 由工程人员编写好后, 当休眠状态的任务通过调用 OSTask Create () 函数时, 任务就可以接受系统的管理。当任务的激励信号到来后, 任务准备运行即进入就绪状态, 等待系统分配 CPU。用户也可以通过调用 OSTask Del () 将任务从系统中删除, 则该任

13、务将不再受系统的调配, 但物理内存仍然存在。当一系列的任务就绪后, 操作系统会根据任务的优先级来决定哪一个获得 CPU的使用权, 获得 CPU使用权的任务即进入运行状态。该任务在运行过程中, 如果有更高优先级的任务就绪, 则会转而执行高优先级的任务。这就是内核的可剥夺性, 即使运行中的任务也要无条件交出 CPU的使用权, 将自己挂起, 当高优先级的任务执行完后才能继续执行。这其实非常类似 CPU的中断过程, 所以也可以称其为软中断。而一个真正的中断到来之后, 系统会自动将当前任务挂起, 去执行中断服务程序。执行中断服务函数的过程中可能会接受的中断, 当所有中断服务函数执行完后, 系统会继续执行

14、之前被中断的任务, 或者可以进行新一轮的任务调度。任务执行结束后, 需要等待下个激励信号的到来, 任务转而进入等待状态。处于等待状态的任务一旦收到激励信号就会进入就绪状态, 等待系统调遣。这些状态的转移就构成了系统的任务管理的过程。图 8 程序流程图 下载原图4 软件设计软件算法的实现主要基于意法半导体的 STM32F103, STM32是基于 Cortex M3内核的高性能低成本低功耗的嵌入式微控制器, STM32F103 的主频可达 72MHZ, 片上具有丰富的外设, 有多达 256K的 Flash和 64K的 SRAM, 本次设计主要以STM32为硬件平台, 进行操作系统的搭建移植和算法

15、的实现。程序流程图如图8所示。如表 1所示为具体的任务函数。表 1 系统任务分配表 下载原表 5 结语本系统设计比较复杂, 由于篇幅所限不能将所有内容叙述详尽, 尤其是算法实现部分。u C/OS 是一个可剥夺性基于优先级的内核, 其任务调度就是系统调用应用函数的过程。虽然本文基本达成了设计目标, 但也有很多可以进行优化和改进的地方。参考文献1Jistsukawa N, Ogawa T, Kanada H, et al.Time-frequency analysis of impact sound of composite materialsJ.Sice Sice Conference, 200

16、3, 37 (8) :1076-1079. 2D Salomon.Data compressionM.New York:Springer, 2004. 3I V Bogachev, A V Levenets.Telemetry data compression algorithmsC.Theory and practice of a modern science:materials of XVIII International scientifically-practical conference, Moscow, Russia, Institut strategicheskikh issle

17、dovanijj:2015:53-60. 4D Vatolin, A Ratushnjak, M Smirnov, et al.Data compression methods.Structure of the archivers, image and video compressionM.Moscow:Dialog-Mifi, 2003. 5T Takaoka.Efficient algorithms for the maximum subarray problem by distance matrix multiplicationJ.Electronic Notes in Theoretical Computer Science, 2002 (61) :191-200.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报