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

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

基于Simulink的AP AUTOSAR模型剖析與部署測試

2025-05-09 08:40:50·  來源:汽車電子與軟件  
 

01、引  言

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

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

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


1)模型準(zhǔn)備

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

圖片

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

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

open_system("HeadLightControlSystem");

打開總模型文件:HeadLightControlSystem

圖片

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

圖片

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

圖片

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

下面是針對每個模塊的具體分析;

2OutdoorLightSensor分析

圖片

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

打開數(shù)據(jù)字典

圖片

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

圖片

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

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

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

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

圖片

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

3HeadLightController分析

圖片

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

打開Message Triggered Subsystem

圖片

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

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

圖片

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

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

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

圖片

這部分的配置可以理解為,HeadLightController包含兩個服務(wù)的客戶端,一個名為SensorDataIntf的服務(wù),只包含一個Event事件,在HeadLightController模塊中實例化為一個Required類型服務(wù),對外部模塊(OutdoorLightSensor)請求服務(wù),對應(yīng)服務(wù)port名為SensorData;另一個名為HeadLightIntf的服務(wù),只包含一個Method-FF方法,在HeadLightController模塊中實例化為一個Required類型服務(wù),對外部模塊(HeadLightActuator)請求服務(wù),對應(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分析

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

圖片

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

圖片

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

圖片

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

圖片

圖片

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

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

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

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

圖片

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

03、部署與測試

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

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

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

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

2)模型配置

OutdoorLightSensor子系統(tǒng)進行配置

圖片

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

圖片

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

圖片

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

圖片

3)部署模擬

打開Linux運行時管理器

圖片

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

圖片

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

圖片

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

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

圖片

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

圖片

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

圖片

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

圖片

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

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

圖片


04、小  結(jié)

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

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

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

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25