国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于模擬軟件的啟動和關閉的分析說明

MATLAB ? 來源:djl ? 作者:Guy Rouleau ? 2019-09-16 14:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在之前的導出函數文章中,介紹了如何配置仿真模型并將它導出為函數:使用 Model 模塊。

案例中,我們的模型模擬的是代碼運行一次的行為。也就是說:假設這些代碼要跑在 ECU 里,當模型仿真開始ECU 啟動,這些代碼就運行,當仿真結束ECU 停止。

這是個有意思的過程,不過,要是你想仿真一些更復雜的場景,比如 ECU 多次啟動和關閉的場景呢?

這就是需要用的Initialize Function 和 Terminate Function 模塊。

下面的例子模擬了一輛車在兩種不同情況下多次啟動和關閉的場景:

關于模擬軟件的啟動和關閉的分析說明

a.當車在運行時,我們使用計數器累加來跟蹤記錄發動機的在它的整個生命周期里運行的全部時間。

b. 在正常關停的場景下,車鑰匙熄火,我們將累計的時間寫入一個 non-volatile 內存。所以,在下次汽車啟動的時候它還可以被讀出來。

c. 假如電池沒電了汽車也會關停,但是這時候我們就沒有機會把累計時間寫入 non-volatile 內存了。

下面我們來看看如何實現上述邏輯。

使用 Initialize 和 Terminate 事件

首先用一個簡單的計數器例子,用來模擬發動機運行時間計數:

關于模擬軟件的啟動和關閉的分析說明

把上圖這種形式的導出函數模型,使用一個Model 模塊引用起來。在 R2016b 里 Model 模塊的參數設置對話框里就會出現兩個新選項:

關于模擬軟件的啟動和關閉的分析說明

勾選這兩個選項,Model 模塊就多出兩個輸入端口,可連接 Function-call 信號(見下圖)。

作為第一次簡單嘗試,我們用一個 Stateflow chart 來仿真車鑰匙啟、停時分別啟動和關閉這個計數器 EngineRunTime。

關于模擬軟件的啟動和關閉的分析說明

仿真結果如下:

關于模擬軟件的啟動和關閉的分析說明

當車鑰匙啟動時,計數器在增長,而當車鑰匙關停時,計數器停止計數。而當車鑰匙再次啟動的時候,計數器重置了。

自定義Initialize 和 Terminate 事件

就像之前所說的,我們并不希望這個計數器在每一次車鑰匙關停的時候都重置,不然就沒法累計發動機的運行時間了。

為了保留這個計數器的值,我們這時候就可以使用 Initialization 和 Terminate 模塊了。

關于模擬軟件的啟動和關閉的分析說明

在 Terminate Function 內部,我們使用 State Reader 模塊來獲取當前的計數值,并保存在 Data Store 模塊里。類似的,在 Initialize Function 內部,我們可以讀取這個 Data Store 模塊,并用這個值來初始化計數器。

譯者補充:熟悉 Simulink 代碼生成的朋友都知道,EngineRunTime 模型生成代碼時,會生成 step 函數,以及相應的Initialize 和 terminate 函數。默認情況下 Initialize 函數里進行輸入、輸出以及狀態量的初始化,terminate函數里是空的。R2016b 之后,新增加的這個 Initialize 和 terminate 模塊,可以讓你顯示的定義這兩個函數里的內容。

我們來看結果:

關于模擬軟件的啟動和關閉的分析說明

在車鑰匙關閉和重啟后,每一次EngineRunTime 被重新調用運行時,是在持續計數的。

Reset Function

就像之前說的,我們還需要模擬由于電池電壓過低引起的車輛重啟。

這表示,在有些真實場景下,有時候計數器模型結束運行的時候,我們是沒機會往Data Store 里寫數據的。

為了模擬這種場景,我們把原來的Terminate 模塊里面的 Terminate Event Listener 模塊的事件類型從 Terminate 改為 Reset,并設置一個有含義的名字 writeNVmem。

關于模擬軟件的啟動和關閉的分析說明

這樣一來,模型里就不再有Terminate Function 模塊了。當仿真觸發 terminate 事件后,就會執行默認的模塊 terminate 函數。

我們重寫 Stateflow 調度器,處理這兩種關停的情況:

關于模擬軟件的啟動和關閉的分析說明

注意,在上面這個模型中,我們在 Model 的參數對話框里勾選了 "Show model reset ports",所以就出來了這個額外的 writeNVmem 端口。

仿真結果如下:

關于模擬軟件的啟動和關閉的分析說明

可以看到,在因為電池失效而引起的關停時,計數器的值并不會保存給下次重啟的時候用。

代碼生成

現在,仿真結果跟我們想要的一致了,接著我們來生成代碼。

在生成的代碼里,寫入 non-volatile 內存一般都是用戶自定義代碼來實現,或者是 Embedded target 提供的硬件服務。為了模擬這種情況,我們使用 Function call 模塊和 Simulink Function 來實現,以前的帖子有介紹過這兩個模塊的用法。

簡單來說,就是把上面 EngineRunTime 模型里的 Data Store Read/Write 模塊替換為 Function call。

另外,為了能在仿真的時候得到同樣的結果,我們使用 Simulink Function 來完成讀寫 Data Store 這個功能,跟之前在Initialize 和Terminate function 的讀寫功能一樣。

這就是整個模型的結構:

關于模擬軟件的啟動和關閉的分析說明

之前的帖子有介紹過,在代碼生成的時候,可以在 EngineRunTime模型里設置配置選項,告訴 Simulink 在鏈接的時候,去哪里找這個 writeEngineRunTimNV 和 readEngineRunTimNV 函數。

我們把這個導出函數模型生成如下代碼:

關于模擬軟件的啟動和關閉的分析說明

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2316

    瀏覽量

    98197
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67524
  • 電池
    +關注

    關注

    85

    文章

    11525

    瀏覽量

    143458
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    APx500 軟件演示模式 (Demo Mode) 竟有這些隱藏玩法?免費體驗!

    圖1.APx500軟件啟動畫面與硬件檢測窗口當您在未連接APx分析儀的情況下啟動APx500軟件時,系統會提示您進入演示模式(DemoMod
    的頭像 發表于 12-29 09:04 ?468次閱讀
    APx500 <b class='flag-5'>軟件</b>演示模式 (Demo Mode) 竟有這些隱藏玩法?免費體驗!

    電能質量在線監測裝置的報警功能可以關閉嗎?

    電能質量在線監測裝置的報警功能 能否關閉及如何關閉,取決于裝置的設計、功能等級和具體配置 。以下是詳細分析: 一、核心結論:報警功能可部分關閉,但安全相關報警通常不可禁用 多數裝置支持
    的頭像 發表于 11-05 13:38 ?426次閱讀

    什么是模擬信號

    文章對模擬信號的有關內容做了簡單說明
    的頭像 發表于 10-18 16:47 ?2155次閱讀
    什么是<b class='flag-5'>模擬</b>信號

    交易關閉自動處理接口

    ? ?在電商、支付系統或任何交易密集型應用中,交易關閉(如用戶取消訂單、支付超時或系統異常)是常見事件。手動處理這些事件效率低下且易出錯,因此開發一個自動處理接口至關重要。本文將從需求分析、工作原理
    的頭像 發表于 10-17 14:25 ?444次閱讀
    交易<b class='flag-5'>關閉</b>自動處理接口

    關于太陽光模擬器的常見問題解答(一)

    太陽光模擬器是研究與測試中不可或缺的核心設備,其性能直接關系到數據的準確性與可靠性。為幫助大家更深入地理解其工作原理與選型要點,下文,紫創測控Luminbox梳理了關于太陽光模擬器的高頻疑問以及解答
    的頭像 發表于 10-15 18:04 ?524次閱讀
    <b class='flag-5'>關于</b>太陽光<b class='flag-5'>模擬</b>器的常見問題解答(一)

    電能質量分析軟件可以提供哪些數據分析功能?

    、CET 中電技術等)的技術特性,從核心功能模塊展開說明: 一、基礎電能質量指標分析 軟件可實時計算并存儲 100 + 項關鍵參數 ,涵蓋電壓、電流、功率、頻率等穩態指標,以及諧波、閃變、不平衡度等動態特性: 穩態指標 : 真有
    的頭像 發表于 10-10 17:12 ?804次閱讀

    TINA-TI 模擬電路設計、仿真和分析軟件中文教程

    電子發燒友網站提供《TINA-TI 模擬電路設計、仿真和分析軟件中文教程.pdf》資料免費下載
    發表于 09-03 17:10 ?3次下載

    詳解線性穩壓器的啟動特性

    以下將介紹線性穩壓器電源(VIN)開啟時的啟動特性及關閉時的特性。當線性穩壓器的電源在開啟與關閉時,其工作特性會受VIN的瞬態變化及輸出電容的靜電容量等因素影響而變化。由于這些特性往往會對負載設備產生影響,因此在工作性能評估中,
    的頭像 發表于 07-28 11:14 ?1651次閱讀
    詳解線性穩壓器的<b class='flag-5'>啟動</b>特性

    請問Linux+rtos的1.9版本sdk大核開機自啟動一個程序怎么關閉?

    編譯開機大核心就出現一個程序報錯,01開發板csi2上面默認接的攝像頭是gc2093的,運行的是ov5647 期待結果和實際結果 可以關閉這個自啟動程序;也希望順帶知道我要開啟自啟動的程序放在哪里 軟硬件版本信息 01stido
    發表于 07-22 06:07

    【案例2.36】芯片啟動異常的故障分析

    【案例2.36】芯片啟動異常的故障分析在某產品的調試中發現,板上核心處理芯片在每次啟動后的表現不同,偶爾會出現無法啟動的故障。經過幾百次反復上下電測試發現,在大多數情況下,芯片
    的頭像 發表于 06-26 08:24 ?1001次閱讀
    【案例2.36】芯片<b class='flag-5'>啟動</b>異常的故障<b class='flag-5'>分析</b>

    華秋DFM軟件升級時,提示“應用程序無法正常啟動”怎么辦?

    最近有用戶反饋: 登錄華秋DFM軟件,點自動升級的時候有時會報錯,導致無法正常升級。 其中有一種情況是: 軟件自動升級時,彈出“應用程序無法正常啟動(0xc000007b)。請單擊“確定\"
    發表于 06-12 18:32

    FRED 應用于照明系統的分析模擬

    ,可以隨你所需要而更改顏色,使你更容易的區別出光線的信息。 (二)LED 的應用及模擬 在FRED 你可以設計或分析LED 光源,可分析LED 的視角,照度圖、色座標,及LED 的應用如混光、照明等等之用
    發表于 06-06 08:53

    盟通方案|專業的CANopen總線分析軟件

    過程中用最短的時間通過數據幀分析排除每一個問題。除了數據幀分析功能外,分析軟件還需要能夠模擬和仿真數據幀的指令操作,才能更方便地確認問題,驗
    的頭像 發表于 05-23 16:06 ?790次閱讀
    盟通方案|專業的CANopen總線<b class='flag-5'>分析</b><b class='flag-5'>軟件</b>

    LASCAD應用:動態多模分析和調Q運轉模擬

    目錄 動態多模分析和調Q運轉模擬1 1.介紹1 2.激光器連續輸出時輸出功率,模式競爭,和光束質量的模擬2 3.Q開關運轉模擬6 4.光闌影響模擬
    發表于 05-19 08:52

    FRED 應用于照明系統的分析模擬

    ,可以隨你所需要而更改顏色,使你更容易的區別出光線的信息。 (二)LED 的應用及模擬 在FRED 你可以設計或分析LED 光源,可分析LED 的視角,照度圖、色座標,及LED 的應用如混光、照明等等之用
    發表于 05-14 08:51