推薦 | 用於可視化記錄或模擬飛行數據的 Matlab 工具

2021-03-06 愛MATLAB

圖、原始項目地址:https://github.com/Ro3code/aircraft_3d_animation

(點擊閱讀原文直接跳轉!)

飛機3D動畫功能    

輕量級 MATLAB ®,可輕鬆可視化非線性飛行動力學模擬器的飛行測試數據記錄和輸出。

要下載官方版本和評價函數功能,請訪問其在Mathworks公司的文件交換站頁面。

https://www.mathworks.com/matlabcentral/fileexchange/86453-aircraft-3d-animation/?s_tid=mlc_lp_leaf

下載地址:

https://github.com/Ro3code/aircraft_3d_animation/archive/v1.1.zip

https://github.com/Ro3code/aircraft_3d_animation/archive/v1.1.tar.gz

特徵安裝

提取 ZIP 文件(或克隆 git 存儲庫)到您輕鬆到達的位置。

在 MATLAB 中將文件夾添加到路徑:例如src/

使用

只需將飛行測試或模擬數據饋送至函數,如下所示:aircraft_3d_animation

%% Example script to visualize the aircraft simulation data
% Add the path of the aircraft_3d_animation function
addpath('../src/');
% path of the *.mat file containing the 3d model information
model_info_file = 'saab_gripen_3d_model.mat';
% Load the simulation data
load('scissors_maneuver.mat')
% load('breakaway_maneuver.mat')
% load('split_s_maneuver.mat')
% define the reproduction speed factor
speedx = 1;
% Do you want to save the animation in a mp4 file? (0.No, 1.Yes)
isave_movie = 0;
% Movie file name
movie_file_name = '';

% ---
% The frame sample time shall be higher than 0.02 seconds to be able to
% update the figure (CPU/GPU constraints)
frame_sample_time = max(0.02, tout(2)-tout(1));
% Resample the time vector to modify the reproduction speed
t_new = tout(1):frame_sample_time*(speedx):tout(end);
% Resample the recorded data
act = interp1(tout, act, t_new','linear');
stick = interp1(tout, stick, t_new','linear');
y_new = interp1(tout, yout, t_new','linear');
% We have to be careful with angles with ranges
y_new(:, 7) = atan2(interp1(tout, sin(yout(:, 7)), t_new','linear'), interp1(tout, cos(yout(:, 7)), t_new','linear')) * 180 / pi;
y_new(:, 8) = atan2(interp1(tout, sin(yout(:, 8)), t_new','linear'), interp1(tout, cos(yout(:, 8)), t_new','linear')) * 180 / pi;
y_new(:, 9) = atan2(interp1(tout, sin(yout(:, 9)), t_new','linear'), interp1(tout, cos(yout(:, 9)), t_new','linear')) * 180 / pi;
% Assign the data
heading_deg = y_new(:, 7);
pitch_deg = y_new(:, 8);
bank_deg = y_new(:, 9);
roll_command = -stick(:, 2);
pitch_command = -stick(:, 1);
angle_of_attack_deg = y_new(:, 2) * 180 / pi;
angle_of_sideslip_deg = y_new(:, 3) * 180 / pi;
fligh_path_angle_deg = y_new(:, 22) * 180 / pi;
mach = y_new(:, 21);
altitude_ft = -y_new(:, 12);
nz_g = y_new(:, 19);
% Flight control surfaces
le = act(:, 9);
dr = act(:, 8);
df1 = act(:, 6);
df2 = act(:, 5);
df3 = act(:, 4);
df4 = act(:, 3);
dfp = 0.5 * (act(:, 1) + act(:, 2));
% Control array assignation
% (modify the order according to your particular 3D model)
controls_deflection_deg = [0.5*(df1(:)+df2(:)), 0.5*(df3(:)+df4(:)), le(:), le(:), dr(:), dfp(:), dfp(:)];

%% Run aircraft_3d_animation function
% ---
aircraft_3d_animation(model_info_file,...
heading_deg, ... Heading angle [deg]
pitch_deg, ... Pitch angle [deg]
bank_deg, ... Roll angle [deg]
roll_command, ... Roll stick command [-1,+1] [-1 -> left, +1 -> right]
pitch_command, ... Pitch stick command [-1,+1] [-1 -> full-back stick, +1 -> full-fwd stick]
angle_of_attack_deg, ... AoA [deg]
angle_of_sideslip_deg, ... AoS [deg]
fligh_path_angle_deg, ... Flight path angle [deg]
mach, ... Mach number
altitude_ft, ... Altitude [ft]
nz_g, ... Vertical load factor [g]
controls_deflection_deg, ...Flight control deflection (each column is a control surface)
frame_sample_time, ... Sample time [sec]
speedx, ... Reproduction speed
isave_movie, ... Save the movie? 0-1
movie_file_name); % Movie file name

如何使用其他飛機3D模型

您需要做的第一件事是尋找一個 3D 模型在 *.stl 格式 (STereoLithography), 最好地代表飛機或航空器的外部幾何。

有各種各樣的網頁,你可以找到一個無窮的3D模型免費下載。我建議你看看下面的網站,你一定會找到你正在尋找的3D模型:

由於功能允許對飛機的移動部件進行動畫處理,因此首先,您必須將 3D 模型分成兩組部件/子模型:牢固地連接到主體的剛性部件(機身、機翼、駕駛艙等),以及可圍繞主體移動和/或旋轉的部件(飛行控制表面、起落架等) 的一組部件。

您可以使用任何3D編輯工具來分割模型的可移動飛行控制表面,我個人喜歡S網實驗室,因為它易於使用,最重要的是,它是完全免費的。

https://www.meshlab.net/

有關如何實現自己的 3D 模型的更多信息,請查看import_stl_model文件夾。

https://github.com/Ro3code/aircraft_3d_animation/tree/main/import_stl_model

快去試試吧!

喜歡就點個在看吧!

相關焦點

  • 單細胞測序分析那家強,這些工具那個是藍翔?
    - DensityPath:一種水平集算法,用於可視化和重建大規模單細胞RNAseq數據的細胞發育軌跡DeLorean - [R] - 貝葉斯偽時間估計算法,它使用高斯過程來模擬基因表達譜,並為偽時間提供完整的後驗。DittoSeq - [R] - 用於單細胞和大量RNA測序的用戶友好可視化工具。色盲友好,默認情況下,新手編碼器友好,但功能強大,足以構建出版物就緒數字。
  • 訓練可視化工具哪款是你的菜?MMCV一行代碼隨你挑
    TensorBoard 支持記錄多種數據類型:作為一款可視化工具,TensorBoard 可以基本滿足深度學習實驗的記錄和可視化需求,它提供了本地埠展示可視化結果,使用起來十分便捷。但也正因為 TensorBoard 的主要功能是可視化,如果涉及到紛繁複雜的實驗管理以及機器學習生命周期的記錄,我們可能需要藉助於其他工具。
  • 如何利用Matlab處理車輛測量數據
    測量數據的格式可以是blf格式或者mdf格式(mf4,INCA的dat等)。這篇文章主要以介紹matlab的幫助文檔為主,比較基礎。記得剛開始工作的時候,處理INCA記錄的數據,以及vector的CAN卡或者數據記錄儀記錄的數據,還是一件比較麻煩的事情,那時基本上只能在特定的軟體裡回看,或者把數據轉換成mat文件,才能在matlab裡進行一些處理。
  • Varjo XR-3頭顯+飛行模擬器為飛行員提供沉浸式飛行模擬培訓,加強實戰操作
    該模擬器系統是為了在網絡聯合訓練行動和任務戰術及協調演習中最大限度地暫緩受訓飛行員的疑慮。有了這個成本低、易於組裝/拆卸的模塊化即插即用的飛行模擬系統,在不需要使用實際機體的情況下,飛行員通過虛擬培訓來提高技能,如炮擊和掃射,進而建立肌肉記憶。
  • 推薦九種常用的 MySQL 圖形化管理工具
    1、phpMyAdminphpMyAdmin是最常用的MySQL維護工具,是一個用PHP開發的基於Web方式架構在網站主機上的MySQL管理工具,支持中文,管理資料庫非常方便。不足之處在於對大資料庫的備份和恢復不方便。2、MySQLDumper
  • 【學生天地】如何用Matlab畫出漂亮的插圖?
    眾所周知,Matlab在數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多方面都具有強大功能。而且,論文能否被錄用的一個不可缺少的因素就是高顏值的配圖。    在圖像處理這一領域,那matlab可以堪稱灰機中的戰鬥機了,大家都說,只有你想不到,沒有它做不到的!
  • 飛行模擬遊戲推薦!
    每個人都有一個飛行夢,但是現實中是很難實現,頂多當一個乘客坐一坐飛機,但是遊戲可以滿足我們的任何需求,今天要給各位推薦的第一個是一款飛行模擬遊戲,遊戲名為《噴氣式戰鬥機模擬器》。這次擁有飛行夢的玩家們不僅能滿足飛行的體驗需求,還能同時體驗到如何駕駛戰鬥機進行逼真的戰鬥操作。由於遊戲的畫面和畫質非常的高,所以對手機的要求也很高,建議使用高配手機玩!
  • 這可能是ROS中最重要的可視化工具!
    但是這種數據形態的值往往不利於開發者去感受數據所描述的內容,所以常常需要將數據可視化顯示,例如機器人模型的可視化、圖像數據的可視化、地圖數據的可視化等。ROS針對機器人系統的可視化需求,為用戶提供了一款顯示多種數據的三維可視化平臺——rviz。
  • FireEye發布用於威脅情報分析的虛擬機工具
    近日,著名安全廠商火眼發布了一款用於威脅情報分析的虛擬機,事實上就是將大量分析需要使用的工具集成在一個windows系統中,並將安裝腳本發布到了
  • 知識驚人的二氧化碳模擬圖:碳循環研究的重要一步
    最新的數據成果用高解析度的可視化結果提供了一個完全不同的觀測角度,其數據來自由NASA位於加州帕薩迪那的噴氣推進實驗室(Jet Propulsion Laboratory, JPL)負責建造和運行的軌道碳觀測者2號(Orbiting Carbon Observatory-2, OCO-2),可視化結果由NASA位於馬裡蘭州格林貝爾特(Greenbelt)的戈達德航天飛行中心(Goddard Space
  • 8 個最流行的 py 可視化工具包,喜歡哪個?
    之前文章裡出現過漂亮的圖表時,也總有讀者在後臺留言問該圖表時用什麼工具做的。下面,作者介紹了八種在 Python 中實現的可視化工具包,其中有些包還能用在其它語言中。快來試試你喜歡哪個?用 Python 創建圖形的方法有很多,但是哪種方法是最好的呢?當我們做可視化之前,要先明確一些關於圖像目標的問題:你是想初步了解數據的分布情況?想展示時給人們留下深刻印象?
  • 數據可視化入門,看這一篇夠了
    本篇要點:數據可視化主要旨在藉助於圖形化手段,清晰有效地傳達與溝通信息(來源於百度百科)。
  • 數據可視化「萬能」工具
    第一章 Matplotlib 簡介這裡涉及Matplotlib 數據可視化模塊的多個方面。
  • 韋恩圖繪製工具推薦
    在數據可視化的時候,對於兩個分類或者多個數據集來進行交集和併集可視化經常要用到韋恩圖
  • Matlab 數字濾波入門詳解
    一個更接近於真實的模擬信號源如果我們對它採樣,大概會得到。。。這樣:由於高頻噪聲和原來的低頻真實信號相疊加,最後採集出來的數據和原來的數據相比很難看。這是因為採樣的頻率遠低於噪聲信號的頻率,Aliasing發生了。
  • matlab入門(三)-圖像可視化
    matlab圖像可視化基本要求(1)掌握圖形窗口的創建與控制,以及圖形窗口的基本操作;(2)熟練掌握二維和三維繪圖基本的命令
  • PyTorch 深度學習訓練可視化工具 visdom
    除了Torch版本的TensorBoard工具TensorBoardX之外,Torch官方也提供了一款非常好用的可視化神器——visdom。visdom是一款用於創建、組織和共享實時大量訓練數據可視化的靈活工具。
  • 超硬核的 Python 數據可視化教程
    確定問題,選擇圖形轉換數據,應用函數參數設置,一目了然python中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • 推薦一款科研必備的Python數據可視化神器——PyQtGraph
    PyQtGraphPyQtGraph是一個純python的圖形和GUI庫,構建於PyQt4/PySide和numpy之上,它主要用於數學
  • Tensorboard 可視化
    寫在前面這篇文章將介紹一個非常強大的可視化工具叫做 Tensorboard,這是 TensorFlow 中強大的可視化工具,支持標量,圖像,文本,音頻,視頻和 Embedding 等多種數據可視化。這個可以在模型的訓練過程中幫助我們繪製一些 loss 曲線圖,監控模型的訓練效果,也可以進行模型的參數分布,數據分布,圖像,音頻等各種數據可視化。