<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 怎么能使Simulink的仿真速度更快?

          怎么能使Simulink的仿真速度更快?

          作者:paradoxfx 時(shí)間:2013-11-11 來源:電子產(chǎn)品世界 收藏

            現(xiàn)在的專業(yè)軟件都是越做越大,功能成倍成倍地增加,而處理的對(duì)象也是越來越復(fù)雜,特別是使用一些仿真軟件在高精度下建模仿真的時(shí)候,因?yàn)镻C上硬件的發(fā)展速度慢于軟件功能復(fù)雜化的速度,就造成了我們的仿真看起來是越跑越慢了。那以電子、通信、控制等領(lǐng)域都廣泛使用的為例,有沒有什么好的辦法能讓我們的更快一點(diǎn)呢?在此總結(jié)一下,我們可以在以下的幾點(diǎn)中進(jìn)行一些改進(jìn)。

          本文引用地址:http://www.ex-cimer.com/article/185304.htm

            首先是模型的搭建問題。在環(huán)境中建模時(shí),以s域的表達(dá)式進(jìn)行建模時(shí)問題要少一些,增大誤差限、取消過零檢測(cè)等可以提高發(fā)展速度,減少警告信息。而z域的情況下要注意的問題會(huì)多一點(diǎn)。第一點(diǎn)是把模型中的代數(shù)環(huán)(Algebraic Loop)要消除掉;因?yàn)閦域處理的數(shù)據(jù)都是一拍一拍按照采樣周期處理的,所以如果一個(gè)數(shù)據(jù)既作為輸入,同時(shí)又無延時(shí)地作為輸出,就產(chǎn)生了數(shù)值處理的問題,造成顯著下降,處理的方法一般也不難,把反饋加一個(gè)延時(shí)環(huán)節(jié)就好了。另外就是仿真步長的問題,在能保證仿真精度的情況下,盡量使用大的步長可以顯著提高;這個(gè)最大的仿真步長自然可以按照香農(nóng)采樣定律來確定,但是一般情況下選擇仿真步長為4-10倍的最大采樣頻率是足夠了。

            其次是可以改變仿真的模式。在老版本中,這個(gè)選擇很少,但是新版本有了Normal、Accelerator和Rapid Accelerator、HIL等模式。硬件在回路HIL顯然速度最快,但是好多時(shí)候并不適用,因?yàn)槭紫纫邢鄳?yīng)的硬件,其次是仿真對(duì)象要支持代碼生成。因?yàn)镾imulink用的是一種解釋性的語言,normal模式就可以理解為Matlab解釋一句,執(zhí)行一句,速度自然不會(huì)太快;Accelerator則是把一部分共享模塊編譯為庫文件,例如dll進(jìn)行調(diào)用,相當(dāng)于混合模式,既有解釋-執(zhí)行,也有直接調(diào)用,速度;Rapid Accelerator則是把整個(gè)模型編譯為下獨(dú)立運(yùn)行的程序,少了Simulink解釋給的工作,自然運(yùn)行速度快,代價(jià)則是需要一定的時(shí)間來編譯模型;這種模式對(duì)PC的硬件配置要求是相對(duì)比較高的,內(nèi)存少于3GB時(shí)容易出錯(cuò)。

            再者就是有一些模塊會(huì)顯著拖慢仿真速度,它們相當(dāng)于“木桶理論”中的那塊“短板”了。例如Simulink中的X-Y圖這樣實(shí)時(shí)刷新繪圖的模塊。如果模式中有這個(gè)模塊,則仿真的時(shí)候它會(huì)緩慢地刷新X-Y圖,仿真速度肯定快不了。如果有別的方法替代則可以加快仿真速度,例如先把數(shù)據(jù)保存到工作空間里,等仿真結(jié)束之后再繪制X-Y圖等。一些非線性的模塊,例如一個(gè)非線性的模型,自然也比理想開關(guān)所需要的仿真時(shí)間長。

            第四種方法是并行執(zhí)行和分布式執(zhí)行,相當(dāng)于多個(gè)人一起完成一項(xiàng)工作,前提是要有并行執(zhí)行的許可和分布式執(zhí)行的許可。并行執(zhí)行就是在多核CPU的計(jì)算機(jī)上,打開多個(gè)Matlab,然后自動(dòng)或者手動(dòng)分配進(jìn)行并行處理;分布式執(zhí)行則是多臺(tái)計(jì)算機(jī)使用高速網(wǎng)絡(luò)互聯(lián)之后分別處理。這種仿真方法其速度提高非常顯著,特別是在處理大量迭代計(jì)算的時(shí)候,不過不是一般的開發(fā)者所能具備的。

            此外,從2012b以后的版本開始,Simulink自帶了Simulink Performance Advisor工具,可以幫助我們發(fā)現(xiàn)影響仿真速度的瓶頸,并提出相應(yīng)的建議。不過它無法或者我們搭建模型的意圖是神馬,所以還需要我們?cè)诖罱J降臅r(shí)候就按照前面幾條建議進(jìn)行一些必要的修改。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();