💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
使用四元数进行完整的四轴飞行器动力学模拟,包括螺旋桨空气动力学。核心运动学是使用"四元数"编写的。螺旋桨空气动力学/旋转动力学被精心建模。
四元数是表示空间姿态的著名方法,保留了直觉性和"完整性",即没有极点。四轴飞行器动力学主要受简单的刚体动力学控制,因此成为无人车辆的流行解决方案。
四轴飞行器的动力学模拟涉及多个方面,包括旋转动力学、空气动力学和控制系统等。在使用四元数进行动力学模拟时,你需要考虑以下几个步骤:
1. **四元数表示姿态**: 使用四元数来表示飞行器的姿态,进行旋转运动的描述更加简洁和准确。
2. **姿态更新**: 使用四元数更新方程来模拟飞行器的姿态变化,通常采用龙格库塔法等数值方法来进行数值积分。
3. **飞行器动力学模型**: 根据飞行器的几何形状、螺旋桨配置和空气动力学参数建立动力学模型,考虑飞行器的质量、惯性矩阵和作用力。
4. **螺旋桨推力计算**: 根据螺旋桨的叶片特性、马达参数和推进效率等计算螺旋桨的推力输出,以及产生的扭矩。
5. **空气动力学模拟**: 螺旋桨产生的推力和扭矩受到空气动力学的影响,需要考虑气动力和气动力矩的计算,并结合旋转运动的姿态变化。
6. **控制系统设计**: 根据动力学模型和姿态控制要求设计控制系统,实现飞行器的稳定飞行和姿态控制。
在实际进行四轴飞行器动力学模拟时,需要综合考虑多个因素,包括数学建模、物理仿真、控制算法设计等方面的知识。
使用四元数进行四轴飞行器(也称为四旋翼无人机)的动力学模拟是一个复杂的任务,它涉及到多个方面的物理知识,尤其是控制理论、机械工程和流体动力学。以下是进行这样一项模拟的基本步骤和考虑因素:
1. 四轴飞行器动力学模型
首先,需要建立四轴飞行器的数学模型,这通常基于牛顿-欧拉方程或拉格朗日力学。模型应该包括:
- 质心运动方程:描述四轴在空间中的线性运动,由推力和重力等外力决定。
- 旋转运动方程:利用四元数描述机体绕质心的旋转运动,考虑到螺旋桨产生的力矩。
2. 四元数介绍
四元数是一种表示三维空间中旋转的有效方法,相比欧拉角,它避免了万向锁的问题,并且旋转运算更符合直觉。在四轴飞行器模拟中,四元数常用于更新机体姿态,通过四元数乘法来合并连续的旋转。
3. 螺旋桨空气动力学
- 推进力和力矩计算:每个螺旋桨产生的推力与其转速的平方成正比(理想情况下遵循贝尔努利定律),同时产生反扭矩。实际应用中,需考虑螺旋桨效率、进气和出气流场的影响。
- 螺旋桨特性曲线:通过实验或CFD(计算流体动力学)获得螺旋桨的推力和扭矩系数与转速的关系曲线,这些数据是模拟的基础。
- 气动阻力:考虑机身和螺旋桨叶片的气动阻力,可能需要应用更高级的流体动力学模型如势流理论或雷诺平均Navier-Stokes方程(RANS)。
4. 控制算法
设计控制器来稳定四轴飞行器并实现所需的运动,通常涉及PID控制或更先进的自适应/非线性控制策略。控制器输入基于当前状态(如位置、速度、姿态)和目标状态,输出为各个电机的控制信号,调节电机转速以产生必要的推力和力矩。
5. 模拟实现
- 软件工具:可以使用Matlab/Simulink、Python(结合NumPy、SciPy和可能的专门库如PyDy)、或者专业的多体动力学软件如Adams进行模拟。
- 数值积分:为了求解动力学方程,需要采用数值积分方法(如欧拉法、龙格-库塔法)来逐步推进时间并更新系统状态。
6. 验证与校正
模拟结果需与实验数据对比验证,可能需要调整参数(如螺旋桨特性、摩擦系数等)以提高模拟准确性。此外,考虑外界扰动(风、温度变化)对模型的影响,增加模拟的真实性和鲁棒性。
完成以上步骤后,就可以得到一个较为完整的四轴飞行器动力学模拟,能够用来研究不同控制策略、探索优化设计、或是进行飞行前的虚拟测试。需要注意的是,空气动力学尤其是CFD分析可能是其中最复杂和计算密集的部分,对于高度精确的模拟,可能需要高性能计算资源。
📚2 运行结果
部分代码:
%clf;
close(findobj('type','figure','name','os4 animation'));
% Geometry define
%load('sim_result/os4_02_sim_NDI_MG180s.mat');
% Figure:
fig_os4 = figure('name','os4 animation','Position', [80, 60, 1120, 880]);
% FIRST % axes
ax_attitude = subplot(2,2,1);
%sz = get(ax_attitude,'OuterPosition');
%set(ax_longi,'YLim',[-200 200],'YDir','Reverse','YLimMode','manual','NextPlot','add','OuterPosition',[sz(1), 0.08, sz(3), 0.92]);
% set below with 2014b bug
%set(ax_attitude,'XLim',[-15 15],'YLim',[-15 15],'zLim',[-15 15],'xDir','reverse','zDir','reverse','OuterPosition',[0, 0.48, 0.5, 0.5]);
view(ax_attitude, [30,10]);
grid on ;
axis equal;
title(ax_attitude,'attitude');
xlabel(ax_attitude,'x'); ylabel(ax_attitude,'y'); zlabel(ax_attitude,'z');
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]郑祥明.微型飞行器非线性飞行动力学与智能控制研究[D].南京航空航天大学,2008.DOI:10.7666/d.d051961.
[2]王洪波,高子博,张宇川,等.竞速无人机螺旋桨三维建模及空气动力学分析[J]. 2017.
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取