《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 解決方案 > 使用基于模型的設計進行早期驗證和確認

使用基于模型的設計進行早期驗證和確認

2011-01-20
作者:Brett Murphy Amory Wakefield

     MATLAB 簡化了線性控制設計,但是在實際應用中,系統很少是線性的。因此,即使在設計了控制器后,對其進行測試和調整仍然意味著需要構建系統的硬件原型,并對算法進行編碼。或者,因為沒有樣機而無法進行測試,只有等到開發流程后期才能開展測試活動。

    為了將算法應用到硬件之前驗證這些算法,工程師們借助數值技術來仿真控制算法對系統(也稱為“對象”)的控制行為。控制工程師們學習編寫 C 或 Fortran 程序來嘗試構建系統模型,借用他們認為可能會適用于其系統類型的數值積分例程,在系統模型程序中復制其控制算法,并仿真整個系統。如果要使系統完全正常工作,那么整個仿真-開發流程需要耗費大量時間并且極具挑戰性。

    The MathWorks 在 1990 年發布了Simulink,一種用于對動態系統進行建模和仿真的軟件環境。在控制設計中使用 Simulink 可帶來兩大好處。首先,該軟件提供了一種直觀的框圖環境,可用于對算法和對象以及可能影響系統行為的非線性實際效果進行建模。其次,該軟件包括一個基于一流數值積分方法創建的仿真引擎。這些核心功能極大地簡化了控制工程師通過仿真來驗證控制算法的工作。但是控制工程師們仍然必須在最后對算法進行編碼,以在硬件樣機或實際系統上測試這些算法。

    大約五年后,隨著 Simulink 模型自動代碼生成的推出,此流程變得簡單得多。對于調試和測試在原型系統中運行的代碼,控制工程師們不必再擔心將算法模型轉換為代碼時出現錯誤。

 

控制工程發展的下一步曾是個很大的挑戰:產品級的代碼生成。快速原型代碼通常包含許多調試例程、數據收集代碼、主機-目標通信代碼以及用于交互測試的其他補充代碼。一般而言,這些代碼的優化程度不足以將其運用在可交付使用的系統中。代碼生成工具經過改進后,可以生成高效率的代碼,足以部署到產品級嵌入式系統中。今天,許多行業都認為從控制模型自動生成產品級代碼是最佳的做法。

Model-Based Design(基于模型的設計)

     處理器速度和內存的快速增加有助于在桌面上開發建模、仿真和代碼生成工具,同樣也使嵌入式軟件開發人員可以改進嵌入式控制器的功能和復雜性。此步驟繼而推動了這樣一種需求:即使用文本編輯器和調試器的傳統代碼開發技術不再是一種局限,未來的設計將以模型為中心。這種以模型為中心的開發方法稱為 Model-Based Design(基于模型的設計)(圖 1)。

圖1:以模型為中心的開發方法稱為 Model-Based Design(基于模型的設計)。
圖1:以模型為中心的開發方法稱為 Model-Based Design(基于模型的設計)。

     通過基于模型的設計,團隊可根據書面需求使用模型開發其設計。由于采用了仿真引擎,因此這些模型成為“可執行的規范”。對于開發和檢查規范的團隊而言,“規范可執行”是個極大的好處。檢查完高級模型后,可使用設計詳細信息修改模型,以便將其轉換為代碼。從詳細設計模型自動生成代碼極大優化了實現過程,并避免了從設計到代碼轉換過程中引入錯誤的可能。

     傳統的嵌入式控制系統的開發過程和V 型圖一致(圖 2)。

 

圖2:傳統的嵌入式控制系統的開發過程和V 型圖一致。
圖2:傳統的嵌入式控制系統的開發過程和V 型圖一致。

        此過程使所有驗證和測試都位于 V 型圖右側,即完成設計和實現之后。對于基于 C 代碼的傳統嵌入式控制開發流程,集成測試通常在其他形式且級別逐漸提高的測試(例如硬件在環測試以及全系統測試)之前。雖然此開發順序有助于組織復雜的系統設計,但還是有一些缺點:該順序直到開發末期才考慮驗證和測試,而此時修復所找到的任何錯誤都要付出最高代價且最耗時;用戶必須實現所有組件后才能測試系統;并且該順序未能考慮開發過程中的迭代。

      通過基于模型的設計,可以將驗證作為并行活動,貫穿整個開發流程(圖 3)。


圖3:通過基于模型的設計,可以將驗證作為并行活動,貫穿整個開發流程。

       在開發流程的每一步進行測試和驗證,意味著可在引入錯誤之處發現這些錯誤。與傳統的 V 型圖流程相比,可以更快地重復、修復和驗證設計。那么該如何著手實現早期驗證,從而減少在開發末期花費在測試和調試設計上的時間呢?下文概述了一些最佳做法。

模型驗證和確認

       基于模型的設計實現驗證和確認的主要方式是通過在仿真的過程中進行測試。雖然許多組織都進行某種形式的建模,但是大多是以專門的方式應用仿真,因此無法在最大程度上實現潛在的驗證好處。單靠仿真無法發現所有錯誤;但這是一個巨大的進步,您幾乎在開始設計模型時就可以進行仿真。建模環境中的迭代快速且方便。

      對各個組件進行建模非常有用,可能是完成復雜設計所必需的;然而,不要因為這種優勢,就不再對將在其中運行組件的系統或環境進行建模。通過在單一環境中對整個系統進行建模,您可以快速了解組件功能與其他組件的交互方式,以及集成組件在已部署的系統或環境中的行為方式。可能會發現對組件或其他方面的遺漏需求。通過使系統模型還原為迭代一個組件時的狀態,可以評估設計迭代對系統功能的影響。

       與設計和開發同時進行測試有助于檢測出潛在問題,并可顯著減少修復這些問題的成本和時間。通過在開發模型期間考慮測試,可使設計更適合于進行測試,從而確保可對設計進行完整測試。此原則的應用范圍遠不止嵌入式系統領域,但是嵌入式系統開發人員卻常常忽視了此原則。原因是用戶以為可以在軟件中完成任何事情,也可能是文檔化的開發流程忽視了此原則。然而,與新型靈活的軟件開發流程一樣,在設計模型之前或與設計模型并行開發測試是最佳做法。

       幾乎每種測試方案都涉及到某些變數:輸入、對象參數、環境因素或其他要素。時間和開支通常限制了測試方案的靈活度;然而,通過在仿真環境中進行測試,您可以更加快速且并行(如果處理能力夠用)地仿真測試案例。在仿真中探查整個參數空間還可以縮小要實時運行的關鍵測試的范圍。

      每個組織都有針對設計和實現的標準或最佳做法。這其中有許多標準并未形成文檔,但是卻被關鍵人員銘記在心。使標準書面化并將標準檢查加入模型開發流程是很簡單的做法,但卻可以產生巨大的影響,因為這樣做可盡早減少“愚蠢”錯誤的數量,確保模型在團隊成員之間共享時更具可讀性,并且更加容易在將來進行維護。對標準進行建模可以非常簡單(如驗證所有輸入和輸出是否已連接),也可以非常復雜(如是否滿足行業標準)。關鍵在于開發一致的檢查,然后在整個組織中推動對這些檢查的遵從性。

       確定測試組件何時能夠滿足需要通常不僅是一門科學,更是一門藝術,因為您通常要根據設計或測試工程師的判斷來確定。對于軟件組件,許多團隊使用代碼覆蓋率作為更客觀的標準來衡量測試的完整性。您同樣可以將模型覆蓋率用于模型測試。覆蓋率用于衡量您在測試過程中測試了模型中(或源代碼中)的多少邏輯。修改的條件/決策覆蓋率是一種針對覆蓋率的嚴格衡量標準,得到廣泛接受。

     大多數質量標準的核心原則是進行文檔化。把需求,流程。結果記錄下來。如果不進行記錄,則不可能跟蹤做過的事情;不可能向別人(如客戶)證明您滿足了他們的需求;也不可能重復您的結果。雖然記錄通常很單調乏味,但是有許多工具可通過生成標準報告,來幫助自動記錄活動。在您以后發現問題或希望重復使用設計時,良好的記錄可幫助您節省時間,這也是非常重要的。

代碼驗證

       這些做法是在模型級別開始早期驗證的良好起點。最后,需要實現并部署到產品化硬件上。此時,代碼驗證成為重點。基于模型的設計可以提供哪些幫助呢?

       自動代碼生成是一種非常有用的方法。通過在模型級別驗證您的設計,然后直接從模型生成代碼,您只需要驗證模型和代碼是否等效。這是一種理想狀態的工作流程。在實際情況中,有時不可能從模型生成需要的所有代碼。您可能使用傳統流程開發了一些中間件和設備驅動程序代碼,或是可能將舊有代碼用于某些功能。對于這些情況,可通過一些其他的最佳做法來驗證代碼。

      用戶幾乎可以在任何位置測試硬件;然而,硬件通常沒有與仿真中的測試有連接。許多因素都可能導致這種沒有聯系的情況:在硬件上運行測試的小組與對設計建模的小組不是同一批人,在實驗室中運行的軟件與設計中的軟件也不相同。然而,當您在模型上運行的測試與在實驗室中運行的測試相同時,您就可以確切地了解設計在實驗室中的執行情況。若要驗證代碼是否等效于設計模型,您可以將相同的測試工具用于模型測試,來測試已編譯并在嵌入式目標上運行的模型軟件實現。同時對組件設計模型和嵌入式目標上的代碼運行測試是一種協同仿真步驟,稱為 PIL(處理器在環)測試。現在,可以使用一些工具在軟件上執行測試(開發人員在主機(如 PC)上創建的測試),同時也在嵌入式處理器上運行測試。將嵌入式代碼與原始模型的測試結果進行比較,可幫助您確保組件的行為在編譯和下載后保持不變,并確保代碼可正確運行。

      嵌入式代碼中的運行時錯誤特別難以發現,一旦發現后,又難以進行調試。這類例子包括溢出和下溢、被零除和其他算術錯誤、超出范圍的數組訪問、非法取消引用的指針、對非初始化數據的只讀訪問以及危險的類型轉換等。直到最近,基本上只有三種選擇可用于檢測嵌入式軟件中的運行時錯誤:代碼檢查、靜態分析器和試錯法動態測試。代碼檢查所需的人工工作量很大,通常不適用于大型的復雜應用程序。靜態分析器可發現的問題相對較少,更重要的是,無法診斷大多數源代碼。動態(或“白盒”)測試要求您編寫并執行大量測試用例。如果測試失敗,可能難以調試問題。基于形式驗證的代碼驗證工具可以證明不存在運行時錯誤,并可為代碼的可靠性提供強有力的保證。當在開發流程中使用代碼驗證工具進行測試時,這些工具還可提供其他技術,用于發現在后期測試階段中難以發現并需要花費很高代價進行更正的設計和實現錯誤。

      系統建模和仿真工具(如 Simulink)可幫助優化設計和驗證復雜算法的任務,而無需昂貴的硬件。摒棄手工編碼、難以維護的仿真后,控制設計人員可以快速開發復雜算法和系統模型,并在將算法應用到硬件上之前測試這些算法。經過多年經驗的積累,現在已形成了可提供自動代碼生成的方法,以支持原型系統中的實時測試并在以后用于可部署的嵌入式代碼。現在,基于模型的設計已廣泛應用于各種領域,包括控制、圖像處理、音頻、通信和信號處理。

       基于模型的設計的一個主要好處在于,我們有機會隨所有其他開發步驟(尤其是在開發流程早期)一起,并行地進行嚴格驗證和確認。基于模型的設計的采用者通過不懈的實踐已發現了一系列最佳做法,使用這些最佳做法可以在最大程度上獲得這種設計帶來的好處。這些做法(特別是隨模型一起開發測試并在代碼和硬件上重復使用模型測試)可以顯著降低開發項目由于在流程后期發現錯誤而導致未能達到質量或交付目標的風險。

 

作者信息

  Brett Murphy 在 The MathWorks 管理技術營銷團隊,該團隊負責驗證和確認、測試和測量、快速原型設計以及硬件在環產品。他畢業于斯坦福大學(位于加利福利亞州的帕洛阿爾托),持有航空航天工程學士和碩士學位。

  Amory Wakefield 是 The MathWorks 的仿真和測試應用程序的產品經理。她畢業于麻省理工學院(劍橋),持有電子科學和工程學士和碩士學位。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本色道久久加勒比精品| 亚洲国产三级网| 永久久久久久| 国产一区二区三区在线观看视频| 国产精品久久久久久久久动漫| 欧美激情视频给我| 女人色偷偷aa久久天堂| 美女主播一区| 免播放器亚洲一区| 麻豆精品精品国产自在97香蕉| 久久成人在线| 久久精品导航| 久久久91精品国产一区二区精品| 久久九九99视频| 久久久久综合网| 狼人社综合社区| 久久综合亚洲社区| 免费在线欧美黄色| 欧美国产日韩精品免费观看| 欧美激情一区二区三区高清视频 | 国产噜噜噜噜噜久久久久久久久| 国产精品无码专区在线观看| 亚洲韩国日本中文字幕| 日韩视频欧美视频| 亚洲国产精品va在线观看黑人| 亚洲高清不卡| 亚洲国产国产亚洲一二三| 91久久线看在观草草青青| 亚洲精品麻豆| 国产精品99久久99久久久二8 | 狠狠综合久久av一区二区小说| 激情综合五月天| 亚洲国产高清在线观看视频| 亚洲免费观看高清在线观看| 亚洲午夜精品一区二区三区他趣| 欧美一区二区三区日韩| 最新日韩在线视频| 亚洲视频 欧洲视频| 午夜影院日韩| 久久亚洲精品视频| 欧美激情综合在线| 国产精品久久久久9999吃药| 国产主播一区| 亚洲国产一成人久久精品| 中文亚洲免费| 久久精品天堂| 一区二区激情视频| 久久av二区| 麻豆国产精品va在线观看不卡| 欧美日韩精品免费观看视一区二区| 国产精品私房写真福利视频| 在线观看欧美成人| 一区二区三区国产在线观看| 欧美一区在线视频| 99精品福利视频| 久久精品国产99国产精品澳门| 欧美黑人多人双交| 国产精品自拍一区| 亚洲国产欧美在线| 亚洲欧美一区二区激情| 99国产精品| 久久久久一区二区三区| 欧美视频日韩| 在线观看成人av电影| 亚洲图片在线观看| 亚洲精品影院在线观看| 欧美在线视频一区二区| 欧美久色视频| 狠狠干综合网| 亚洲香蕉视频| 99精品久久久| 久久久免费精品| 国产精品激情偷乱一区二区∴| 亚洲成色999久久网站| 亚洲欧美999| 一区二区成人精品| 开心色5月久久精品| 国产精品系列在线| 亚洲理伦在线| 亚洲国产日韩欧美综合久久| 欧美在线播放视频| 欧美日韩视频在线观看一区二区三区| 激情校园亚洲| 午夜国产精品视频| 亚洲一区二区三区四区中文| 欧美+日本+国产+在线a∨观看| 国产亚洲精品bt天堂精选| 亚洲图片欧美一区| 一区二区三区日韩欧美| 欧美jizz19hd性欧美| 国产亚洲一区精品| 亚洲女ⅴideoshd黑人| 亚洲一区一卡| 欧美日韩免费在线观看| 亚洲国产精品va在线看黑人动漫| 欧美在线观看视频一区二区| 性久久久久久久久久久久| 欧美性jizz18性欧美| 亚洲精品人人| 日韩视频不卡中文| 欧美成人精品1314www| 国产一区欧美| 性欧美8khd高清极品| 亚洲欧美视频一区二区三区| 欧美三区视频| 亚洲精品自在久久| aⅴ色国产欧美| 欧美精品在线一区二区| 亚洲国产影院| 日韩视频免费大全中文字幕| 欧美国产视频在线观看| 亚洲国产精品专区久久| 亚洲精品久久久久久久久久久久 | 午夜精品福利一区二区三区av| 欧美日韩午夜| 夜夜嗨av色综合久久久综合网| 在线性视频日韩欧美| 欧美日韩中文精品| 一区二区日本视频| 亚洲女同同性videoxma| 国产精品色一区二区三区| 亚洲自拍偷拍一区| 欧美在线一二三| 国内精品模特av私拍在线观看| 欧美一区二区精品久久911| 久久久久亚洲综合| 在线观看欧美亚洲| 亚洲精品国产精品国自产在线 | 久久一区二区三区四区| 狠狠色综合网| 亚洲激情在线观看| 欧美经典一区二区三区| 一本色道久久综合亚洲91| 亚洲摸下面视频| 国产精品主播| 亚洲国产成人91精品 | 欧美日韩亚洲一区二区三区| 中文网丁香综合网| 久久国产精品网站| 玉米视频成人免费看| 亚洲日本一区二区| 欧美日韩国产精品成人| 在线亚洲一区二区| 欧美一区三区二区在线观看| 国内外成人在线视频| 亚洲日本中文字幕区| 欧美日韩一区二区视频在线观看| 亚洲一区二区三区免费在线观看 | 亚洲欧美制服另类日韩| 国产视频久久网| 91久久国产精品91久久性色| 欧美日本精品一区二区三区| 亚洲五月六月| 麻豆精品在线视频| 日韩视频一区二区三区在线播放| 午夜老司机精品| 在线观看亚洲视频| 亚洲在线观看免费视频| 国产在线观看精品一区二区三区 | 亚洲图片激情小说| 国产欧美一区在线| 亚洲国产裸拍裸体视频在线观看乱了| 欧美日韩国产一区| 午夜免费久久久久| 欧美成人一区二区三区在线观看| 一区二区三区视频在线| 久久综合给合久久狠狠色| 日韩亚洲欧美中文三级| 欧美一区二区在线免费播放| 亚洲国产一成人久久精品| 午夜精品电影| 亚洲国产日韩欧美在线图片| 午夜激情久久久| 亚洲第一网站免费视频| 午夜欧美精品| 亚洲国产老妈| 久久精品国产清高在天天线| 亚洲三级观看| 久久婷婷国产麻豆91天堂| 99精品欧美| 麻豆成人在线| 亚洲欧美国产另类| 欧美精品v日韩精品v国产精品| 欧美一级视频免费在线观看| 欧美日韩精品免费看| 久久精品一二三区| 国产精品青草久久久久福利99| 91久久精品一区二区别| 国产精品日韩欧美综合| 亚洲免费电影在线观看| 狠狠入ady亚洲精品| 亚洲欧美一级二级三级| 亚洲精品人人| 蜜乳av另类精品一区二区| 亚洲欧美日本国产专区一区| 欧美日韩伦理在线| 亚洲国产精品欧美一二99| 国产女人精品视频| 中国av一区| 亚洲激情电影在线|