汽車開發中的快速原型和基於模型設計的區別 dspace 有什麼作用?

汽車開發中經常使用到快速原型與基於模型的概念,在快速原型的設計中會使用到Dspace,基於模型與快速模型有什麼區別,Dspace又在這裡面扮演什麼角色?


轉回電腦回復,利益相關,天天整dSPACE
之前sean的回答大體沒有問題。題主在理解這個問題時,首先要有一個意識:基於模型的設計(Model Based Design)是一種開發方式,即公司裡面大家都要遵從開發產品的方式。與其對應的基於代碼的開發方式(當然可能不是這麼叫)。MBD要求從開發到後續測試,儘可能的基於模型實現,相關優勢sean已經提到,大家也都明白如果給你一個simulink模型,你對它的理解肯定比代碼好。在基於哪種模型,目前大多數為Matlab/Simulink環境。即演算法的實現儘可能基於Simulink實現、驗證、測試,而代碼只是整個流程中的附屬產物;當然如果能解決晶元、驅動對模型的支持,大家寧可代碼都不要。
個人覺得MBD與V流程也是兩個概念,MBD不貫穿V流程時,傳統的代碼也能實現V流程,只不過V流程的各個極端不太一樣。Sean的圖是將MBD貫穿於V流程的,會出現諸如代碼生成等有特色的環節。該V流程中,第一階段在simulink環境下離線的模擬是無法驗證演算法的實時效果的,這就需要一個硬體平台(RCP)直接運行你的演算法。在RCP階段,不需要開發者對演算法針對運算效率、RAM/ROM佔用進行優化,不需要你關注底層硬體驅動等;唯一需要的是讓開發者無需考慮任何東西來驗證演算法,這就是RCP的目的。dSPACE相關的RCP產品以其計算能力強大、外部介面豐富,完全可以滿足該階段對硬體平台的需求。如Microautobox 900MHz的主頻讓用戶不用擔心演算法的效率、計算溢出等,相關的上位機軟體也可以對運行效果有效監控。
綜上所述:dSPACE的快速原型工具相當於一個功能強大的萬能控制器,它處於V流程中研發前期的演算法驗證階段。它的引入使演算法驗證和硬體開發可同步進行,不用必須等待硬體開發好後才能驗證演算法。
dSPACE在MBD的V流程中各個階段均可以提供相關產品。RCP,代碼生成,HIL以及最後的標定。且相關產品以汽車領域為主。其它行業也有涉獵如衛星、航天等。目前除RCP和代碼生成外,HIL領域是dSPACE的工作重點,亦為國內各大廠商接受,也確實在測試上起到重要的作用。題主如有興趣,可聯繫dSPACE做現場交流。
dSPACE產品的角色:研發工具,加速研發速度
dSPACE公司的角色:研發工具提供商,方案提供商,HIL測試工程服務。


1. 快速原型和基於模型的設計,這兩個概念可以在V模式中討論,如下圖(摘自網路)

2. 基於模型的設計,指的是一種開發方式,即ECU的演算法使用模型開發(與之對應的是手寫代碼)。基於模型的設計的優點之一是可以更好的追溯設計需求,Simulink工具箱更是有專門的VV工具箱,以保證需求的可追溯性。這一部分主要在V流程的第一階段。
3. 快速原型是V流程的第二階段,指的是將控制演算法的模型,生成代碼之後下載到快速控制原型中,以驗證演算法的功能。快速,快在哪裡?快在不需要自己設計硬體,快速控制原型設備已經提供了可靠的硬體和底層軟體。因此只要有了控制演算法的模型,就可以在RCP上去驗證演算法的功能。
4. 關於dSPACE。dSPAPE提供的設備包含RCP,代碼生成,HIL等相關工具。比如AutoBox,Targetlink以及Simulator。因此dSPACE是一家可以提供V流程中使用的軟硬體產品的公司。當然,這家公司的產品不少,還涉及其他行業,感興趣的朋友可以自己去看他們的網站。


某大學汽車電控方向博士在讀,熟練使用MATLAB/Simulink設計控制演算法,使用dSPACE/MABX做控制原型上車,使用Simulator做硬體在環模擬,也用過NI的東西

前面幾位解釋的差不多了,個人認為快速原型與硬體在環的區別沒說清楚,我說一下自己的想法。
首先,控制器快速原型和控制器硬體在環有聯繫,但控制器快速原型和硬體在環(注意,沒有控制器)沒什麼太大關係。
控制器快速原型的關鍵點是快速,在有了演算法之後就能大致知道演算法靠不靠譜,而不是要經過寫程序、選晶元、焊板子、燒程序這些步驟。如果有問題,就能很快的調整和改進。舉一個真實的例子,我們有人做EPS,原先用的是嵌入式晶元,在開發過程中CAN報文經常更改(常有的事吧),就得經常的改程序、刷程序。自從換了MABX,改一下dbc重新Ctrl+B一下就好了,極大的提高了效率。
硬體在環的關鍵點是硬體,要證明演算法好不好使,最好就是直接實車試驗,但考慮到成本和安全問題有些不太現實。那就退而求其次,把那些不好建模的部分用硬體,對特性掌握的比較好的部分用軟體,這樣也能大致的知道行不行。使用真實的產品級控制器,其他用軟體模擬,這就是控制器硬體在環。在這個基礎上再加入一些執行器硬體,比如真實的轉向系統(太好了,終於不用建立什麼干摩擦模型、遲滯模型了),用實時模擬器(工控機、dSPACE Simulator)計算剩下的車輛模型,這就是控制器硬體在環+執行器硬體在環。要是這都沒什麼大問題,恭喜你,可以上實車了。硬體在環概念的範圍比較廣,硬體在環&>控制器硬體在環。


關於什麼是基於模型的設計,請看下面的回答:什麼是自動代碼生成技術?這種技術有什麼優點? - 一個kebab 的回答 - 知乎

快速原型只是基於模型設計中可能用到的一種代碼實時測試方法。一些快速原型的方案也叫Open ECU,其實這個更形象,因為就是一種開放的ECU平台,相對於比如Bosch或者Conti提供給某個量產系統的個性化定製ECU。

1. 如果是車企實際量產項目,大多 ASW(應用層軟體)開發之前都已經有確定的 ECU(控制器)以及 BSW (底層軟體)供應商,所有 ASW 生成代碼後的測試都會直接使用量產化的開發型ECU,沒有人會再畫蛇添足使用額外的成本和時間去做快速原型,也就是在V Cycle中根本就沒有快速原型這步。

2. 但是比如如果做純技術科研項目或者原型車項目,並不准備立刻量產,那麼沒有現成的控制器ECU和底層軟體BSW,而又希望測試模型生成代碼後在實際硬體(可以是發動機變速箱這樣的子系統或者是整車)上的控制效果,那麼最捷徑的就是使用快速原型的控制器和附件,或者也有人叫Open ECU。相對於針對某個控制硬體「個性化」的量產ECU和BSW,快速原型的控制器和附加硬體有強大的CPU和IO介面,通吃不同的各種應用,屬於萬金油。只需要自己提前按照被控對象設置IO和驅動器,則能快速自己搭建一個配合測試應用層軟體的控制器。

Dspace只是一個快速原型方案的供應商而已,比如你可以用MicroAutoBox做控制器,加上RapidPro模塊做驅動來構建一個使用不同控制系統的ECU:
MicroAutoBox:MicroAutoBox Hardware
RapidPro Hardware:RapidPro Hardware

當然Dspace不是快速原型的唯一供應商,比如下面這個Pi Innovo也是其中一個:
OpenECU:http://pi-innovo.com/product/

總結來說:
1. 快速原型是用於基於模型設計中的一個開發測試方法,但是並不是基於模型設計所必須的。
2. Dspace只是快速原型方法的一個解決方案供應商,但絕不是唯一的供應商。

相關知乎 Live: 車載控制軟體設計:從需求到量產 知乎 Live 入口


大家好,我也來回答一下這個問題。第一次在知乎這麼正式回答問題。 @冷哲 希望大神如果有空瞧一眼,還有沒有解釋不對的:)
我是在國內學的控制工程理論,學完也不知道具體是咋用的。直到出來讀了機械的研究生。補上了他們本科控制的相關課程,這幾門課分為理論和實踐。理論就是PID控制的設計和分析。實踐的部分就是教授帶著我們,每人一套dSpace設備在實驗室做項目(直流電機轉速控制,步進電機轉速控制,四位三通液壓閥控制,電動車 etc.)。現在終於對這塊兒有了一個比較清晰的認識。
背景介紹完畢!

以下是我的一些理解。

首先我想給出一些概念

快速原型有兩個!

Rapid Prototyping(Rapid Mechanical Prototyping) : 這個是針對純硬體領域的快速模型。比如我要新設計一款四缸發動機,那麼我可以先在catia裡面三維建模一些零件,然後把我的零件模型導入3D印表機(或其他技術,不贅述)列印出來一個Prototype,然後對這個原型進行靜態動態分析。因為利用3D列印技術,所以大大降低了零件加工的難度,從而加快了研發進度。這也就是所謂的Rapid

Rapid Control Prototyping:這個是針對所有工業嵌入式控制系統開發而言的快速模型。

open loop control,close loop control,PID Control ,.......(請自行Google)

嵌入式控制系統 embedded control system:
比如我們汽車上的ESP系統,
1 我們有一輛車
2 我們發現車在一些路面輪胎會打滑,打滑導致危險
3 汽車工程師發現,如果可以控制發動機的輸出扭矩,剎車鉗適當的開閉,從而使輪胎的滑移率總是保持在一個理想的範圍內,那麼我們開車就安全了!
3.5 汽車工程師選擇感測器(壓力,轉速,加速度.....)和促動器(可調節的液壓閥.......)
4 Software汽車工程師設計控制演算法(比如很複雜的PID control,State Space,slide model control)
5 Hardware汽車工程師根據演算法的要求挑選單片機和電路元器件,然後設計並製造控制PCB板
6 汽車工程師把設計好的軟體編寫到第5步的PCB板上(這個板就是我們汽車領域所說的ECU)
7 汽車工程師把這個PCB板和發動機和剎車系統連起來
8 well done! 我們的車現在就不會打滑了!
9 給汽車工程師發獎金

示意圖如下:

我講這個是因為,我在查國內的資料的時候發現很多人都認為嵌入式開發就是寫C代碼,我覺得其實並不是!上述就是一個非常非常粗略的嵌入式系統開發的大概步驟。

總結:何為嵌入式?
粗俗的說,就是我們弄出一個ECU,然後把ECU插到我們要控制的系統裡面,對系統進行控制。如果控制的不好或者開發新功能,那麼拔下來調試,然後再插回去。這一整套的硬體、軟體、系統的開發就是所謂的嵌入式控制系統開發。C編程僅僅只是其中的一部分。最後,由於有了嵌入式控制,我們的系統就變得智能了。(自動停車,電動車,自動駕駛,六軸機械臂·······)

在這個開發過程中使用的最多也是現在最流行的開發方法就是Rapid Control Prototyping
用的最多,也是最好,最貴的軟硬體結合的設備就是 dSpace system,對於汽車開發他們公司最出名的產品就是microautobox。

我們的傳統開發過程:

困難和問題
1 一定會有不合適,不合適就要返工,返工就要拖延開發時間!
2 可以看出這是一個跨學科的複雜項目,所以機械、電、計算機程序,硬體,軟體綜合起來使項目風險變得很高。其實說人話就是,只要一步錯就要倒頭重來,又要再花錢,貴啊!
3 對於control system的開發要等到二期成果出來以後!

GOOD IDEA
為了減少返工,加快研發時間,能不能在我們的硬體(mechanic and electronic)還沒出現的時候就可以進行控制系統的開發?換句話說,控制系統的開發能不能和硬體(mechanic and electronic)開發同時進行?
答案是:能!

解決辦法:
那麼我們要干控制,就必須首先要有整個系統(mechanic and electronic)才行啊,怎麼辦?

對整個系統建模!最常用的軟體當然就是我們大名鼎鼎的Matlab/Simulink,其實對於汽車還有專門的軟體IPG Carmaker, 我現在用的就是這個。

上述的就是基於模型設計的Conception!其實隨著基於模型的理念發展,這種研發辦法已經不限於控制了。

(中文越來越弱了,如有啰嗦的部分請見諒,這麼久才回答了題主不到三分之一的問題Orz....)

--------------------------------------------------------------機械切割-----------------------------------------------------------------

那麼何為Rapid Control Prototyping(快速原型)?
這就不得不提到牛逼的dSpace盒子

這個就是我在前面提到的microautobox

在硬體出來之前:
對於硬體系統(mechanic and electronic)建模:
1 Matlab/Simulink可完成mechanic 和感測器,促動器的建模

2 microautobox就是electronic硬體,也相當於就是很多ECU的組合,它比汽車單個的ECU功能強大的多。你可以只當一個ECU來用,也可以當多個ECU來用。
3 這個盒子硬體部分可以接感測器,促動器。軟體可以接Matlab/Simulink

4 我們在Matlab/Simulink裡面設計控制演算法,比C更直觀容易理解
5 演算法自動轉碼成C Code到這個盒子
6 dspace還有對應軟體可以看輸出端實時(realtime)響應曲線

等汽車造出來以後
7 電腦--------盒子------CAN BUS------汽車連接起來 (這就是HIL的一種,什麼是Hardware In the Loop 就不細說了)
8 一個人開車,一個人坐在副駕駛座上用軟體實時的調節各項參數
9 所有都合適之後,生產單個的ECU(發動機ECU,ABS的ECU,ESP的ECU......)
10 FINAL TEST
11 well done!給汽車工程師發獎金

快在哪裡?rapid?
同時開發!
無需編程C Code!你知道,編程出錯很多的。這也使得工程師可以專心干控制!
電控硬體已獲得(microautobox)!
realtime testing !

以上就是快速原型和dSpace的非常非常粗略的介紹,請結合樓上大神們的V model一起服用!

如有不清楚的地方,歡迎留言,私信,加好友!
共同學習,共同進步!

最後,感謝你對本篇扯淡的耐心閱讀:)


(如果有時間,我想再舉一個詳細的電動車例子給大家,以上真的都是很粗略淺顯的理論介紹,望見諒!)


.
利益相關:整車廠系統開發工程師。
2013年花了大半年的時間從零開始構建了一個基於dSPACE MicroAutoBox、用於發動機控制的快速原型系統。

1.基於模型的開發是一種軟體開發方法
傳統的嵌入式軟體開發方法:演算法工程師編寫演算法文檔,程序員根據演算法文檔手寫代碼(C或彙編語言),代碼完成之後下載到嵌入式硬體中驗證演算法、軟體是否正確。
與傳統的方法相比,基於模型的開發有以下優點
(1)可運行的演算法。基於模型的開發中演算法 = Matlab模型 ,Matlab模型是可以運行的。因此演算法工程師在構建模型之後可以運行模型對演算法實施驗證,確認演算法是否符合預期。這樣,可以更早地發現演算法中的錯誤。
(2)自動生成代碼。傳統方法中需要由程序員根據演算法手寫代碼,而基於模型的開發則可以通過Targetlink等代碼自動生成軟體將演算法直接轉變為C代碼。這個過程不但縮短了代碼開發的時間,而且還大大地提升了代碼的整體質量和可靠性。因為Targetlink生成的代碼一般比3年經驗的程序員手寫的代碼質量要高。

2.dSPACE把基於模型的開發分為5個階段,快速原型是其中的第二個階段

各步驟的簡介
(1)Control Design and offline Simulation:演算法模型構建和離線模擬。演算法工程師用Matlab模型實現演算法;並實施離線模擬,驗證演算法。
(2)Rapid Control Prototyping:快速原型。演算法工程師將上一步構建好的演算法模型下載到快速原型設備中,並使用快速原型設備控制車輛,並實施在線模擬,驗證演算法。請注意,這一步的模擬是在線模擬,而上一步則是離線模擬。(二者的區別是什麼請百度)
(3)Automatic Code Generation:自動代碼生成。通過軟體將演算法模型自動生成C代碼。
(4)HIL:硬體在環。此時,上一步生成的C代碼已經驗證完畢,並下載到了量產ECU中。在這一步,用量產ECU驅動車輛,以驗證量產ECU的軟體、硬體。
(5)Calibration:標定。在這一步,主要是為了優化軟體中的參數使得車輛各方面性能達到最佳。3.dSPACE的作用
對整車廠來說,dSPACE是一個卓越的基於模型開發相關的軟體、設備、工程服務供應商。
自動代碼生成軟體,dSPACE有Targetlink(行業標杆)。
快速原型設備,dSPACE有MicroAutoBox+RapidPro設備(行業標杆,但是很貴,好多公司都改用更便宜的MotoHawk了)。
硬體在環設備,dSPACE有HIL設備(行業標杆,但是很貴,好多公司都改用更便宜的ETAS、NI了)。
此外,關於如何改進整個基於模型的開發流程,以及如何滿足ISO26262、AUTOSAR標準,dSPACE提供相關的工程服務(嗯,很貴)。
.


我也來簡單回答一下吧!輾轉多家汽車電子公司了,還是看到了不少東西。


快速原型機不一定是基於模型的,通常快速原型機的作用是能夠讓你在開發初期很多控制器硬體軟體條件不完善的時候提供一定的條件來提前驗證你的控制策略。而基於模型的開發則是涉及到模型的代碼生成技術,博世之前一直用ascet,而現在部分使用MATLAB。而現在國內的同行里來看,MATLAB還是很有優勢的,不管是技術還是市場份額。基於模型的開發降低了軟體工程師的軟體技能門檻,可以把更多的精力放在控制策略上。其優勢不僅是有更多的工程師可用,而且能夠在脫離控制器的條件下進行模擬驗證。

如果再說到測試,很多HIL(硬體在環)以及MIL(模型在環)測試都離不開模型設計。
除此之外,很多軟體的測試工具也是基於模型設計的。

至於dspace,他們的targetlink的代碼生成技術是依託於前面提到的ascet或者Matlab的模型代碼生成技術而存在的。MATLAB下的我了解一點,優勢在於定標轉換演算法的優化以及代碼的可讀性提高,產品開發中關於他比MATLAB本身的代碼生成技術的絕對優勢,我沒有體驗到。另外,dspace的HIL台架是涉及到模型開發的,用於構建被測試的物理對象模型。HIL技術上,常見的還有ETAS的HIL,與之類似。兩者的差別在於dspace對Python的支持會好一些,而ETASpythonnet的使用體驗不是很好,最好還是選擇C#。

看大家基本都曬一下自己的經歷說明自己答案的可靠性,我也晒晒吧!

算不得精通,熟悉汽車電子控制器開發的框架以及流程。參與過跟博世合作的控制器開發,參與過跟大陸合作的控制器開發,參與過跟德爾福合作的控制器開發,參與過BMS的開發、參與過軍品開發、參與過新能源整車控制器開發、參與過車用遠程監控系統開發、寫過代碼、搭過模型、用軟體技術協助過HIL測試、開發過幾種車用控制器測試裝備的開發。還算熟悉模型的代碼生成技術吧,一直覺得這是我比較強的競爭力看點之一。

涉及到軍品,很容易讓同行猜出我是誰,匿了吧!


關於這個話題,首先要區分快速原型和基於模型開發是兩個不同層次的概念。

基於模型開發是一種設計和開發方法,是以模型為中心,通過模型的開發、驗證等相關工程活動的組織和實施,實現系統的研製。例如基於模型設計系統架構或者軟體演算法。

也可以基於模型設計硬體的電磁模型。

基於模型設計的意義在於:

  • 相對於傳統設計,模型是圖形化的,直觀易讀
  • 模型可以直接在PC機(不依賴目標機)上進行自動化分析和驗證
  • 模型可以自動生成代碼和設計文檔,不用再進行一遍手動編碼,提高了工作效率
  • 模型還方便進行多學科,軟硬體結合的驗證

而快速原型是一種開發方式,相比與傳統瀑布式的開發方式,它的目的是藉助計算機輔助設計的應用,在完成產品設計後,批量生產前,構造一個軟硬體結合的原型機,快速驗證產品的設計,並以此為基礎,迭代完成最終產品的開發工作。

快速原型可以用傳統設計方法,也可以用基於模型的設計開發方法,由於基於模型的設計能夠藉助輔助設計工具的自動化能力,例如自動生成代碼和文檔,自動測試,形式化驗證,所以在航空航天,軌道交通,汽車等領域,基於模型設計越來越多在快速原型開發中被應用。

基於模型的快速原型開發通常分為四個過程:MiL

SiL →
PiL →
HiL

1. MiL(Model
in Loop)模型在環

在PC上基於模型的測試,它的輸出是經過驗證的控制演算法模型。

2. SiL(Software
in Loop)軟體在環

將模型生成代碼或者手工編寫代碼,編譯成PC程序,在PC上的測試。它的輸出是經過驗證的嵌入式代碼。

3. PiL(Processor
in Loop)處理器在環

將代碼編譯成目標系統程序,然後在PC上虛擬目標硬體環境(例如Simics,dSPACE),並進行測試。它的輸出是經過驗證的目標程序。

4. HiL(Hardware
in Loop)硬體在環

將目標系統程序燒入實際硬體設備,並進行測試或者汽車標定。


基於模型設計的好處就是,
作為系統工程師的想法,通過簡單拉下模型,就能馬上進行迭代看效果,
而不需要再掌握其他比如嵌入式軟體設計,硬體設計等知識,
實驗一個想法僅需要軟體工程師配合你才能做。

系統工程師能真正把注意力集中到系統開發上,而非其他額外的知識上。
代碼生成/模擬/硬體在環等方面可以有很多其他替代的產品,只是dspace做的更好一些。

相當於替你解決了系統設計之外的例如 軟體製作,硬體製作,環境搭建等所有的問題。


快速控制原型主要用於對控制策略的驗證上,需要一個設備能實時運行該控制策略,能實時監控控制策略中的所有參數,實時修改裡面的控制參數,並提供圖形化的控制界面用於完成以上操作,dspace具有的強大的硬體性能及簡潔方便的控制界面以及多年汽車電控開發領域的口碑使得它成為快速控制原型開發的主要工具之一,其實目前也有其他的產品,只不過都干不過dspace。 基於模型的設計個人感覺屬於V模式開發中的第一步,用於搭建控制策略及被控對象,來初步驗證控制策略的邏輯性及正確性。


有點不清楚樓主的意圖,這兩個是不同的東西。

快速原型是來驗證你的演算法是不是準確,你只關心你的演算法,其他的交給快速原型的Microautobox
,甚至不用考慮定標,這玩意太好了,不用操心後續一大堆的麻煩事。

基於模型設計是你設計方式的問題,到底是使用代碼 還是simulink建模(這玩意一目了然,邏輯清晰)。


MBD關鍵是自動代碼生成。RCP是虛擬的控制器,連接真實的被控對象來做模擬測試。


推薦閱讀:

TAG:設計 | 軟體工程 | 可用性測試 | 汽車設計 | 汽車電子 |