基于PID控制原理的单翼机横滚动作模型的搭建与MATLAB仿真

2023-10-08 19:40

本文主要是介绍基于PID控制原理的单翼机横滚动作模型的搭建与MATLAB仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言写这个的主要目的是向我的学弟学妹们举个栗子展示一下如何从纯物理公式到最终的MATLAB建模的。额,实际上这整个单翼机的三个动作模型GITHUB找一找还是有的吧,我的也不是抄的,就是自己写自己画,毕竟这也是我论文的一部分,关于PID我也没发太多东西,上次我的亲学弟直接拿我的报告交教授了,然后,我就教授批评了。好吧,以后我只讲怎么做的,加上简单案例,这样懂的人也会举一反三,能为大家做点什么我也很开心,都是从新人苦逼过来的何必互相喷呢,也没啥。

摘要:基于飞机动力学原理,本文建立了单翼飞机的滚动模型。 通过飞机副翼的不同转弯力矩,改变倾斜角度以达到控制飞机执行横向滚动动作的目的。 建立了侧倾姿态控制的数学模型,采用PID控制方法设计了相应的姿态控制器。 最后,通过MATLAB软件平台的Simulink模块验证了PID控制方法的可行性和有效性。 结果表明,侧倾姿态控制器可以满足要求。

滚动原理:单翼飞机,飞行有三种姿态:俯仰,偏航,翻滚。俯仰就是飞机的尾翼的升降舵控制飞机的俯仰角,从而让飞机低头或者抬头。(比如自动驾驶系统就是控制俯仰角和水平仪完成的,实际上比我说的还复杂,就是举个例子,大神勿喷)偏航就是通过调整飞机尾翼的方向舵控制飞机的偏航角。翻滚就是通过控制飞机两侧机翼的副翼来改变升力对机翼的影响从而使飞机横向翻滚。额,如果我讲的,你脑海中没有画面,不是很懂,你可以搜查一下我标记红色的三个关键词,进一步理解一下。

在本文中只对飞机的翻滚动作建模,为了简化模型,不考虑其他两个动作,也不考虑一些常见的干扰量(空气阻力,不同地心引力,转动惯量,非刚体等)

建立三角坐标系,使飞机头部向正方向,飞机头部方向为X轴,垂直于X轴的方向为Y轴。 垂直于XY平面的是Z轴。 X,Y和Z轴分别代表飞机的俯仰角,侧倾和偏航运动控制。 下图显示了飞机的空间轴模型。

本文建立了一种简单的飞行姿态控制器模型,仅用于控制倾斜角度。 通过改变副翼的姿态,控制飞机以产生不同的角速度和速度。 飞机的滚动是通过飞机机翼左侧和右侧的副翼的摆动产生的,从而产生不同的扭矩,从而改变机翼上的气流压力,产生滚动扭矩以通过产生来控制飞机 左翼和右翼之间的压力差。 水平滚动。

飞行器的倾斜角指的是飞行器围绕身体坐标系的X轴(垂直轴)旋转的角度。在飞行力学中,飞行器的倾斜角度是飞行器围绕纵向轴线旋转的角度,而不是飞行器的水平轴线与地面之间的角度。例如,当飞机垂直上升时,其水平轴已经与地面平行。然而,只要按下转向柱并且存在滚动力矩,飞机将围绕纵向轴线旋转,并且飞机将倾斜,其倾斜角度将逐渐改变。当飞机向右倾斜时,其倾斜角度为正;否则为负。按照惯例,倾斜角(∅)的范围是:-π≤∅≤π。由现代飞机的地平线指示的倾斜角度是飞机围绕其纵向轴线旋转的角度。当飞机水平飞行或直线上升时,其角度为0。

当飞机的机翼具有对称的形状并且气流沿着机翼的对称轴线流动时,由于机翼的两个表面具有相同的形状,气流速度是相同的,并且产生的压力是相同的, 并且机翼不会产生升力。 然而,当对称机翼在空气中以一定的倾斜角度(倾斜角度)移动时,出现类似于不对称机翼的流动现象,使得上表面和下表面上的压力不一致,因此产生升力。
例如飞行员将方向盘向左压,左副翼向上偏转,右副翼向下偏转,飞机向左侧滚动; 否则,右副翼向上偏转,左副翼向下偏转,飞机向右侧倾斜。(这种现象挺好玩的,上次我坐飞机回家,特意观察了飞机起飞时候副翼偏转情况,要知道飞机起飞后,它拔高都是螺旋攀升的,所以就需要不断的朝着同一个方向旋转,实际上飞行员操作是,左转-加速直飞-左转-加速直飞-左转,这样,然后我在机腹那看到的就是副翼总是那么变化

建立模型

以下模型公式引用了这个文章(https://wenku.baidu.com/view/5f9cf40ecec789eb172ded630b1c59eef8c79a90.html)的内容,但是我MATLAB是自己写的,PID控制器也是自己的。

在构建运动方程时,考虑所有因素是非常复杂的。为了简化仿真模型,进行了以下假设:

1.飞机是刚性的,质量为恒定值。
2.假设地球静止,忽略地球的曲率。
3.重力加速度是恒定的,不随高度变化
4.飞机移动时重心不变,重心是坐标系的原点。
5.飞机的布局是平面对称的,惯性为0。
6.忽略机械部件之间的轻微阻力。
首先,如图1所示,建立坐标系。飞机运动的物理量如下:
选择地面上的一个点作为大地轴的中心。选择水平面上的方向为X,Y方向垂直于水平面上的X轴,Z轴垂直于X,Y水平面。
建立飞机机体坐标系,以飞机的重心为原点。 X轴直接位于飞机机身前方,Y方向位于飞机机身右侧,Z方向位于机身正下方。沿这三个方向(x,y,z)将飞行速度分为三个速度分量(u,v,w),并且飞行的角速度也可以分为三个角速度分量(p,q,r) )。 Z轴和穿过X轴的垂直平面之间的角度是倾斜角(∅)。

根据身体坐标系与地面坐标系之间的关系,得到姿态的角速度与身体坐标的角速度分量之间的运动关系:

主体前部与水平面之间的角度是仰角θ 。 F1是飞机的左副翼力矩拉力,F2是飞机的右副翼拉力,L是飞机的单独机翼长度,并且飞机沿X轴方向的整体机翼长度是2L。 从上面可以得到飞机副翼滚动力矩(τ)的表达式:

然后将合力F和扭矩引入牛顿公式,并且可以获得倾斜翼的机械模型。 使用倾斜角作为输出,水平和垂直通道在稳态点附近以小角度分解,以获得:

因此,根据上述两个方程,得到了飞行升力与飞行坡角之间的传递函数

PID姿态控制器:本文研究的模型相对简单,主要用于滚动姿态调整。 PID控制器具有简单的控制结构,并且在实际应用中相对容易设置。 下图显示了PID控制原理图。

基于传递函数公式的控制系统框图如下图所示。

稳态特性:输入,et在参考信号输出下,系统输出的误差和无限时间后的参考信号。 影响因素:系统结构,参数和形式c。

Simulink仿真:根据上图所示的控制系统结构,Simulink仿真模型建立在MATLAB软件上,如下所示:

图中的绿色框图是PID结构。 添加PID控制器后PID控制系统的结构如下图所示:

 假设副翼执行器的参数并输入传递函数:

 假设飞行动态系统的参数并输入传递函数:

 模拟参数可以如下图所示进行设置,通过改变P,I和D值,可以调整系统使系统更平滑,更接近稳定状态。

结果分析:根据上表,通过调整不同的PID值,获得不同的PID特性曲线。 稳定性:P和I降低系统稳定性D提高系统稳定性。 精度:P和I提高稳态精度,D无效。 坚牢度:P和D提高响应速度,降低响应速度。(对PID理解不深的可以去看下这篇文章,形象的举例说明了PID控制https://blog.csdn.net/jackiexzy/article/details/79699477)(PID原理概述请看这篇https://blog.csdn.net/gsww404/article/details/81366518)

最后,根据表格得出以下结论:
1.上升时间和峰值时间用于评估系统的响应速度;
2.过冲用于评估系统的阻尼程度;
3.在响应响应速度和阻尼水平时调整时间;
通过PID控制器对系统进行优化,调整PID值,调整响应时间和传输特性值,从而更加方便地调整系统稳态。 如下图所示,调整按钮位于图片上方,以调整系统的响应时间和系统传输的稳健性。

通过调整这两个值,可以平滑系统以实现系统稳定状态。 最后,PID控制器具有调节稳态的可行性。

比例P调整:当系统出现偏差时,比例调整会立即产生调整以减少偏差。 比例作用大,可以加快调整,缩短调整时间,降低稳态误差,使效果过分,从而降低系统的稳定性。
  积分I调节:消除稳态误差,降低系统稳定性,降低动态响应速度。
差分D调节:预测,可预测偏差趋势,具有先进的控制,增强系统动态性能,减少过冲,减少调整时间。

 

这篇关于基于PID控制原理的单翼机横滚动作模型的搭建与MATLAB仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/Smile_h_ahaha/article/details/98352237
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/167576

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间