AVL Cruise與Simulink聯合仿真(通過MATLAB DLL方式)

??最近畢業設計需要用到AVL Cruise與Simulink進行聯合仿真,分析汽車模型的經濟性。下面介紹一下我所知的AVL Cruise與Simulink聯合仿真的幾種方式,它們各自的優缺點,以及DLL方式聯合仿真的具體配置過程。我這里用的MATLAB軟件版本是2021a,Cruise軟件版本是2019.2,電腦操作系統是Windows11。

這是一個目錄0.0

  • 1.AVL Cruise與Simulink聯合仿真的不同方式及各自優缺點
    • 1.1MATLAB DLL方式
    • 1.2MATLAB API方式
  • 2.DLL聯合仿真MATLAB配置過程
    • 2.1在MATLAB里安裝編譯器
    • 2.2在MATLAB中安裝DLL的必要文件并設置編譯器
  • 3 AVL Cruise和MATLAB DLL聯合仿真時快速生成Simulink模型的方法
  • 4.Simulink編譯DLL文件
  • 5.聯合仿真

1.AVL Cruise與Simulink聯合仿真的不同方式及各自優缺點

1.1MATLAB DLL方式

該方式是先把SImulink中建立的模型編譯成一個DLL文件,之后把這個文件內嵌到Cruise軟件中作為一個模塊,并進行仿真的方法。
優點:因為是內嵌到Cruise軟件中了,因此運行時不需要調用Simulink,運行速度非常快,且是由Simulink模型編譯生成的dll文件,在Cruise軟件里看不到具體的模型是如何搭建的,比較保密,不會泄露控制模型信息。
缺點:同樣是因為內嵌到Cruise軟件中了,因此運行時無法實時查看模型內部的參數,不適用于調試Simulink控制模型,因為改一點模型就需要編譯一次dll文件,且無法有效的定位模型中出錯的地方。

1.2MATLAB API方式

該方式是Cruise在前臺,處于主要地位,聯合仿真時打開對應的Simulink模型,由Cruise向Simulink發送必要的參數以及指令,在Simulink中完成計算后把結果返回到Cruise中,繼續進行下一步。該方法和DLL方法的優缺點正好反過來了。
優點:可以實時查看Simulink模型中的參數變化,便于調試,更改模型后不需要重新編譯dll文件就能進行聯合仿真。
缺點:沒有內嵌到Cruise模型中,運行時需要實時調用Simulink,因此運行速度極慢無比,且必須要拿到Simulink控制模型源文件才能進行聯合仿真,容易泄露信息。

2.DLL聯合仿真MATLAB配置過程

2.1在MATLAB里安裝編譯器

  1. 編譯dll文件是需要編譯器的,我的MATLAB版本沒有自帶編譯器,因此需要外部安裝一個,這里我選擇了TDM-GCC-64編譯器,該安裝包我已經上傳到了CSDN資源庫,可以從這里下載。下載完成后進行安裝,這里因為我的電腦操作系統就是64位的,因此安裝的版本選擇了64位的:
    在這里插入圖片描述
    期間安裝程序會自動去網上下載必要的安裝文件,因為可能是外網,因此下載速度會很慢,如果安裝失敗,建議換個網絡后重新安裝。
  2. 在計算機處右鍵單擊,選擇屬性按鈕:
    在這里插入圖片描述
  3. 點擊高級系統設置:
    在這里插入圖片描述
  4. 在彈出的窗口中選擇環境變量:
    在這里插入圖片描述
  5. 點擊系統變量下的新建按鈕:
    在這里插入圖片描述
  6. 在彈出框中,變量名處輸入MW_MINGW64_LOC,變量值處輸入剛剛TDM-GCC-64的安裝路徑C:\TDM-GCC-64,之后點擊確定:
    在這里插入圖片描述
    可以看到系統變量里已經有了剛剛加入的環境變量,注意查看此處顯示的環境變量名和值是否為MW_MINGW64_LOC和安裝目錄。

2.2在MATLAB中安裝DLL的必要文件并設置編譯器

  1. 先把MATLAB軟件的當前目錄展開至Cruise軟件安裝目錄下的AVL\R2019.2\CRUISE\matlab\Install_DLL文件夾,并雙擊打開Install.m文件,如下圖所示:
    在這里插入圖片描述
  2. 打開后點擊運行按鈕,結果如下圖所示:
    在這里插入圖片描述
  3. 在下方的輸入框中輸入mex -setup后按回車:
  4. 提示如下圖所示,代表已經成功的為C語言編譯選擇了編譯器:
    在這里插入圖片描述

3 AVL Cruise和MATLAB DLL聯合仿真時快速生成Simulink模型的方法

  1. 在Cruise軟件里拖入MATLAB DLL模型后,進行數據總線連接,這里輸入信號連接了Cockpit里的Velocity信號,輸出信號連接了Engine里的Desired Torque信號,如下圖所示:
    在這里插入圖片描述
    在這里插入圖片描述

  2. 雙擊MATLAB DLL模塊,打開設置菜單,切換到Description of Data Bus選項卡,并點擊下方的update按鈕:
    在這里插入圖片描述

  3. 可以看到這里更新了連接到MATLAB DLL模塊的信號,雙擊每個信號中Unit的空白處,對該信號進行必要的設置,比如設置單位等:
    在這里插入圖片描述

  4. 點擊下拉框,可以選擇對應的項目和單位,比如這里選擇Velocity,km/h,并點擊OK完成設置:
    在這里插入圖片描述

  5. 依次設置完每個信號的單位,點擊最下方的Create mdl-File,即可創建含有對應輸入輸出信號的Simulink模型:
    在這里插入圖片描述
    在這里插入圖片描述

  6. 該模型保存在Cruise模型根目錄下的userdata文件夾中,其中這個后綴為.mdl的文件就是剛剛生成的Simulink模型文件:
    在這里插入圖片描述

4.Simulink編譯DLL文件

對生成的SImulink文件進行必要的建模之后,就開始進行編譯DLL文件的準備工作,具體如下所示:

  1. 點擊SImulink模型中最上面的APPS,再點擊SImulink Coder打開編譯器,如果紅色框處沒有SImulink Coder,那么就點擊右側的下拉框,在里面尋找SImulink Coder并點擊打開:
    在這里插入圖片描述
  2. 點擊Settings:
    在這里插入圖片描述
  3. 在Slover選項卡中按標紅所示的參數進行設置:
    在這里插入圖片描述
  4. 在Data Import/Export選項卡中,設置Format為Array:
    在這里插入圖片描述
  5. Code Generation選項卡中按如下圖所示進行配置:在這里插入圖片描述
  6. 完成上述設置后,點擊Build按鈕進行編譯DLL文件:
    在這里插入圖片描述
  7. 左下角顯示Ready并且沒有報錯后即完成了DLL文件的編譯:
    在這里插入圖片描述

5.聯合仿真

  1. 在Cruise軟件中打開DLL模塊,點擊圖中所畫的按鈕,選擇之前上一步編譯Simulink文件得到的后綴名為.dll的文件,點擊OK并確定,即完成了DLL模塊的配置。
  2. 保持頁面在Sub-System 001頁面的情況下,點擊上方的options并選擇Layout,設置編譯平臺為Win64,并點擊OK確定。
    在這里插入圖片描述
  3. 切換到計算中心,點擊開始計算按鈕,即可開始運行設定好的仿真任務,實現聯合仿真。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11165.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11165.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11165.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

有邊數限制的最短路

文章目錄 題目 有邊數限制的最短路算法分析1、問題:為什么Dijkstra不能使用在含負權的圖中?dijkstra詳細步驟2、什么是bellman - ford算法?3、bellman - ford算法的具體步驟4、在下面代碼中,是否能到達n號點的判斷中需要進行if(di…

水準網間接平差

目錄 一、原理概述二、案例分析三、代碼實現 一、原理概述 間接平差的函數模型和隨機模型為: L ^ B X ^ d D σ 0 2 Q σ 0 2 P ? 1 \hat{L}B\hat{X}d\\ D\sigma_0^2Q\sigma_0^2P^{-1} L^BX^dDσ02?Qσ02?P?1 誤差方程為: V B x ^ ? l VB\ha…

信息系統項目管理師0104:詳細可行性研究(7項目立項管理—7.2項目可行性研究—7.2.3詳細可行性研究)

點擊查看專欄目錄 文章目錄 7.2.3詳細可行性研究1.詳細可行性研究的依據2.詳細可行性研究的原則3.詳細可行性研究的方法4.詳細可行性研究的內容5.詳細可行性研究報告記憶要點總結7.2.3詳細可行性研究 詳細可行性研究是在項目決策前對與項目有關的技術、經濟、

智慧公廁:打造智能、安全、舒適的公共廁所新時代

隨著智慧城市建設的不斷推進,公共設施的智能化也已成為一種必然趨勢。在這一背景下,智慧公廁作為城市管理的一個重要方面,正逐漸走進人們的視野。通過對所在轄區內所有公共廁所的全域感知、全網協同、全業務融合以及全場景智慧的賦能&#xf…

如何訓練一個大模型:LoRA篇

目錄 寫在前面 一、LoRA算法原理 1.設計思想 2.具體實現 二、peft庫 三、完整的訓練代碼 四、總結 寫在前面 現在有很多開源的大模型,他們一般都是通用的,這就意味著這些開源大模型在特定任務上可能力不從心。為了適應我們的下游任務,…

使用Python構建一個簡單的圖書管理系統

Python是一種強大而靈活的編程語言,它可以用于構建各種類型的應用程序,包括圖書管理系統。在這篇文章中,我們將學習如何使用Python和一些常見的庫來創建一個簡單的圖書管理系統。 1. 設計數據庫模型 首先,我們需要設計數據庫模型…

【退役之重學 Java】初步認識 AQS

一、AQS 是什么 Abstract Queued Synchronizer ,翻譯過來就是“抽象的排好隊的同步器”。 AQS 是一個用來構建鎖和同步器的框架。是用來構建鎖或者其他同步器組件的重量級基礎框架及整個JUC體系的基石,通過內置的FIFO隊列來完成線程獲取資源的排隊工作&…

centos7時間同步教程

針對問題:在我們使用虛擬機配置好centos7后,發現服務器時間和當前時間對不上 通過命令查看時間不同步 date 或者 date -R修改/etc/sysconfig/clock文件如下內容,保存 vi /etc/sysconfig/clockZONE“Asia/Shanghai” UTCtrue ARCfalse重寫/e…

251 基于matlab的動態粒子群算法

基于matlab的動態粒子群算法。普通粒子群算法無法感知外界環境的變化,在外界環境發生改變時無法實時進行響應,因而缺乏動態環境尋優能力。在普通粒子群算法基本上通過增加敏感粒子得到一種動態粒子群算法,該算法通過實時計算敏感粒子的適應度…

2024年第七屆可再生能源與電力工程國際會議(REPE 2024)即將召開!

2024年第七屆可再生能源與電力工程國際會議(REPE 2024)將于2024年9月25-27日在中國北京召開, 由清華大學主辦。REPE 2024將匯聚國內外知名專家學者通過主旨報告、分組討論和互動交流等形式,分享最新的研究成果、技術進展和應用案例&#xff0…

【教程向】從零開始創建瀏覽器插件(二)深入理解 Chrome 擴展的 manifest.json 配置文件

第二步:深入理解 Chrome 擴展的 manifest.json 配置文件 上一次我們已經著手完成了一個自己的瀏覽器插件,鏈接在這里:我是鏈接 在本篇博客中,我們將更詳細地探討 Chrome 擴展中的 manifest.json 文件。這個文件是每個瀏覽器擴展…

docker容器實現https訪問

前言: 【云原生】docker容器實現https訪問_docker ssl訪問-CSDN博客 一術語介紹 ①key 私鑰 明文--自己生成(genrsa ) ②csr 公鑰 由私鑰生成 ③crt 證書 公鑰 簽名(自簽名或者由CA簽名) ④證書&#xf…

C入門筆記

1. c文件執行過程 C語言程序的執行過程可以分為四個基本步驟:預處理、編譯、匯編和鏈接。下面是這些步驟的簡要概述: 預處理:在這個步驟中,預處理器將源代碼中以 # 開頭的指令進行處理,例如 #include 和 #define。預…

一般社保測試

SI 分析和 PI 分析主要有以下區別: SI 分析: 主要關注信號在傳輸過程中的質量,如信號的失真、反射、串擾等問題。 側重于確保信號的準確傳輸和接收,以實現可靠的數字或模擬信號通信。 PI 分析: 著重于電源分配網絡…

STM32快速入門(定時器之輸出PWM波形)

STM32快速入門(定時器之輸出PWM波形) 前言 本節主要講解STM32利用通用定時器,利用CCR和CNT寄存器,輸出指定占空比和頻率的PWM波形。其功能的應用有:實現LED呼吸燈的效果、控制步進電機、控制直流電機轉速等。 導航 …

Java 類加載過程

什么是類加載 Java 類加載是指將 Java 字節碼文件加載到 Java 虛擬機(JVM)中,并將其轉化為可以執行的可執行代碼的過程。當 Java 程序在運行時引用某個類時,JVM 會首先檢查是否已經加載該類,如果沒有加載,則…

ue5地編模塊學習記錄

ue5網站功能3d溜溜網下載模型https://anyconv.com/max-to-fbx-converter/3dmax轉換fbx模型解決問題記錄 一、光源 搜索光源搜索不到的時候可以點擊 窗口> 對場景內的光照進行處理

【Java】數組訓練案例

訓練案例1 需求描述: 定義一個含有五個元素的數組,并為每個元素賦值,求數組中所有元素的最小值。 操作步驟描述: 1) 定義5個元素數組。 2) 可以使用初始化數組的兩種方式之一為數組元素賦值。 3&#xff09…

最佳解決Maven同一依賴多版本共存問題,重復依賴(同一個jar包,多個版本)-maven-shade-plugin

先看鏈接:原文鏈接 參照原文鏈接生成的文件(下面是我放的位置) mvn指令 mvn install:install-file -DfileD:\mavenrepository/maven-shade.jar -DgroupIdcom.wj -DartifactIdmaven-shade -Dversion1.1 -Dpackagingjar如果配置了maven_home 和java_home可以任意打開cmd執行(…

Google: 在新知識上微調大語言模型是否會鼓勵產生幻覺?

摘要 當大型語言模型通過監督式微調進行對齊時,它們可能會遇到在預訓練期間沒有獲得的新事實信息。人們經常推測,這可能會教導模型產生事實上不正確的回應的行為,因為模型被訓練成生成沒有基于其預先存在的知識的事實。在這項工作中,Google研究了這種暴露在新知識下對微調后模…