• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      AMT控制軟件測試平臺開發(fā)

      2016-08-12 06:50:31孫名揚趙彬陳志新曹珊中國第一汽車股份有限公司技術(shù)中心長春130011
      汽車技術(shù) 2016年7期
      關(guān)鍵詞:單元測試測試用例軟件測試

      孫名揚 趙彬 陳志新 曹珊(中國第一汽車股份有限公司技術(shù)中心,長春 130011)

      ?

      AMT控制軟件測試平臺開發(fā)

      孫名揚趙彬陳志新曹珊
      (中國第一汽車股份有限公司技術(shù)中心,長春 130011)

      【摘要】為提高AMT C程序離線測試的效率,利用MATLAB S-Function對C程序進行集成,使用Excel進行自動化測試用例腳本編制。通過Simulink平臺對嵌入式C程序進行模型在環(huán)搭建,在項目開發(fā)前期對某款A(yù)MT控制軟件進行測試及調(diào)試。所設(shè)計開發(fā)的測試平臺通過了實際項目驗證。在一汽自主開發(fā)的多款A(yù)MT控制軟件測試中應(yīng)用,形成AMT軟件測試開發(fā)平臺,有效提高了離線測試的效率和準確度。

      主題詞:AMT嵌入式軟件測試Matlab

      AMT是在干式離合器和齒輪變速器基礎(chǔ)上加裝單片機控制的自動變速系統(tǒng)。隨著汽車電子技術(shù)的快速發(fā)展,在AMT控制軟件開發(fā)過程中,高效快速的開發(fā)方式必不可少。一汽自主開發(fā)的9擋自動變速器就要求軟件開發(fā)測試與機械執(zhí)行器、變速器同步開發(fā)。開發(fā)人員通常利用C語言進行自動變速器程序的開發(fā),但是嵌入式編譯器測試方法復(fù)雜、無法與被控對象同時進行測試的缺點明顯,因此將C代碼嵌入到Simulink軟件平臺中進行離線測試,成為一種通用的測試方法。

      1 S-Function使用原理

      S-Function可以使用MATLAB?、C、C++、Ada或For?tran語言來編寫。使用MEX實用工具,將C、C++、Ada 和Fortran語言的S-Function編譯成MEX-文件,在需要的時候可與其它MEX-文件一起動態(tài)連接到Matlab中。S-Function使用一種特殊的調(diào)用格式與Simulink方程求解器相互作用,其與發(fā)生在求解器和內(nèi)置Simulink塊之間的相互作用非常相似。S-Function的形式是非常通用的,且適用于連續(xù)、離散和混合系統(tǒng)。C程序嵌入Simulink仿真環(huán)境示意如圖1所示。

      圖1 C程序嵌入Simulink仿真環(huán)境示意

      2 C程序嵌入Simulink搭建方法

      定義了S-function模塊的C MEX-file需要在仿真過程中向Simulink提供模型信息。在仿真過程中Simu?link、ODE求解器、MEX-file協(xié)作完成指定任務(wù)。其任務(wù)包括定義初始條件和模塊特性,計算微分、離散狀態(tài)和輸出。Simulink與C MEX-file S-function模塊的交互仍是通過S-function的回調(diào)方法,每個回調(diào)方法執(zhí)行一個預(yù)定義的、實現(xiàn)仿真所需功能的任務(wù)。C MEX-file可以訪問并修改Simulink內(nèi)部用來存儲S-function信息的數(shù)據(jù)結(jié)構(gòu)。更多的回調(diào)方法和對Simulink內(nèi)部數(shù)據(jù)結(jié)構(gòu)的訪問能力使得C MEX-file S-function可以實現(xiàn)更豐富的模塊特性。S-Function內(nèi)部函數(shù)回調(diào)流程如圖2所示。

      圖2 S-Function內(nèi)部函數(shù)回調(diào)示意

      有兩種方式可以將C程序轉(zhuǎn)換到Simulink平臺中,第1種方法是使用C MEX-file S-function模板文件將C文件轉(zhuǎn)換成Simulink庫函數(shù)并調(diào)用,第2種方法使用Simulink自帶的S-Function Builder來編譯C文件生成庫函數(shù)。對比兩種轉(zhuǎn)換方式可知,通過S-Function Builder可以更易將用戶提供的C代碼轉(zhuǎn)換到Simulink平臺中。

      S-Function Builder編譯C文件步驟如下:

      a.將C文件添加到S-Function Builder IDE編輯界面中,設(shè)置輸入、輸出接口數(shù)量;

      b.添加C程序文件名稱及位置,該處C程序文件可以是封裝好的庫文件(.lib)、輸出文件(.o)或者是未編譯的C文件(.c),添加頭文件(.h)名稱及位置;

      c.編寫S-Function與C文件的接口程序,將S-Function與C程序的輸入、輸出接口進行賦值;

      d.調(diào)用需要被測試的函數(shù),由于C程序文件都已經(jīng)添加到S-Function中,此時各C文件函數(shù)可以進行隨意調(diào)用;

      e.在S-Function中選擇Build,對C文件進行S-Function庫文件轉(zhuǎn)換,如果第1次使用S-Function編譯器,需要在Matlab中輸入“Mex-setup”選擇默認編譯工具即可。

      S-Function Builder編譯器如圖3所示。

      3 C程序嵌入Simulink測試

      在S-Function Builder環(huán)境中單獨調(diào)用需要被測試的函數(shù),設(shè)置被測函數(shù)的輸入、輸出接口變量,程序編譯后生成以“.mexw32”為后綴的庫文件,將該庫文件添加到Simulink的S-Function模塊中。此時C程序文件已經(jīng)可以在Simulink環(huán)境下運行。

      圖3 S-Function Builder編譯器

      3.1在Simulink環(huán)境下的單元測試

      單元測試是指對軟件中的最小可測試單元進行檢查和驗證。單元測試是在軟件開發(fā)過程中進行的最低級別的測試活動,軟件的獨立單元將與程序其它部分相隔離的情況下進行測試。

      Simulink環(huán)境下的單元測試,首先要將C程序生成的庫文件添加到Simulink的S-Function模塊中,并利用Signal builder模塊作為輸入模塊與被測文件(S-Func?tion模塊)進行連接,用Scope模塊連接S-Function模塊的輸出。在S-Function中,每次調(diào)用一個函數(shù)作為被測模塊,連接輸入接口的Signal builder作為測試的驅(qū)動模塊。連接輸出的Scope作為測試的輔助模塊。測試用例的編輯和設(shè)計都在驅(qū)動模塊中進行。單元測試的步驟為依據(jù)軟件設(shè)計說明書對軟件功能進行分解,編寫軟件測試說明書和測試用例,按照測試用例對最小函數(shù)進行功能性的單元測試,單元測試環(huán)境搭建方法見圖4。

      圖4 Excel嵌入Simulink測試用例示意

      3.2在Simulink環(huán)境下的單元測試實例

      以換擋策略模塊為例進行軟件的單元測試。在車輛靜止時起動發(fā)動機并進行掛擋操作。為便于進行測試用例的規(guī)范化編寫,在Excel中進行測試輸入值的編輯,然后利用M語言將輸入值導(dǎo)入到Simulink的Signal Builder中,當測試結(jié)束時將測試結(jié)果再從Simulink中導(dǎo)出到Excel。

      測試用例的輸入值INP_pos_ShiftLever為換擋手柄位置,INP_rpm_EngSpd為發(fā)動機轉(zhuǎn)速,INP_rpm_IsSpd為輸入軸轉(zhuǎn)速。INP_opt_DrvMainReq為車輛運行模式請求。當手柄從空擋(INP_pos_ShiftLever=0)換到前進擋(INP_pos_ShiftLever=2)時,輸出結(jié)果為請求換擋擋位為1擋(AST_gear_ReqGear=1),換擋請求模式進程(AST_proc_ASTProc)為2,表示前進方向。

      在該換擋策略模塊測試中使用了M語言編程技術(shù),提高了軟件測試的效率,便于進行測試用例的維護和修改。

      3.3在Simulink環(huán)境下的集成測試

      模型在環(huán)仿真(MIL)是仿真測試系統(tǒng)在Simulink平臺上模擬受控對象的運行狀態(tài),通過S-Function的方式與被測ECU程序進行集成,對被測的ECU進行全方面、系統(tǒng)的測試。從安全性、可行性和成本上考慮,MIL測試不僅可以減少實車路試的次數(shù)、縮短開發(fā)時間和降低成本,而且可以提高ECU的軟件質(zhì)量、降低軟件風險。本文依靠S-Function集成的方式,將用戶提供的C程序和預(yù)先搭建的被控對象模型(變速器模型、整車模型、駕駛員模型、道路模型等)進行集成。在此基礎(chǔ)上,對自動變速器控制軟件程序在Simulink上進行離線仿真,檢測用戶編寫的C程序的正確性。測試圖例見圖5。

      圖5 Simulink模型在環(huán)測試系統(tǒng)構(gòu)成示意

      模型在環(huán)測試在自動變速器載貨汽車模型上進行,整車平臺由Simulink環(huán)境搭建,駕駛員模型包括油門踏板、制動、手柄、轉(zhuǎn)向盤、儀表組合開關(guān)等組成,整車模型則由發(fā)動機模型、變速器模型、轉(zhuǎn)向系統(tǒng)、制動系統(tǒng)等部件組成,道路模型包括對輪胎的道路阻力、坡度阻力、風阻等計算組成,操作機構(gòu)包括選換擋控制執(zhí)行器、離合器控制執(zhí)行器等。

      MIL模型的測試方法和單元測試原理相同。測試用例的輸入在MDL_IN模塊中,輸入信號為駕駛員模型中的油門踏板、制動、手柄位置、轉(zhuǎn)向盤、組合開關(guān)等,實際監(jiān)測的輸出數(shù)據(jù)在MDL_OUT模塊中,輸出信號為擋位、車速、發(fā)動機轉(zhuǎn)速等信息。AMT軟件的各種功能如圖6所示。MIL集成測試可以方便地對控制軟件的各種功能及性能項進行測試。

      圖6 自動變速器軟件功能框圖

      系統(tǒng)調(diào)度管理

      ·系統(tǒng)上電狀態(tài)檢測

      ·安全掉電處理

      ·執(zhí)行器及傳感器檢測·系統(tǒng)工作模式調(diào)度

      換擋規(guī)律

      ·自動換擋模式·手動換擋模式·空擋滑行模式

      診斷及安全處理·故障診斷

      ·故障處理

      ·安全提示

      ·車輛跛行

      離合器控制

      ·離合器位置控制·自動起步控制

      ·兩腳離合器控制·滑磨過載保護

      發(fā)動機控制·扭矩控制·轉(zhuǎn)速控制·超速保護·熄火保護

      變速器控制

      ·選換擋過程控制·選換擋位置控制·換擋同步控制

      ·副箱同步控制

      傳感器輸入·輸入軸轉(zhuǎn)速·輸出軸轉(zhuǎn)速·離合器位置·傳感器診斷

      執(zhí)行器輸出

      ·選換擋電機控制·離合器電磁閥控制·電機故障診斷

      ·電磁閥故障診斷

      下線檢測

      ·整車參數(shù)刷寫

      ·離合器摩擦點調(diào)整·傳感器及驅(qū)動檢測·故障診斷

      3.4在Simulink環(huán)境下的集成測試實例

      在MIL集成測試階段對換擋同步程序進行測試,輸入信號包括目標擋位、換擋命令,輸出監(jiān)測信號包括換擋力、換擋位置、發(fā)動機轉(zhuǎn)速、輸入軸轉(zhuǎn)速、輸入軸目標轉(zhuǎn)速。

      換擋同步過程判定如下:

      a.輸入軸轉(zhuǎn)速與目標轉(zhuǎn)速差小于20 r/min;

      b.換擋傳感器位置在同步設(shè)定值范圍內(nèi);

      c.該過程持續(xù)3個周期,進入換擋鎖止;

      d.該過程的換擋力輸出采用位置式PID。

      在對換擋同步的模型在環(huán)測試時,發(fā)現(xiàn)輸入軸轉(zhuǎn)速在掛擋時轉(zhuǎn)速差過大,如圖7所示。

      圖7 換擋同步過程出現(xiàn)問題的測試結(jié)果

      輸入軸轉(zhuǎn)速是在受到接合套與齒面斷面的摩擦力后才使輸入軸轉(zhuǎn)速與目標轉(zhuǎn)速同步的,對程序進行細致分析后發(fā)現(xiàn)在同步成功標志判定時,位置判定和轉(zhuǎn)速判定應(yīng)該是“與”的關(guān)系,即程序中“或”(||)應(yīng)改為“與”(&&)。

      更改后的曲線如圖8所示??芍?,在換擋前轉(zhuǎn)速已經(jīng)同步,減少了換擋鎖止時對齒輪的沖擊。

      圖8 換擋同步過程更改后的測試結(jié)果

      4 結(jié)束語

      利用Simulink平臺建立C Mex S-Function測試嵌入式C程序,能夠有效解決嵌入式C程序離線測試繁瑣的問題,不僅提高了軟件開發(fā)效率,同時也能提高工程人員的工作效率。

      利用Simulink平臺進行AMT模型在環(huán)的軟件搭建及離線仿真測試,解決了控制軟件只能在實車或試驗臺上才能進行測試的問題。

      通過Excel腳本導(dǎo)入的方式進行Simulink測試,能夠解決測試效率低下的問題,提高測試用例的可讀性和可維護性。

      參考文獻:

      1肖東岳,李英堂,周強,等.基于Matlab的步進電機自動化測試系統(tǒng).制造業(yè)自動化,2012,34(17):30~31.

      2汪萍萍,胡獻華,洪濤,等.電子電器產(chǎn)品嵌入式軟件單元測試技術(shù)研究.工業(yè)控制計算機,2013,26(9):21~23.

      3張猛,毛亮.航天嵌入式軟件的單元測試方法探討.航天器工程,2006(2):32~35.

      4溫劍鋒,陳朋,王云鵬,等.復(fù)用技術(shù)在鐵路軟件測試的應(yīng)用研究.第9屆中國智能交通年會大會論文集,2014.

      5劉思思,劉迪.飛行控制軟件單元測試方法研究.軟件導(dǎo)刊,2015(5):29~32.

      (責任編輯晨曦)

      修改稿收到日期為2016年1月1日。

      中圖分類號:U463.2

      文獻標識碼:A

      文章編號:1000-3703(2016)07-0040-03

      Development of Test Platform for the Control Software of Automated Mechanical Transmission

      Sun Mingyang,Zhaobin,Chen Zhixin,Cao Shan
      (China FAW Co.,Ltd.R&D Center,Changchun 130011)

      【Abstract】To improve the offline test efficiency of AMT C program,we use MATLAB S-Function to incorporate C program into the platform,and use Excel for the establishment of automatic test case script.Model in-the-loop establishment is made for the embedded program C with Simulink platform,and control software of an AMT is tested and debugged at the early stage of project.The designed test platform has been verified in actual project.The test platform has been applied in the control software test of several AMTs independently developed by FAW,and AMT software test development platform is established,which improves offline test efficiency and accuracy effectively.

      Key words:AMT,Embedded code test,Matlab

      猜你喜歡
      單元測試測試用例軟件測試
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      基于OBE的軟件測試課程教學改革探索
      計算機教育(2020年5期)2020-07-24 08:53:20
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      基于混合遺傳算法的回歸測試用例集最小化研究
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      軟件測試工程化模型及應(yīng)用研究
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      一年級上冊第五單元測試
      一年級上冊一、二單元測試
      第五單元測試卷
      彰化县| 麻城市| 任丘市| 南宫市| 铜陵市| 桦川县| 溆浦县| 柳州市| 铜梁县| 嘉鱼县| 长汀县| 辽中县| 清水河县| 彰化市| 大荔县| 荆门市| 襄城县| 湘西| 花垣县| 南和县| 凤冈县| 南川市| 浦城县| 万盛区| 桑日县| 遂溪县| 项城市| 平陆县| 苍溪县| 伊宁县| 家居| 灌阳县| 安西县| 长汀县| 维西| 兰溪市| 应城市| 平和县| 山阴县| 界首市| 同江市|