一、问题:利用python实现三自由度

【总结不对的地方请评论或私信我,谢谢!】

三自由度中简化的几个问题

1、3个控制量,(相比较6自由度中会使用4个控制量),三自由度中一般使用推力、升力和滚转角来控制,或使用其变形模式

2、三自由度中不考虑攻角和侧滑角,假设其为0,

3、速度方向和机体方向近似重合

二、求解过程

三自由度模型中主要包含速度、角度及其变化的模型,不包含力学和力矩关系方程。

上图方程中的x,y,z为惯性坐标系下的位置坐标,v为飞行器的速度,为飞行器轨迹的航迹角,(相对于惯性坐标系下的角度)

上图方程中主要涉及到速度以及角度的变化率及其与该方向的加速度的关系。

上图第一个式子代表推力和速度的关系,可以看成推力和阻力的合力对速度产生的影响,其方向为速度的方向,其中重力的一个分力也是阻力的作用,减掉重力加速度的一个分量

上图的第二个式子代表航迹倾角(俯仰角)的变化率与加速度的关系,为飞行器的过载,其方向为机顶的方向,如最上面的示意图所示,其作用可以理解为控制飞行器的俯仰角。

上图第三个式子中包含第三个控制量,即滚转角,控制飞行器转弯的角度。

三、代码实现

# -*- coding: UTF-8 -*-
# 版本:
# 开发时间:2020/8/3 23:14
# 用户:HDY
# Function: import numpy as np
from scipy.integrate import odeint
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['axes.unicode_minus']=False
rcParams['font.family'] = 'simhei'time = 10  #秒
n=100
t = np.linspace(0, time, n)
position = np.zeros((n,6))
dt = t[1]-t[0]velocity, gamma, fai_v = 260., 3.14/10., 0.
x,y,z = 0,0,0    # 初始位置#todo 三个控制量
control1 = 3.0
control2 = 2.
control3 = 3.14/12position[0,0] = x ; position[0,1] = y; position[0,2] = z
position[0, 3] = velocity
position[0, 4] = gamma
position[0, 5] = fai_vfor k in range(1, n):tspan = [t[k - 1], t[k]]po = odeint(dmove2, (velocity, gamma, fai_v), tspan, args=([control1,control2,control3],))velocity, gamma, fai_v = po[1,:]dx = velocity * np.cos(gamma) * np.sin(fai_v) * dtdy = velocity * np.cos(gamma) * np.cos(fai_v) * dtdz = velocity * np.sin(gamma) * dtx = x + dx ; position[k,0] = xy = y + dy; position[k,1] = yz = z + dz; position[k,2] = zposition[k, 3] = velocityposition[k, 4] = gammaposition[k, 5] = fai_vfig = plt.figure()
ax = Axes3D(fig)
plt.title('trajectory')
ax.plot(position[:, 0], position[:, 1], position[:, 2])
plt.xlabel("X")
plt.ylabel("Y")
plt.figure(3)
plt.title(r'velocity 速度')
plt.plot(position[:, 3])plt.figure(4)
plt.title(r'theta  航迹倾角')
plt.plot(position[:, 4])plt.figure(5)
plt.title(r'fai_v  航向角')
plt.plot(position[:, 5])
plt.show()

各参数变化

def dmove2( x_input, t, control):g = 9.81  # 重力加速度velocity, gamma, fai = x_inputnx, nz, gunzhuan = controlvelocity_ = g * (nx - np.sin(gamma))                          # # 米每秒gamma_ = (g / velocity) * (nz * np.cos(gunzhuan) - np.cos(gamma))      # 米每秒fai_ = g*nz*np.sin(gunzhuan) / (velocity * np.cos(gamma))return np.array([velocity_, gamma_, fai_])

python实现飞行控制仿真(二)——三自由度仿真相关推荐

  1. python实现飞行控制仿真(一)——PyFME(Python Flight Mechanics Engine)

    一.PyFME安装 [目前关于PyFME的介绍比较少,利用很长时间才摸索整理出来,如需转载请标注来源] [虚拟环境文件和测试代码下载地址:https://download.csdn.net/downl ...

  2. 计算机仿真作业三,计算机仿真技术作业三.doc

    计算机仿真技术作业三.doc 计算机仿真技术作业三 题目:三相桥式全控整流电路仿真 姓名: 班级: 学号: 计算机仿真技术作业三 题目:三相桥式全控整流电路仿真 利用simpowersystems建立 ...

  3. 基于ROS的PX4+Gazebo仿真——PX4一键起飞及飞行控制

    一键起飞 参考及引用 1. CSDN博主「战争果子」的原创文章,遵循CC 4.0 BY-SA版权协议. 原文:https://blog.csdn.net/EnthusiasmZing/article/ ...

  4. 计算机应用虚拟仿真实验答案,虚拟仿真 实验教学+.ppt

    一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 随着计算机.互联网等先进技术的迅速发展和大面积普及推广,虚拟 ...

  5. 【ROS仿真实战】Gazebo仿真平台介绍及安装方法(一)

    文章目录 前言 一.Gazebo简介 二.Gazebo仿真平台的基本概念 三.Gazebo仿真平台的安装方法 四.总结 前言 Gazebo仿真平台是一个广泛应用于机器人研发.测试和教育等领域的开源软件 ...

  6. 三自由度机械臂连续轨迹控制Simulink仿真

    博客搬家到自己搭建的 主页(wonghaotian.com) 啦q(≧▽≦q),大家快来逛逛鸭! 提供完整文件下载(Click to SAVE) DEMO 控制要求 机械臂初始时刻姿态自行确定,经过5 ...

  7. 基于matlab的全阶观测器三自由度运动系统状态反馈控制系统的仿真

    目录 一.理论基础 二.核心程序 三.仿真测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?type=blog 擅长技术: 1.无 ...

  8. 【rotors】多旋翼无人机仿真(三)——SE3控制

    [rotors]多旋翼无人机仿真(一)--搭建rotors仿真环境 [rotors]多旋翼无人机仿真(二)--设置飞行轨迹 [rotors]多旋翼无人机仿真(三)--SE3控制 [rotors]多旋翼 ...

  9. python 机械臂控制_从零开始的ROS四轴机械臂控制-gazebo仿真控制

    这是一个四轴器械臂练手项目,定为arm0.1版本,使用MG90s舵机来搭建一个四轴机械臂.arm0.1版本的目标是对带颜色的方块进行识别并在Gazebo中模拟出来. 以下是这个ROS四轴机械臂控制的目 ...

最新文章

  1. Express2.X迁移至3.X注意事项
  2. 中国新能源重卡行业十四五规划及投资可行性研究报告2022-2028年版
  3. 【spring-session】store-type
  4. cocostudio 实现换行功能的label (文本区) lua
  5. android https bks,如何将.cer转换为BKS
  6. python云变量_Python之变量的创建过程
  7. “Talk is cheap, show me the code”你一行代码有多少漏洞?
  8. win10+tensorflow-gpu+pycharm+anaconda...的成功安装,顺利在spyder import tensorflow
  9. C++主线程与子线程的关系
  10. Win32++ Home Page
  11. 超强数据恢复软件【含注册码】
  12. plex插件显示无服务器,Plex插件
  13. 用Python做入门OJ题
  14. 饥荒dns服务器未响应,DNS服务器未响应怎么办
  15. linux rc目录,linux /etc/rc.d/目录及rc.local的详解
  16. 游戏机械键盘哪个好,为什么资深玩家选择Hyperx游戏机械键盘?
  17. 为什么越来越多人不发朋友圈了?原因很现实
  18. C语言读书1000字报告,c语言实验一实验报告1000字范文.docx
  19. Chapter 1——认识机器学习
  20. 太牛了!高考失利只能进清华,35岁成阿里最年轻技术副总裁,他来自另一个平行世界!...

热门文章

  1. 社交APP开发的重要性以及注意事项有哪些
  2. 利用javascript判断浏览器是否已经安装ActiveX控件和是否禁止运行ActiveX控件
  3. 30天自制操作系统Day8
  4. Quora 没想到能这么红
  5. 笨办法学Python
  6. u盘 ultraiso 安装centos7步骤(折腾了一天才安装成功)
  7. 御剑高速TCP端口扫描工具
  8. 【liteOS】小白进阶之移植 LiteOS 到 STM32
  9. BS软件测试初学者,BS软件测试要点总结!
  10. 1.贴片电阻:介绍与测量