一、 概述
我們知道,Saber軟件在一開(kāi)始就提供了與Matlab/Simulink的聯(lián)合仿真功能,工程師們可以在Simulink中驗(yàn)證設(shè)計(jì)中的軟件部分,同時(shí)在Saber中驗(yàn)證設(shè)計(jì)的硬件部分,從而實(shí)現(xiàn)軟硬件設(shè)計(jì)驗(yàn)證的完美統(tǒng)一。
聯(lián)合仿真是通過(guò)SaberHDL仿真器和Simulink之間的接口實(shí)現(xiàn)的,它允許用戶進(jìn)行交互式設(shè)計(jì)仿真。Saber協(xié)同仿真接口提供以下功能:
2、提供用戶界面,支持從Saber模型自動(dòng)生成MAST模板和SaberRD符號(hào)。
Saber聯(lián)合仿真接口是通過(guò)仿真引擎之間的同步通信方法啟用的。在同步協(xié)同仿真方法中,每個(gè)仿真引擎在時(shí)間上獨(dú)立進(jìn)行,并在預(yù)定的周期內(nèi)交換數(shù)據(jù),稱為協(xié)同仿真步長(zhǎng)(dt)。
Saber與Simulink協(xié)同仿真的采用的同步方法具有以下優(yōu)點(diǎn):Simulink用戶接口在仿真期間是活動(dòng)的和可訪問(wèn)的,當(dāng)Simulink端需要時(shí)能夠有效采樣。
本文通過(guò)隨附的示例介紹Saber與Matlab聯(lián)合仿真的操作過(guò)程。我們使用的SaberRD版本為2019.06,Matlab版本為2018b。
二、 示例簡(jiǎn)介
示例文件為throttle_controller.rar壓縮包。解壓后內(nèi)容如下:
其中:
1、Matlab_ini文件是該工程對(duì)應(yīng)的Saber算法工程文件
2、Only_Saber是使用Saber算法實(shí)現(xiàn)的仿真工程,用于比對(duì)。
3、Saber_Matlab_ini是Saber和Saber聯(lián)合仿真初始工程,需要將Saber算法導(dǎo)入Saber仿真工程。
4、Saber_Matlab_ini_final是Saber和Saber聯(lián)合仿真最終工程,可以實(shí)現(xiàn)Saber和Matlab的聯(lián)合仿真。
5、Saber_use_model_form_Matlab_export是將Simulink模型轉(zhuǎn)換成Saber模型后的Saber工程,該工程仿真時(shí)不依賴于Simulink,獨(dú)立調(diào)用Saber仿真器。
三、 Only_Saber工程演示
在Only_Saber工程中,controller_Saber算法由Saber實(shí)現(xiàn),工程文件如下:
打開(kāi)throttle_control_system_saber.ai_dsn工程如下:
controller_Saber 模型如下:
對(duì)throttle_control_system_Saber.ai_dsn電路進(jìn)行0s~20s瞬態(tài)仿真,打開(kāi)Contrl_out(即controller_Saber模型輸出)輸出結(jié)果如下:
四、 Saber和Simulink聯(lián)合演示
第一步:設(shè)置Matlab工作路徑
打開(kāi)Matlab2018b,點(diǎn)擊“設(shè)置路徑”,在彈窗中點(diǎn)擊“添加文件夾”,輸入“Saber_Matlab_ini”工程所在目錄,點(diǎn)擊“選擇文件夾”如下:
下圖中框起來(lái)的路徑即為工作路徑,點(diǎn)擊“保存”,如下圖所示:
第二步:在Saber中配置Matlab接口
打開(kāi)SaberRD2018.09軟件,在model菜單中,打開(kāi)Matlab配置對(duì)話框,如下圖:
在“Simulink Cosimulation Tool”對(duì)話框中選擇 “edit-Matlab-Setup”,如下圖所示:
如下圖,選擇Simulink 9.5版本,Matlab install Root選擇所在電腦安裝的安裝路徑,Matlab Work Directory選擇Matlab工作路徑。設(shè)置完成后點(diǎn)擊“OK”。
選擇Edit-Matlab-Start
此時(shí)在Matlab work路徑下會(huì)生成如下文件:
設(shè)置好后,關(guān)閉對(duì)話框。
第三步:打開(kāi)Saber算法文件
打開(kāi)“C:UsersGT_yqDesktopthrottle_controllerSaber_Matlab_ini”路徑下的“THROTTLE_CONTROLLER.mdl”文件,如下圖:
打開(kāi)后如下圖所示:
第四步:添加Sabercosim模塊
打開(kāi)“C:Program FilesMATLABR2018bwork(Matlab2018b軟件安裝路徑)”路徑下的SaberCosim模塊,并拖放到“C:UsersGT_yqDesktop throttle_controller Saber_Matlab_ini(工程所在目錄)”下。在仿真工程左側(cè)對(duì)話框中找到SaberCosim模塊,雙擊打開(kāi),并拖放到“throttle_controller”內(nèi),如下圖所示:
雙擊Sabercosim,設(shè)置“Number of input signals”為1、“Number of output signals”為3,點(diǎn)擊“OK”,如下圖所示:
第五步:添加scop
在“throttle_controller”內(nèi)點(diǎn)擊“Library Browser(即圖標(biāo))”打開(kāi)“Saber Library Browser”對(duì)話框,在搜索框搜索“scop”,并將其拖放到“throttle_controller”內(nèi),如下圖所示:
第六步:添加demux
在“throttle_controller”內(nèi)點(diǎn)擊“Library Browser(即圖標(biāo))”打開(kāi)“Saber Library Browser”對(duì)話框,找到“demux”,并將其拖放到“throttle_controller”內(nèi),如下圖所示:
雙擊demux,設(shè)置“Number of outputs”為3,點(diǎn)擊“OK”,如下圖所示:
第七步:保存
按照下圖所示電路連接,連接完成后保存。
如果算法工程不在Saber仿真工程路徑下,將如下四個(gè)文件拷貝到響應(yīng)仿真工程路徑下。
Demo中可以解壓Saber_Matlab_ini壓縮包,將文件拷貝進(jìn)去。
第八步:打開(kāi)Saber_Matlab_ini下的工程
在Saber中打開(kāi)“Saber_Matlab_ini”文件夾中的電路,如下圖所示:
此時(shí)工程中沒(méi)有算法,需要操作關(guān)聯(lián)Simulink算法。
在“Model”選項(xiàng)卡中點(diǎn)擊圖標(biāo),在彈出的對(duì)話框中點(diǎn)擊新建,再點(diǎn)擊圖標(biāo),選擇“THROTTLE_CONTROLLER.mdl”文件,點(diǎn)擊打開(kāi),如下圖所示:
可以看到如下界面,已經(jīng)打開(kāi)了“THROTTLE_CONTROLLER.mdl”文件,保存后點(diǎn)擊圖標(biāo)放置器件,如下圖所示:
繪制最終電路如下,保存并進(jìn)行仿真。
第九步:運(yùn)行仿真
在Simulate選項(xiàng)卡中設(shè)置0s~2s瞬態(tài)仿真,仿真步長(zhǎng)1us,如下圖所示:
運(yùn)行仿真,仿真結(jié)果如下所示:
五、 其它說(shuō)明
Saber與Simulink協(xié)同仿真也有一定的不足:
1、仿真器之間沒(méi)有錯(cuò)誤控制。
2、對(duì)于連續(xù)或非周期的系統(tǒng),仿真中需要在Saber與Simulink中設(shè)定足夠小的相同仿真步長(zhǎng),以實(shí)現(xiàn)仿真的數(shù)據(jù)交互。
-
仿真器
+關(guān)注
關(guān)注
14文章
1014瀏覽量
83591 -
MATLAB仿真
+關(guān)注
關(guān)注
4文章
175瀏覽量
19890 -
數(shù)據(jù)交互
+關(guān)注
關(guān)注
0文章
28瀏覽量
10470 -
simulink仿真
+關(guān)注
關(guān)注
0文章
75瀏覽量
8550
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論