日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

用函数实现simulink_VCU/BMS基于模型的开发---Simulink 代码集成

發布時間:2023/12/19 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用函数实现simulink_VCU/BMS基于模型的开发---Simulink 代码集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文承接之前的simulink的MBD開發的文章,這次我們來嘮嘮,MBD生成代碼后,如何跟底層代碼進行集成,并生成對應的hex,mot,A2L等相關文件!

啥叫集成?

集成就好像結婚,談戀愛,找女朋友!找一個臭味相同的兩個人,然后一起結婚,生個小孩,這個小孩就是對應的mot,hex 文件。

你找女朋友最重要的是啥?其實就是“臭味相同”其實就是共同的愛好,生活等,也就是集成代碼中,需要弄清楚底層應用層的接口與需求,只有這樣集成才不會有bug,結婚后才會幸福美滿。

如何談戀愛,如何結婚呢?高富帥有高富帥的玩法,今天搞個法拉利,明天搞個蘭博基尼,屌絲有屌絲玩法,今天送個花,明天請吃個麻辣燙,今天壓馬路,明天逛公園,只要功力夠強最終都可以到幸福的港灣,就像代碼集成,高大上的大公司,集成就是買買買,各種工具鏈,然后一鍵生成,屌絲公司就是各種盜版,發揮群眾力量,搞各種腳本,來進行標準化的集成,不過最終還是能生成同樣的軟件。

扯了半天,今天我就來當次非誠勿擾的主持人,搞個事情,聊聊如何談戀愛,如何集成!哈哈哈!整的自己跟孟非一樣土豪,其實自己就是個屌絲!

軟件代碼集成整體架構:

Simulink 的代碼集成,分為兩種方法,一種是老土,老土的方法,Low 逼工程師,Low 逼公司專用,另外一種就是高大上的方法,高端大氣上檔次,土豪公司專用。下面來逐個介紹。先來科普一下簡單的軟件架構。

包含三層,我們大多都是生成對應的APP層代碼,然后與RTE,底層進行集成!在整體的軟件架構中,Simulink 的APP成生成的代碼架構也根據對應的需求及公司的情況,也不同。如下所示。

應用層Simulink 生成代碼的架構:

應用層的模塊依據功能,分為多個block, 但是block的封裝方式,造成在集成時候,代碼的架構 不同,一種為library模式,一種是Model Reference模式,如下圖所示:

區別定義:

Matlab 官方定義,如果不會重用的子模式,大多用model reference,經常被重用的大多用Library,比如某個均值算法,逼近算法,PID算法等。

代碼生成時候定義,library 里面的模塊通過一些設置可以重入函數,如果不是一些特定的設置,不會生成單獨的.C,.H文件,而應用model refernece 時候,會生成一系列的單獨文件。

應用場景:

如果你們公司開發的人很多,職責分析很明確,建議用model reference,如果小公司,開發的人又是集成的人,一個人身兼多職,就直接library 的模式就可以!要不你會很累!一磚多能的人一般都在小公司,那下面來介紹一下小公司的集成方法。

Low 逼XX 公司專用方法:

小公司大多由于人及資源的限制,大多數都是依靠公共的軟件與資源進行集成編譯,在運行完初始化函數以及底層的驅動函數后,底層軟件提供對應的調度接口,按照軟件的調度順序,進行周期調度Step函數,事件型的函數大多都在應用層處理,底層就不管了,大致的架構如下圖所示:

其中下面描述的Step流程內容如下所示,偶們的一些項目大多用的是Bat 腳本與Python 腳本進行 集成編譯。

Before Build:利用Bat 腳本將所需要的應用層c文件,放入對應的文件夾,修改查看函數名字是否符合底層要求等:

Build:用python 調用編譯器內核或者后臺打開編譯器,link所有的文件進行編譯。

After Buid:有的公司也叫PB(Post Build),將生成的文件打標簽,放入對應的文件夾,有的公司還調用hex view在hex里面進行添加對應內容 以及check 對應的checksum ,一般你所看到的版本,日期,項目名字的信息大多都在這個步驟完成。

以上這種方法大多依靠NB的技術大拿,從而減少公司買一些整套的軟件管理編譯專用軟件的錢,大多數新能源企業都是這么搞,就因為省錢!但是還有一些土豪世界500強,用的是高大上的方法。

土豪公司專用方法:

為啥說土豪,是因為很多編譯步驟都是在云端實現或者有對應的專用軟件,而且這些專用軟件都是土豪公司自制,很多世面上都沒有,具體如下圖所示:

在這個編譯過程中大多會用到,QAC,Clearcase,Doors ,ClearQuest等大型軟件,之間的耦合也是通過一些腳本進行連接,大多數目前用的是Perl 或者Python.

編譯的過程也包含三個步驟,但是大多都是后臺運行,一般看不到。

今天就先扯這么多吧, 集成就這么多了嗎?當然不是,還有一個很重要的知識點,就是不同速率的任務函數如何在simulink中實現,就是一個屌絲如何追求白富美,一個高富帥如何追求丑小鴨,那我們就下次再來屢吧!

講解的視頻,最近實在太忙,就不搞了,等有時間給大家免費補上,感覺不錯分享個朋友圈,點個贊,來犒勞一下本吊絲的辛勤勞作!

之前發布的Simulink 資料已經恢復,感興趣朋友,關注微信公眾號,回復“simulink ”就可以獲取下載方法,謝謝嘍!

在這里就不謝任何人了,所有圖片介紹,都是本屌絲搞得,若與你的文章雷同,你肯定是盜版,哈哈!

知乎專欄: 汽車控制系統Live名稱:電池管系統BMS 技術,市場,工作現狀與挑戰

電池管理系統BMS-技術現狀與前景?www.zhihu.com

微信公眾號: 新能源控制系統及MBD開發

總結

以上是生活随笔為你收集整理的用函数实现simulink_VCU/BMS基于模型的开发---Simulink 代码集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。