日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車(chē)測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車(chē)測(cè)試網(wǎng)

    • 在線課堂

    • 電車(chē)測(cè)試

基于Simulink的AP AUTOSAR模型剖析與部署測(cè)試

2025-05-09 08:40:50·  來(lái)源:汽車(chē)電子與軟件  
 

01、引  言

本文基于SDV發(fā)展背景,剖析了一份AUTOSAR AP軟件架構(gòu)。包括其主要組成部分、層次結(jié)構(gòu)以及各層之間的交互關(guān)系。為了驗(yàn)證該軟件架構(gòu)的可行性與有效性,計(jì)劃進(jìn)行模擬部署測(cè)試。

CP平臺(tái)一樣,MATLAB/Simulink通過(guò)AUTOSAR Blockset工具箱對(duì)AP平臺(tái)也有了一定的支持,本文將解析下SimulinkAP的模型架構(gòu)以及進(jìn)行簡(jiǎn)單的部署仿真測(cè)試。

02、AP模型導(dǎo)入與服務(wù)接口分析


1)模型準(zhǔn)備

首先準(zhǔn)備一下模型文件,該模型文件來(lái)源于MATLAB Example;

圖片

里面含有一個(gè)總括的模型文件:HeadLightControlSystem.slx;三個(gè)模型引用的文件:HeadLightActuator.slx、HeadLightController.slxOutdoorLightSensor.slx以及數(shù)據(jù)字典:HeadLightControlSystemData.sldd

可以通過(guò)下述命令行找到對(duì)應(yīng)的模型示例文件:

open_system("HeadLightControlSystem");

打開(kāi)總模型文件:HeadLightControlSystem

圖片

這個(gè)架構(gòu)模型有三個(gè)組件,OutdoorLightSensor、HeadLightControllerHeadLightActuator。OutdoorLightSensor處理從傳感器接收到的數(shù)據(jù),并使用自適應(yīng)事件(adaptive events)將數(shù)據(jù)發(fā)送到HeadLightController。HeadLightController調(diào)用HeadLightActuator中的方法,使用自適應(yīng)方法(adaptive methods)打開(kāi)或關(guān)閉前照燈。HeadLightActuator根據(jù)從HeadLightController接收到的輸入打開(kāi)或關(guān)閉汽車(chē)頭燈。

圖片

OutdoorLightSensor 上的名為SensorDataport類(lèi)型是Output,對(duì)應(yīng)的HeadLightController上的SensorDataport類(lèi)型是Input;Interface類(lèi)型是SensorDataIntf;

圖片

HeadLightController上的名為HeadLightport類(lèi)型是Client,對(duì)應(yīng)的HeadLightActuator上的HeadLightport類(lèi)型是Server;Interface類(lèi)型是HeadLightIntf;

下面是針對(duì)每個(gè)模塊的具體分析;

2OutdoorLightSensor分析

圖片

OutdoorLightSensor內(nèi)部模塊與邏輯比較簡(jiǎn)單,將一個(gè)常量OutdoorLightData信號(hào)通過(guò)Event Send模塊轉(zhuǎn)換為message消息,通過(guò)“Bus Element Out”端口發(fā)送出去;Event Send模塊功能是將信號(hào)轉(zhuǎn)換為保留信號(hào)值和數(shù)據(jù)類(lèi)型的事件,專(zhuān)門(mén)服務(wù)于AP的模塊;

打開(kāi)數(shù)據(jù)字典

圖片

該模塊包含一個(gè)Service Interfaces,名為SensorDataIntf,也就是我們從模型概覽中看到的port對(duì)應(yīng)的Interface類(lèi)型;該Service Interfaces只包含一個(gè)Event事件,事件接口名為LightData;

圖片

AP應(yīng)用模塊只包含一個(gè)ProvidedPorts,名為SensorData,對(duì)應(yīng)上面的Service Interfaces;

這兩部分的配置可以理解為,一個(gè)名為SensorDataIntf的服務(wù),只包含一個(gè)Event事件,在OutdoorLightSensor模塊中實(shí)例化為一個(gè)Provided類(lèi)型服務(wù),對(duì)外部模塊(HeadLightController)提供服務(wù),對(duì)應(yīng)服務(wù)port名為SensorData;

Simulink模型中,開(kāi)發(fā)者會(huì)構(gòu)建各種模塊以代表不同的系統(tǒng)組件和功能。這些模塊在映射到AUTOSAR時(shí),需要對(duì)應(yīng)到AUTOSAR軟件組件(SWC)、端口(Port)、數(shù)據(jù)元素(Data Element)等概念上。通過(guò)映射,Simulink中的設(shè)計(jì)能夠轉(zhuǎn)化為AUTOSAR架構(gòu)下的實(shí)現(xiàn),進(jìn)而在ECU(電子控制單元)上運(yùn)行。

因此有如下圖的Simulink模塊和Autosar元素的map關(guān)系:

圖片

名為LightDataBus Element Out Simulink模塊關(guān)聯(lián)了名為SensorDataAutosar Provided Port中包含的LightData事件。

3HeadLightController分析

圖片

該子系統(tǒng)內(nèi)又包含了一個(gè)消息出發(fā)的子系統(tǒng),這個(gè)消息觸發(fā)源,對(duì)應(yīng)的Bus Element In1,接收的就是OutdoorLightSensor發(fā)過(guò)來(lái)的SensorDataIntf服務(wù)中的LightData事件消息;

打開(kāi)Message Triggered Subsystem

圖片

內(nèi)部包含一個(gè)函數(shù)調(diào)用系統(tǒng)(其實(shí)函數(shù)原型是服務(wù)的port名加上服務(wù)里的方法及對(duì)應(yīng)參數(shù)構(gòu)成)。因此從模型上看,該模塊又包含了其他服務(wù)的Method方法,并且該模塊是作為服務(wù)的客戶端去調(diào)用該服務(wù)的方法;

打開(kāi)該模塊的數(shù)據(jù)字典:

圖片

里面包含兩個(gè)InterfacesSensorDataIntfHeadLightIntf兩個(gè)服務(wù),SensorDataIntf服務(wù)與上面OutdoorLightSensor包含的是一致的,只不過(guò)這里是作為Client端實(shí)現(xiàn)的;

HeadLightIntf這個(gè)服務(wù)包含了一個(gè)setHeadLight方法,該方法只有一個(gè)輸入?yún)?shù),lightStatus,因此可以理解為該方法對(duì)應(yīng)的通信類(lèi)型就是Fire-Forgot類(lèi)型,只有請(qǐng)求參數(shù),無(wú)返回參數(shù)。

HeadLightController包含兩個(gè)RequiredPorts,一個(gè)是與OutdoorLightSensor通信的SensorData port,請(qǐng)求LightData事件數(shù)據(jù)的,另一個(gè)HeadLight,是請(qǐng)求HeadLightActuator設(shè)置燈光狀態(tài)的setHeadLight方法;

圖片

這部分的配置可以理解為,HeadLightController包含兩個(gè)服務(wù)的客戶端,一個(gè)名為SensorDataIntf的服務(wù),只包含一個(gè)Event事件,在HeadLightController模塊中實(shí)例化為一個(gè)Required類(lèi)型服務(wù),對(duì)外部模塊(OutdoorLightSensor)請(qǐng)求服務(wù),對(duì)應(yīng)服務(wù)port名為SensorData;另一個(gè)名為HeadLightIntf的服務(wù),只包含一個(gè)Method-FF方法,在HeadLightController模塊中實(shí)例化為一個(gè)Required類(lèi)型服務(wù),對(duì)外部模塊(HeadLightActuator)請(qǐng)求服務(wù),對(duì)應(yīng)服務(wù)port名為HeadLight;

查看這一部分Simulink模塊和Autosar元素的map關(guān)系:

圖片

名為HeadLightBus Element In2 Simulink模塊關(guān)聯(lián)了名為HeadLightAutosar Required Port中包含的LightData事件。

圖片

名為LightData.setHeadLightBus Element In1 Simulink模塊關(guān)聯(lián)了名為HeadLightAutosar Required Port中包含的setHeadLight方法。

4HeadLightActuator分析

里面又包含一個(gè)函數(shù)子系統(tǒng),不過(guò),從這個(gè)層級(jí)也可以看出該函數(shù)就是服務(wù)HeadLightIntf中的setHeadLight方法;

圖片

打開(kāi)子系統(tǒng),里面展示了函數(shù)的輸入?yún)?shù)以及還有一個(gè)函數(shù)子系統(tǒng);

圖片

再打開(kāi)該函數(shù)子系統(tǒng),里面封裝了了AP AUTOSARara::log模塊,這個(gè)我們后續(xù)仿真的時(shí)候可以觀測(cè)到。

圖片

打開(kāi)數(shù)據(jù)字典:

圖片

圖片

里面包含一個(gè)Interfaces,HeadLightIntf,上面HeadLightController包含的是一致的,只不過(guò)這里是作為Server端實(shí)現(xiàn)的;

HeadLightActuator包含一個(gè)ProvidedPorts,是與HeadLightController通信的HeadLight port,提供設(shè)置燈光狀態(tài)的setHeadLight方法;

這部分的配置可以理解為,一個(gè)名為HeadLightIntf的服務(wù),只包含一個(gè)Method方法(setHeadLight),在HeadLightActuator模塊中實(shí)例化為一個(gè)Provided類(lèi)型服務(wù),對(duì)外部模塊(HeadLightController)提供服務(wù),對(duì)應(yīng)服務(wù)port名為HeadLight

打開(kāi)Simulink模塊和Autosar元素的map關(guān)系:

圖片

名為LightData.setHeadLightBus Element Out1 Simulink模塊關(guān)聯(lián)了名為HeadLightAutosar Provided Port中包含的setHeadLight方法。

03、部署與測(cè)試

1)部署目標(biāo)環(huán)境

AUTOSAR AP應(yīng)用是跑在Linux系統(tǒng)上的,因此需要Linux環(huán)境的虛擬機(jī)或者服務(wù)器,要求可以通過(guò)SSH連接,并且知道其IP;測(cè)試ip192.168.24.92;

并且要安裝Docker;Docker鏡像是一個(gè)特殊的文件系統(tǒng),包含了容器運(yùn)行時(shí)所需的程序、庫(kù)、資源、配置等文件,以及為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如環(huán)境變量、用戶等)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。鏡像使用分層存儲(chǔ)技術(shù),使得鏡像的復(fù)用、定制變得更為容易。容器是鏡像運(yùn)行時(shí)的實(shí)體,可以被創(chuàng)建、啟動(dòng)、停止、刪除、暫停等。容器的實(shí)質(zhì)是進(jìn)程,但與直接在宿主執(zhí)行的進(jìn)程不同,容器進(jìn)程運(yùn)行于屬于自己的獨(dú)立的命名空間,擁有自己的root文件系統(tǒng)、網(wǎng)絡(luò)配置、進(jìn)程空間等。這種隔離性使得容器封裝的應(yīng)用比直接在宿主運(yùn)行更加安全。

這里要做這個(gè)模擬部署,Docker是必須的,因?yàn)?/span>MATLAB是要通過(guò)XCP連接,創(chuàng)建Docker鏡像,AP應(yīng)用運(yùn)行在該鏡像實(shí)例化的容器內(nèi)。

2)模型配置

對(duì)OutdoorLightSensor子系統(tǒng)進(jìn)行配置

圖片

代碼生成→ 接口→ external mode(外部模式)勾選上

圖片

硬件實(shí)現(xiàn)要配置為:Embedded Coder Linux Docker Container

圖片

配置XCP服務(wù)器,輸入目標(biāo)機(jī)的IP

圖片

3)部署模擬

打開(kāi)Linux運(yùn)行時(shí)管理器

圖片

輸入配置信息,并Connect;如果之前并未連接過(guò)該Linux環(huán)境,Connect會(huì)失敗,需要點(diǎn)擊旁邊的Update Target,這步驟就是將模擬部署需要的鏡像matlab-ecoder-linuxruntime-image發(fā)送過(guò)去,這一步驟時(shí)間可能較長(zhǎng);如果之前連接過(guò)該Linux環(huán)境,進(jìn)入該界面后會(huì)自動(dòng)連接上;

圖片

配置,目標(biāo)APP在目標(biāo)Linux環(huán)境下的安裝位置;選擇一個(gè)僅自己使用的文件系統(tǒng)下就好;

圖片

點(diǎn)擊Creat&Deploy  Application Package,選擇子系統(tǒng)slx文件;三個(gè)子系統(tǒng)重復(fù)這個(gè)操作;

編譯子系統(tǒng),生成mldatx文件,發(fā)送到Linux環(huán)境中,自動(dòng)部署;

圖片

對(duì)Sensor這個(gè)app啟動(dòng)Monitor&Tune,對(duì)ControllerActuator這兩個(gè)app啟動(dòng) Start Application;將三個(gè)應(yīng)用都啟動(dòng),并觀測(cè);

圖片

因在Actuator模塊中封裝了ara::log模塊,所以從log上可以看到對(duì)應(yīng)燈光狀態(tài)值為1;

圖片

修改Sensor模塊中輸入的lightData,使其大于5,從log中可以看出此時(shí)燈光狀態(tài)值變?yōu)榱?/span>1

圖片

Linux環(huán)境中也可以看出正在運(yùn)行的matlab linux環(huán)境下的 ecoder image;

同樣,也可以查看上面三個(gè)模塊app對(duì)應(yīng)的進(jìn)程。

圖片


04、小  結(jié)

本文詳細(xì)的剖析了一個(gè)AUTOSAR AP應(yīng)用層模型,想要全面揭示其AP架構(gòu)設(shè)計(jì)背后的邏輯與精髓,分析其各個(gè)核心元素含義,這些元素作為AUTOSAR AP模型構(gòu)建的基礎(chǔ),包括但不限于軟件組件(SWCs)、服務(wù)、服務(wù)接口、通信Port以及數(shù)據(jù)管理機(jī)制(如客戶端-服務(wù)器模式的數(shù)據(jù)訪問(wèn))并且解析了與Simulink模型的對(duì)應(yīng)關(guān)系;

后面又搭建環(huán)境,部署應(yīng)用,測(cè)試了模型的邏輯性,這一過(guò)程不僅驗(yàn)證了模型設(shè)計(jì)的正確性,也體現(xiàn)AUTOSAR AP平臺(tái)在實(shí)際開(kāi)發(fā)中的靈活性與高效性。

這個(gè)過(guò)程體現(xiàn)了AUTOSAR AP平臺(tái)的一種開(kāi)發(fā)方法,基于MBD的開(kāi)發(fā)帶來(lái)了一定的直觀性的便利,但在面對(duì)復(fù)雜的AUTOSAR AP元素配置時(shí),其直接性仍有待提升。特別是當(dāng)涉及到大量細(xì)致的配置項(xiàng)時(shí),MBD方法可能無(wú)法完全覆蓋所有細(xì)節(jié),需要開(kāi)發(fā)者結(jié)合文檔與經(jīng)驗(yàn)進(jìn)行手動(dòng)調(diào)整;因此可選擇性的交流本文的開(kāi)發(fā)思路,而非具體的配置項(xiàng)。

分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25