0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

MATLAB ? 來源:djl ? 作者:Guy Rouleau ? 2019-09-16 16:15 ? 次閱讀

在之前的帖子里(http://blogs.mathworks.com/simulink/2014/12/11/simulink-functions-intro/),我重點(diǎn)介紹了怎么使用 Simulink Function 來構(gòu)造可以導(dǎo)出為函數(shù)的模型,這樣可以把 Simulink Function 模塊放在單獨(dú)的模型里。在仿真的時(shí)候,可以引用這個(gè)模型,然后使用 Function Caller 模塊來調(diào)用它。

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

還可以將這個(gè) Function Library 模型生成代碼,在自己的手寫代碼里就可以任意調(diào)用這些函數(shù)了。

沒有提到的一點(diǎn)是, Simulink Function 和 Function Caller 模塊完全可以反過來用。也就是說,在被引用的模型里放 Function Caller 模塊,而在主模型里放被調(diào)用的 Simulink Function 模塊。

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

為什么要這樣做?簡而言之,這是為了模擬一些不直接用于仿真的自定義代碼。我們來看看這是如何實(shí)現(xiàn)的。

使用 Function Caller 模塊來調(diào)用外部代碼

如果我們把上面的子模型 codeGenModel.xls 生成代碼的話,代碼就像下面這樣:

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

默認(rèn)情況下,這個(gè)代碼不會(huì)被編譯,因?yàn)榫幾g器不知道上哪找這個(gè) timesTwo 函數(shù)。如果你知道怎么去配置模型,這個(gè)函數(shù) timesTwo 可以從任意地方提供。比如在這個(gè)例子里,假設(shè)我們有一個(gè) timesTwo.c 文件。

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

在模型的配置項(xiàng)里,我可以通過設(shè)置把這個(gè)文件包含到編譯過程中去。

關(guān)于使用 Simulink Function 仿真硬件服務(wù)的介紹和應(yīng)用

這樣,我就可以調(diào)用我自己寫的 timesTwo.c 然后編譯成可執(zhí)行文件了。

總結(jié)來說,可以通過構(gòu)造一個(gè) Simulink Function 來模擬外部代碼。

我們可以構(gòu)造一個(gè)仿真框架模型(如第二張圖的 simTop),然后引用我們的算法模型(比如 codeGenModel.xls)。對于這個(gè)算法子模型來說,被它調(diào)用的 Simulink Function (對于 simTop 來說)是可見的。但是,當(dāng)把子模型 (codeGenModel 單獨(dú))生成代碼的時(shí)候,它并不知道( 主模型里的)Simulink Function 的存在,而相應(yīng)的,它會(huì)鏈接到你所指定的那個(gè)外部代碼(timesTwo.c)上去。

我必須得說明一下,這只是眾多往Simulink 自動(dòng)生成的代碼中插入外部代碼的方法之一。

如果在主機(jī)上就有外部代碼的話,我會(huì)推薦使用 S-function 來包裝和重用,可用于仿真和代碼生成。

但是,如果沒有外部代碼,比如說這些代碼是目標(biāo)板上面的 OS 服務(wù)程序,那么這種方法倒有點(diǎn)意思(用Simulink Function 來模擬這些硬件 OS 服務(wù)程序)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4858

    瀏覽量

    69550
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    668

    瀏覽量

    33217
收藏 人收藏

    評論

    相關(guān)推薦

    用matlab里的simulink仿真一個(gè)推挽升壓仿真電路,輸出帶載能力很差?

    新手用了matlab里的simulink搭了個(gè)推挽仿真,pwm輸出為28khz,占空比0.45,變壓器匝數(shù)比1:31,輸入電壓12v,輸出電壓310v,想做個(gè)功率1kw的,然后接了個(gè)96.1的負(fù)載,輸出電壓只有160多v了。*附件:newpushpull.zip空載帶載變
    發(fā)表于 02-07 20:01

    Simulink與 Simscape的結(jié)合使用

    。用戶可以利用 Simulink 進(jìn)行系統(tǒng)建模、仿真、測試和驗(yàn)證,以及生成代碼。 Simscape 簡介 Simscape 是一個(gè)用于創(chuàng)建基于物理的模型的仿真環(huán)境。它提供了一個(gè)庫,包含各種物理組件,如機(jī)械、電氣、液壓和熱力系統(tǒng)等
    的頭像 發(fā)表于 12-12 09:31 ?892次閱讀

    Simulink模型仿真與分析技巧

    1. 模型構(gòu)建基礎(chǔ) 1.1 理解系統(tǒng)需求 在開始構(gòu)建模型之前,明確系統(tǒng)的需求和目標(biāo)是至關(guān)重要的。這包括了解系統(tǒng)的動(dòng)態(tài)特性、輸入輸出關(guān)系以及預(yù)期的性能指標(biāo)。 1.2 選擇合適的模塊 Simulink
    的頭像 發(fā)表于 12-12 09:23 ?1391次閱讀

    Simulink自定義模塊開發(fā)教程 Simulink 在控制系統(tǒng)中的應(yīng)用

    自定義模塊來擴(kuò)展其功能。 1. 理解 Simulink 和控制系統(tǒng) Simulink 是一個(gè)動(dòng)態(tài)系統(tǒng)建模、仿真和分析的環(huán)境,它允許用戶通過拖放預(yù)構(gòu)建的模塊來構(gòu)建模型??刂葡到y(tǒng)是工程學(xué)的一個(gè)分支,涉及設(shè)計(jì)能夠維持或改變系統(tǒng)狀態(tài)的反
    的頭像 發(fā)表于 12-12 09:21 ?1020次閱讀

    EasyGo 實(shí)時(shí)仿真丨DC-AC-MMC 實(shí)時(shí)仿真應(yīng)用

    EasyGo DeskSim是一款配置型的實(shí)時(shí)仿真軟件,它允許用戶將Simulink算法程序快速部署到EasyGo實(shí)時(shí)仿真機(jī)上。實(shí)時(shí)仿真機(jī)支持選配不同的FPGA芯片和IO模塊,能夠處理
    發(fā)表于 12-11 09:50

    Matlab/Simulink/Stateflow建模開發(fā)及仿真測試

    matlab 模擬仿真 熟悉Matlab/Simulink/Stateflow建模開發(fā)及仿真測試,熟悉V模型開發(fā)流程。 熟悉自動(dòng)代碼生成,能夠編寫或者配置自動(dòng)代碼生成腳本。
    發(fā)表于 10-24 17:23

    【干貨分享】硬件在環(huán)仿真(HiL)測試

    一、HiL是什么?硬件在環(huán)仿真(Hardware-in-the-Loop,簡稱HIL)是真的控制器連接假的被控對象,以一種高效低成本的方式對控制器進(jìn)行全面測試。它是一種用于復(fù)雜設(shè)備控制器的開發(fā)與測試
    的頭像 發(fā)表于 09-19 17:15 ?1427次閱讀
    【干貨分享】<b class='flag-5'>硬件</b>在環(huán)<b class='flag-5'>仿真</b>(HiL)測試

    常用的仿真軟件有哪些

    在當(dāng)今的工程和技術(shù)領(lǐng)域,仿真軟件已經(jīng)成為了一種非常重要的工具。它們可以幫助工程師和研究人員在實(shí)際制造和測試之前,對系統(tǒng)或產(chǎn)品進(jìn)行模擬和分析。以下是一些常用的仿真軟件及其特點(diǎn): MATLAB
    的頭像 發(fā)表于 08-22 09:18 ?4625次閱讀

    simulink動(dòng)態(tài)系統(tǒng)建模仿真-第9章

    電子發(fā)燒友網(wǎng)站提供《simulink動(dòng)態(tài)系統(tǒng)建模仿真-第9章.ppt》資料免費(fèi)下載
    發(fā)表于 07-26 11:47 ?1次下載

    EasyGo使用筆記丨分布式光伏集群并網(wǎng)控制硬件在環(huán)仿真應(yīng)用

    比例新能源接入”的背景下,開發(fā)一個(gè)基于硬件在環(huán)技術(shù)的平臺,用以仿真測試光伏逆變器及其控制策略,顯得尤為迫切且具有重大的實(shí)際價(jià)值。其不但能夠保證仿真結(jié)果的穩(wěn)定性與準(zhǔn)確性,而且大大縮短仿真
    發(fā)表于 07-12 17:20

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    領(lǐng)域都有著廣泛的應(yīng)用。 Vivado自帶的FIR濾波器IP核已經(jīng)很好用,這里借FIR濾波器的設(shè)計(jì),介紹Simulink圖形設(shè)計(jì)編程方法。Simulink可以使設(shè)計(jì)更直觀,使硬件資源得到
    發(fā)表于 04-17 17:29

    lwip出現(xiàn)錯(cuò)誤: recvmbox must be deallocated before calling this function怎么解決?

    服務(wù)器端 與 開發(fā)板之間連接成功后, 就不會(huì)出現(xiàn) 任何錯(cuò)誤,工作也都正常 當(dāng) 服務(wù)器端斷開連接后,大概 5-10s 左右就會(huì)出現(xiàn)錯(cuò)誤, 另外還會(huì)提示 Assertion \"
    發(fā)表于 04-15 07:09

    電路仿真軟件simulink的工作原理

    Simulink是MATLAB的一個(gè)模塊,它采用圖形化的方式來創(chuàng)建動(dòng)態(tài)系統(tǒng)模型并進(jìn)行仿真分析。Simulink的工作原理主要基于模塊化的建模和仿真方式。
    的頭像 發(fā)表于 03-29 15:21 ?1996次閱讀

    電路仿真軟件simulink使用方法

    Simulink是MATLAB的一個(gè)重要組件,用于進(jìn)行動(dòng)態(tài)系統(tǒng)的建模和仿真。
    的頭像 發(fā)表于 03-29 14:25 ?3094次閱讀

    硬件測試服務(wù)項(xiàng)目的重要性和作用

    硬件測試服務(wù)項(xiàng)目是確保硬件設(shè)備性能穩(wěn)定、質(zhì)量可靠的關(guān)鍵環(huán)節(jié)。它涉及對硬件產(chǎn)品進(jìn)行全面、細(xì)致的檢查和驗(yàn)證,以確保其滿足設(shè)計(jì)要求并具備優(yōu)良的用戶體驗(yàn)。以下是
    的頭像 發(fā)表于 03-28 09:54 ?934次閱讀
    <b class='flag-5'>硬件</b>測試<b class='flag-5'>服務(wù)</b>項(xiàng)目的重要性和作用