【研發日記】Matlab/Simulink技能解鎖(九)——基于嵌入式處理器仿真

文章目錄

前言

基于嵌入式處理器仿真

使用方式

????????第一步,硬件連接

????????第二步,配置硬件資源

????????第三步,配置XCP協議

????????第四步,加載Contrl Model

????????第五步,運行仿真

????????第六步,仿真報告

分析和應用

總結

參考資料


前言

??????? 見《【研發日記】Matlab/Simulink技能解鎖(四)——在Simulink Debugger窗口調試》

????????見《【研發日記】Matlab/Simulink技能解鎖(五)——七個Simulink布線技巧》

????????見《【研發日記】Matlab/Simulink技能解鎖(六)——六種Simulink模型架構》

????????見《【研發日記】Matlab/Simulink技能解鎖(七)——兩種復數移相算法》

????????見《【研發日記】Matlab/Simulink技能解鎖(八)——分布式仿真》

基于嵌入式處理器仿真

????????基于外部ECU嵌入式處理器仿真,也稱在線調試,Mathworks官方的說法是External Mode Simulation,顧名思義就是仿真模型的運行不在Computer上,而是在外部的ECU板子上。外部ECU板子通過物理連接,直接控制真實世界中的物理實體。Contrl Model作為一個整體被編譯生成嵌入式代碼,在外部ECU板子上執行。僅留下Dashboard、Dispiay、Data lable和Data Inspect等這些交互類的Block仍在Computer上運行。Computer和外部ECU之間通過XCP協議進行實時的數據交換。基于外部ECU仿真的整體框架示例如下:

使用方式

????????第一步,硬件連接

????????將CAN接口卡的兩頭,分別連接在ECU板子和Computer之間。在Computer上安裝CAN卡的驅動程序,確保Computer的設備管理器中能出現對應的CAN卡硬件資源,示例如下:

????????Tips:在Simulink中可以調用的CAN卡,官方說法是有很多家。但是目前僅有Vector一家適配的比較完善,常見的型號是CANcaseXL、VN1610、VN1630、VN1640等。

????????第二步,配置硬件資源

????????在Vector Hardware Config窗口中,添加一個Matlab應用,示例如下:

????????打開Simulink Configuration Parameters窗口,在Hardware Implementation一欄的Target hardware resources中找到eCAN分組,配置CAN通信資源,示例如下:

????????Tips:建立連接后,ECU板子上的這個CAN module將會被占用,所以不能跟其他功能的應用沖突。

????????第三步,配置XCP協議

????????打開Simulink Configuration Parameters窗口,在Hardware Implementation一欄的Target hardware resources中找到External mode分組,配置XCP通信協議,示例如下:

????????Tip1:上述基于外部ECU仿真,依賴于Simulink和ECU之間的XCP協議和傳輸接口,以及ECU嵌入式處理器的數據交換引擎,所以需要Simulink和MCU嵌入式處理器兩邊廠家的共同支持,不是每款嵌入式處理器都支持這項功能。

????????Tip2:XCP協議,實際上上汽車行業標定領域的一種協議棧,除了可以基于CAN網絡之外,還可以基于其他的Serial通信網絡,比如LIN、Ethernet等。

????????第四步,加載Contrl Model

????????Contrl Model按照正常的方式搭建后,對于將要作為標定參數用的變量,還需要做一些特殊處理。因為標定參數是存儲在全局內存中的一個可調的全局變量,是要在算法執行的過程中更改存儲值的。示例如下:

1、在Simulink的建模選項卡上,點擊模型數據編輯器,然后點擊檢查參數選項卡。2、在模型中,點擊 Gain 模塊 G1,模型數據編輯器突出顯示與模塊的增益參數對應的行。3、在模型數據編輯器的值列,將增益值從 2 更改為 myGainParam。4、在 myGainParam 旁邊,點擊操作按鈕(含三個縱點),然后選擇創建。5、在“創建新數據”模塊對話框中,將值設置為 Simulink.Parameter(2)。點擊創建,Simulink.Parameter 對象 myGainParam 在模型工作區中存儲參數值 2。6、在 myGainParam 對話框的代碼生成選項卡上,點擊在 Coder App 中配置。7、在代碼映射編輯器中,將 myGainParam 的存儲類設置為 ExportedGlobal。此存儲類使參數對象在生成的代碼中顯示為可調全局變量。

????????如果是新建的模型,可以直接設置好標定參數的屬性,示例如下:

stepSize = Simulink.Parameter;stepSize.DataType = 'uint8';stepSize.CoderInfo.StorageClass = 'ExportedGlobal';stepSize.Value = 1;

????????第五步,運行仿真

????????在Simulink的Hardware工具頁中,點擊Monitor & Tune按鈕,即可利用Dashboard、Dispiay、Data lable和Data Inspect等工具查看信號,在ECU板子(例如電機控制器)上用探針檢查信號,或者直接在被控實物(例如電機)上觀察現象。示例如下:

????????也可以在Contrl Model執行過程中調整標定參數的值,以確定最佳參數值。示例如下:

????????Tips:這種基于外部ECU仿真的模式,不光可以在Simulink上查看信號和調整標定參數,也可以使用第三方的標定工具,例如CANape。

????????第六步,仿真報告

????????基于外部ECU仿真,還可以查看程序執行的報告。首先在Simulink Configuration Parameters窗口中配置好驗證項,示例如下:

????????仿真運行之后,就會出一個程序執行報告,示例如下:

https://ww2.mathworks.cn/help/examples/c2b/win64/xxc2000_alldata_report.PNG

分析和應用

????????1、由于Contrl Model是生成嵌入式代碼后直接在ECU板子上運行的,所以Real Time性能非常好。

????????2、對于高速響應的硬件性能也不再受到限制,可以支持中斷功能。

????????3、Computer和外部ECU之間的數據交換信號的個數交換的周期有限,官方提示理想性能下,數據獲取頻率不要超過10kHz。

????????Tips:不同的Serial通信網絡,數據交換的性能也同,主要取決于他們的通信波特率。示例:如果我們需要以10kHz的速率傳輸20 bytes的數據,那么20 bytes * 10,000Hz = 200,000 bytes/s,200,000 bytes/s * 10 bits/byte = 2,000,000 bits/s,那么波特率至少就得是2 Mbps。

????????4、Computer和外部ECU之間的數據交換,信號數據類型最大支持single型,不支持double型。

總結

????????以上就是本人在研發中使用Simulink仿真時,一些個人理解和分析的總結,主要介紹了基于嵌入式處理器仿真的工作原理,展示了仿真運行的效果,并分析了這種仿真方式的特點和適用場景。

????????后續還會分享另外幾個最近解鎖的Matlab/Simulink新技能,歡迎評論區留言、點贊、收藏和關注,這些鼓勵和支持都將成文本人持續分享的動力。

????????另外,上述例程使用的Demo工程,可以到筆者的主頁查找和下載。

參考資料

Mathworks Help - Signal Monitoring and Parameter Tuning


????????版權聲明,原創文章,轉載和引用請注明出處和鏈接,侵權必究!

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

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

相關文章

無線技術整合到主動噪聲控制(ANC)增強噪聲降低性能

主動噪聲控制(ANC)已成為一種廣泛使用的降噪技術。基本原理是通過產生與外界噪音相等的反向聲波,將噪音中和,從而達到降噪的效果。ANC系統通常包括以下幾個部分:參考麥克風、處理芯片、揚聲器和誤差麥克風。參考麥克風…

家政保潔服務小程序怎么做?家政公司快速搭建專屬小程序

在數字化時代背景下,家政保潔服務行業也迎來了線上轉型的新機遇。家政保潔服務小程序,作為一種新型的線上服務平臺,不僅能夠提升家政公司的服務效率,還能為顧客提供更加便捷的預約上門服務體驗。那么家政保潔服務小程序怎么做呢&a…

AI與量子計算:科技新時代的雙重飛躍

在科技的浪潮中,每一次技術革新都如同一次深海潛行,探尋著未知的奧秘。近年來,人工智能(AI)和量子計算兩大領域的發展尤為引人注目,它們不僅代表了科技的未來趨勢,更是人類社會進步的強大動力。本文將深入探討這兩項技術的最新進展、潛在影響以及它們之間的潛在聯系。 …

2024年3月小程序類目調整匯總公告

各位小程序開發者: 為進一步加強平臺的規范管理,優化開發者類目選擇體驗,現對以下類目進行調整,請各位開發者知悉。 類目調整 #【文娛-小說】 現資質要求 (3選1): 1、提供《互聯網出版許可…

從零開始搭建一個SpringBoot項目

目錄 Spring BootSpring Boot 項目開發環境1、快速創建SpringBoot項目2、pom.xml 添加 Meavn 依賴3、配置application.yml4、驗證數據庫是否連接成功5、配置 Druid 數據源 Spring Boot 整合 MyBatis1、準備依賴2、application-dev.yml 配置3、啟動類添加Mapper接口掃描器4、設置…

BWVS 靶場測試

一、PHP弱類型 is_numeric() 輸入:127.0.0.1/BWVS/bug/php/code.php # 1、源代碼分析 如果num不是數字,那么就輸出num,同時如果num1,就輸出flag。即num要是字符串又要是數字 # 2、函數分析: is_numeric()函數&…

使用Nginx的Mirror模塊的指南

Nginx 是一個廣泛使用的 web 服務器和反向代理服務器,性能出色且易于配置。Nginx 提供了各種模塊來擴展其功能,其中一個有用的模塊是 mirror 模塊。本文將詳細介紹 Nginx 的 mirror 模塊,包括其用途、使用場景、注意事項以及示例代碼。 1. m…

《最新出爐》系列入門篇-Python+Playwright自動化測試-40-錄制生成腳本

宏哥微信粉絲群:https://bbs.csdn.net/topics/618423372 有興趣的可以掃碼加入 1.簡介 各種自動化框架都會有腳本錄制功能, playwright這么牛叉當然也不例外。很早之前的selenium、Jmeter工具,發展到每種瀏覽器都有對應的錄制插件。今天我們…

牛客NC392 參加會議的最大數目【中等 貪心+小頂堆 Java/Go/PHP 力扣1353】

題目 題目鏈接: https://www.nowcoder.com/practice/4d3151698e33454f98bce1284e553651 https://leetcode.cn/problems/maximum-number-of-events-that-can-be-attended/description/ 思路 貪心優先級隊列Java代碼 import java.util.*;public class Solution {/**…

java面試高級篇(JVM、Mysql、Redis、Kafka)

文章目錄 面試專題-java高級篇1. JVM有做過jvm的調優嗎?常用的jvm參數調優有哪些?如果jvm持續一段時間頻繁的發生Young GC (輕GC) 可能原因有哪些? 2. Mysql2.1. 基本功(見為知筆記)2.2. 什么是索引2.3. 索引的優劣勢2.4. MySQL的索引結構2.4.1. B-Tree索引2.4.2. BTree索引…

外賣系統源碼開發全攻略:外賣小程序與后臺管理系統的設計與實現

今天,小編將詳細介紹外賣系統源碼的開發全攻略,從需求分析到設計與實現,為開發者提供全面指導。 一、需求分析 1.用戶需求 用戶是外賣系統的核心,需滿足以下基本需求: -瀏覽菜單并下單 -實時追蹤訂單 -多種支付方…

每日一題——博弈論(枚舉與暴力)

博弈論 題目描述 運行代碼 #include<iostream> #include<vector> using namespace std; int main(){int n;cin >> n;vector<int> d(n,0);for(int i 0;i < n;i){cin >> d[i];}vector<int> in(1000,0);for(int k 1;k<3;k){for(int…

ESP32燒錄AT固件并進行MQTT通訊

首先下載AT固件 發布的固件 - ESP32 - — ESP-AT 用戶指南 latest 文檔 下載燒錄工具 下載指導 - ESP32 - — ESP-AT 用戶指南 latest 文檔 燒錄后注意usb的串口是不能發AT指令的 需要用16和17腳 用AT指令確認OK后連WIFI ATCWMODE1 //設置客戶端模式 ATCWLAP …

mysql誤刪后使用binlog恢復數據

1 預期效果 使用 binlog 恢復數據的預期效果是將誤刪的數據還原到誤刪之前的狀態&#xff0c;以減少或消除數據丟失的影響。通過正確解析和執行 binlog 中的操作記錄&#xff0c;可以重新執行誤刪操作之后的插入、更新或刪除操作&#xff0c;從而恢復被誤刪的數據。 數據恢復&…

Cocos Creator 編輯器的數據綁定詳解

Cocos Creator 是一款由 Cocos 平臺推出的游戲開發工具&#xff0c;它集成了圖形化編輯器、腳本引擎和資源管理器等功能&#xff0c;方便開發者快速地創建游戲。其中&#xff0c;數據綁定是 Cocos Creator 編輯器中非常重要的一個功能&#xff0c;它可以幫助開發者實現頁面元素…

三生隨記——山洞之謎

第一章&#xff1a;初識山洞 在遠離人煙的深山之中&#xff0c;隱藏著一個鮮為人知的山洞。這個山洞名叫幽洞&#xff0c;它的名字在當地人的口中帶著一股說不出的詭異和神秘。據說&#xff0c;幽洞深不見底&#xff0c;里面充滿了未知的恐懼和危險。然而&#xff0c;對于好奇心…

Go微服務: Grpc服務注冊在Consul的示例(非Go-Micro)

概述 現在&#xff0c;我們使用consul客戶端的api來把GRPC服務實現注冊到consul上&#xff0c;非Go-Micro的形式其實&#xff0c;consul官方提供了對應的接口調用來實現&#xff0c;golang中的consul/api包對其進行了封裝我們使用consul/api來進行展示 目錄結構 gitee.com/g…

springboot+mysql在線考試系統-計算機畢業設計源碼82584

摘 要 信息化社會內需要與之針對性的信息獲取途徑&#xff0c;但是途徑的擴展基本上為人們所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人們經常能夠獲得不同類型信息&#xff0c;這也是技術最為難以攻克的課題。針對在線考試等問題&#xff0c;對如何通過計算…

Websocket助手

功能介紹 WS助手是WebSocket調試的開發工具&#xff0c;該客戶端工具可以幫助開發人員快速連接到測試/生產環境&#xff0c;它可以幫助您監視和分析 Websocket 消息&#xff0c;并在開發過程中解決問題&#xff1b;可以模擬客戶端實現與服務器的數據交互&#xff0c;并完成批量…

論文精讀:HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face Status: Reading Author: Dongsheng Li, Kaitao Song, Weiming Lu, Xu Tan, Yongliang Shen, Yueting Zhuang Institution: 微軟亞洲研究院&#xff08;Microsoft Research Asia&#xff09;, 浙江…