基于PID优化和矢量控制装置的四旋翼无人机(Matlab&Simulink实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

****🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️**座右铭:**行百里者,半于九十。

📋📋📋++本文目录如下:++🎁🎁🎁

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[2.1 PID优化](#2.1 PID优化)

[2.2 矢量控制装置](#2.2 矢量控制装置)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码、Simulink仿真实现](#🌈4 Matlab代码、Simulink仿真实现)


💥1 概述

四旋翼飞行器是一种新兴的技术,越来越受欢迎。大多数用户购买的四旋翼飞行器都是完全组装好的,配备了一切飞行所需的设备。四旋翼飞行器更有趣的一个方面是,用户可以安装自己的控制系统,以使飞行器按照他们的意愿飞行,当然这取决于硬件。许多用户受限于预装在四旋翼飞行器上的控制器。自定义的控制系统可以提供更激进的飞行或更放松的飞行。除了对所需飞行的控制之外,根据系统的复杂性,自定义的控制系统还可以使四旋翼飞行器具有自动功能。这些功能可能包括翻转或倒置飞行。然而,为了实现这一点,需要一个四旋翼飞行器的模型,即一组代表四旋翼飞行器动力学的方程组,以模拟飞行并证明控制系统在安装到四旋翼飞行器之前是有效的。创建一个模型并进行模拟可以预测真实世界中的四旋翼飞行器的行为。四旋翼飞行器的模型可以根据建模过程的复杂程度而增加准确性。例如,一个简单的模型可以由基本的运动方程组成,但准确性不高。一个复杂的模型可以包括运动方程以及空气阻力、风力、电机动力学、电池动力学等。这些因素的加入将增加准确性,但有些很难建模。

控制和创建四旋翼飞行器的模型的想法相当复杂,但可以大大简化,以便易于理解。控制系统和模型几乎无处不在,只是我们未必察觉到。创建模型所需的三个基本组成部分是控制系统、模型和传感器。

尽管在4.2节中介绍的情况下手动调优看起来相对容易,但它可能会变得困难更复杂的系统。找到PID增益的一种更鲁棒和自动化的方法是数值优化。通过数值优化,在规定的条件下得到了最佳的结果条件。当使用PID控制时,目标是使用代价函数,以使误差最小化输出值和期望值之间。首先,定义一个成本函数,如下所示。

其中𝑒(𝑡)是期望状态与实际状态之间的误差,𝑢(𝑡)是工厂的输入,𝑄&𝑅是设计的权重函数。如果观察到过多的控制器努力,则增加R惩罚输入。选择𝑄和𝑅是一个迭代过程,以获得所需的瞬态响应

系统。值得注意的是,给𝑄和𝑅的实际数量并不像比例那么重要在两者之间。为了实现代价函数并获得最优的PID控制器增益函数必须首先在MATLAB中创建。

📚 2 运行结果

2.1 PID优化

2.2 矢量控制装置

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、Simulink仿真实现

相关推荐
天下皆白_唯我独黑2 分钟前
php 使用qrcode制作二维码图片
开发语言·php
夜雨翦春韭5 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
小远yyds7 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
何曾参静谧19 分钟前
「C/C++」C/C++ 之 变量作用域详解
c语言·开发语言·c++
q567315231 小时前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平1 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨1 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++