賴禹能,周平,吳靜奇
博世華域轉向系統有限公司,上海 201821)
近幾年隨著汽車項目與產品的增加,轉向系統產品開發過程中的試驗報告也成倍增加。由于轉向系統各個項目規范要求差異較大,撰寫報告時需要根據不同規范統計數據并出具不同的試驗報告,人工方式整理數據以及撰寫報告消耗了大量時間,數據處理與報告整理錯誤率較高。轉向系統試驗報告主要涉及EPSc管柱、機械管柱以及中間軸產品,所涉及的試驗報告按照試驗階段涉及轉向系統送樣、DV、PV試驗以及型式試驗。將工程師從眾多繁瑣的數據整理與報告撰寫事物中解脫出來,轉向系統試驗報告自動化具有重大實用價值。
轉向系統報告自動化軟件能夠在主流配置的計算機上運行,要求已安裝6.5版本以上MATLAB軟件,或者已安裝7.13版本的程序運行環境MATLAB Compiler Runner。使用MATLAB Compiler Runner作為運行環境時,該軟件根據計算機操作系統不同分為32位與64位兩種,應根據實際情況下載安裝并使用對應版本的轉向系統報告自動化軟件。采用MATLAB的調用Word Com組件能力[1-4],軟件自動讀取處理數據后,輸出到Word文檔中,自動完成文字鍵入、數據表格填充以及數據圖片粘貼。
轉向系統報告自動化軟件是Windows XP/Vista/Win7環境下的軟件程序,用以解碼、處理和評估實驗室測試系統下載的測試數據文件(*.wwt),并自動生成基于不同產品規范的試驗報告。試驗數據范圍覆蓋功能試驗、強度試驗、疲勞試驗。用戶可以使用該軟件設計不同產品規范的軟件計算策略,用于自動判斷測試數據是否滿足規范要求;加載測試數據路徑、測試規范、報告信息庫后,該軟件可以自動加載處理數據,一鍵生成用戶自定義格式的Word試驗報告,判斷數據是否合格,批量顯示數據曲線。可在人機交互界面中自由設置、保存以及加載不同產品規范,根據自定義的產品規范生成對應的數據表格;報告形式可選擇數據匯總報告或者標準報告;不同樣件的數據曲線可選擇疊加顯示或者分開顯示[5]。圖1為MATLAB GUI 自動生成報告過程。

圖1 MATLAB GUI 自動生成報告過程
數據處理步驟包括:選擇1級文件夾,讀取該文件夾下包含的所有2級子文件夾,然后分別讀取各子文件夾下的所有數據。關鍵的幾個程序命令如下:
findpath = uigetdir(); %打開文件夾選擇對話框
files = dir(findpath); %獲得指定文件夾下的所有子文件夾和文件
if files(i).isdir==1%判斷是否有文件夾
samplelen=samplelen+1;
end%統計文件夾數量
name100=strfind(files(i,1).name,′100%′);%統計包含100%的文件夾
rangeinfor{1}=get(handles.edit51,′String′); %獲取面板中最大助力設置值
filepath=[findpath,′′,Sample(1:(namecount0(i)-1))];%文件夾路徑
files = crawler(filepath, [′.*orsion.*tiffn.*.wwt′], 1); %讀取符合關鍵字要求的文件
FILE=fopen(filename,′r′,′l′,′latin1′);%打開wwt格式文件
HEADER.COMMENT1 = (fread(FILE,length_comment,′*char′))′;%讀取wwt格式文件數據
數據讀取出來后,需要根據試驗規范計算出統計值,并將所有數據點繪制成曲線圖。
cmpmax=Pfinder(Angle_M,P_end,0.01); % 讀取某個數據點的數據排列序號
p1 = figure(Pcn); %打開顯示圖框
plot(Lenkwinkel, Dss,′color′,c{linenum},′LineWidth′,linesize)%顯示數據點曲線圖
MATLAB首先需要判斷Word服務器是否已經打開,如果打開了服務器,再判斷是否有空文檔已經打開。通常服務器打開,一般有空文檔打開,若沒有打開,MATLAB將會新建一個空文檔用于輸出報告。參考以下命令:
Try
%若Word服務器打開,返回其句柄Word
Word = actxGetRunningServer(′Word.Application′);
Catch %否則,創建一個Microsoft Word服務器,返回句柄Word
Word =actxserver(′Word.Application′);
end;
Word.Visible = 1; %若測試文件存在,打開該測試文件,否則,新建一個文件,并保存,文件名為測試.doc
if exist(filespec_user,′file′);
Document = Word.Documents.Open(filespec_user);
else
Document = Word.Documents.Add;
Document.SaveAs2(filespec_user);%用于word文檔的輸出
end
空文檔新建好后,需要設定頁面大小,以下命令用于設定頁面大小:
Document.PageSetup.TopMargin = -133; % 設置上邊緣位置
Document.PageSetup.BottomMargin = 40.7;
Document.PageSetup.LeftMargin = 63.4;
Document.PageSetup.RightMargin = 28.3;
標準報告需要生成首頁信息欄,如圖2所示,包括了試驗名稱、項目名稱、零件號碼、產品狀態、客戶信息、工程師名、測試規范、接受標準、樣件號碼、簽名欄、試驗時間與試驗結果等信息,這些信息中一部分來自預先保存好的Project Information的Excel表格中,其他信息直接來自于試驗數據的判斷,比如試驗時間、樣件號碼與試驗結果。設置表格以及填充基本信息如下:
Specpath=[findpath,′Project
information.xlsx′];%路徑名稱
[~, ~, Spec] = xlsread(Specpath,
′Specification′); %讀取預先保存好的Excel表格中的規范
DTI.Borders.OutsideLineStyle = ′wdLineStyleSingle′; %設置外邊框的線型
DTI.Borders.OutsideLineWidth = ′wdLineWidth075pt′; %設置線寬
DTI.Borders.InsideLineStyle = ′wdLineStyleSingle′; %設置內邊框的線型
DTI.Rows.Alignment = ′wdAlignRowLeft′; % 設置行對齊方式
DTI.Columns.Item(1).Width = 140;
DTI.Columns.Item(2).Width = 350;
%設置單列寬度
DTI.Cell(2,2).Range.Text =cell2mat(Information(9,2)); %表格中填充基本信息
handle = Document.Shapes.AddPicture(which(′sign.tif′), [], [], 10, 0, 455, 92); %添加簽字欄圖片
Selection.Start = Content.end; %定義開始的位置
標準報告的頁眉中中需要添加公司名稱、標識與報告號,設置如下:
Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek
CurrentPageHeader′; % 光標進入頁眉區域準備編輯
Selection.Range.Paragraphs.Alignment=′wdAlignParagraphLeft′; %光標往左靠齊
try handle=Selection.InlineShapes.AddPicture(which(′BoschHUAYU.tif′)); %添加公司名稱圖片
handle=Selection.InlineShapes.AddPicture(which(′Bosch.tif′)); %添加公司標識圖片
end
Selection.Text=′TRP-VR-S001-V1.1′; %添加文字描述
Selection.Font.Size=12; %設置文字大小
Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek
CurrentPageFooter′; % 光標進入頁腳設置區域
Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek
MainDocument′; % 光標退出頁腳區域,進入主文檔

圖2 Word標準報告首頁
生成數據表格需要包括樣件號、接受標準、數據值,并且具有判斷數據超差提示功能。生成數據表格主要用到的命令如下:
Tables= Document.Tables.Add(Selection.Range,Sn1+2,NumC);%生成需要的表格
DTI.Cell(i,j).Range.Text=word_data{i,j,10};%填充數據值
DTI.Cell(i,j).Range.Font.ColorIndex =6; %設置數據字體顏色
DTI.Cell(i,j).Shading.BackgroundPatternColorindex=7;%設置表格背景顏色
示例見圖3,數據首列根據接受標準判斷,數據超差則采用黃色背景紅色字體提示。

圖3 報告數據表格
數據圖片批量生成后,將圖片粘貼至Word文檔中,命令如下:
hgexport(zfd(i,j), ′-clipboard′); %復制圖片句柄
Selection.Paste;%粘貼圖片
Selection.EndKey;%光標移至尾部
close(figure(i));%粘貼完后關閉圖片
首先啟動MATLAB GUI轉向系統報告自動化軟件.exe,見圖4,生成正式報告需要在文本框中輸入報告基本信息,生成數據匯總報告可以直接選擇EPSc&i-shaft、機械管柱、疲勞、強度按鍵。保存報告基本信息點擊保存按鍵選擇數據文件保存路徑。如果之前已經定義好了報告基本信息,可以點擊加載按鍵選擇數據文件加載路徑。
在程序主界面點擊EPSc&i-shaft按鍵,進入EPSc&i-shaft報告自動化界面,如圖5所示。黃色單選按鈕ON:sub;Off:QS,軟件默認生成QS數據匯總報告,點擊則生成Sub標準報告。規范設置內容包括了EPSc與I-shaft,分別涉及基本功能數據的接受標準與取值范圍。軟件默認設置了一些基本規范,可以快速用于產品數據的判斷匯總。使用者可以根據項目規范自定義接受標準,點擊規范保存按鍵保存;點擊規范加載按鍵加載已經保存過的規范。規范設置空格可以識別數字,以及字母NA(不統計該項)與FYI(該項僅供參考)。生成EPSc報告,點擊選擇EPSc單選按鍵(軟件默認);生成I-shaft報告,點擊選擇I-shaft單選按鍵。

圖4 轉向系統報告自動化軟件界面

圖5 EPSc&i-shaft報告自動化界面
I-shaft TTR下Range文本框中可以自定義扭矩讀取角度范圍;I-shaft 扭轉間隙下filter文本框中可以自定義扭轉間隙wwt數據的讀取關鍵詞,默認讀取lash。以下以生成I-shaft QS數據匯總報告為例。點擊選擇I-shaft單選按鍵,生成I-shaft報告。點擊分開顯示單選按鍵,可以設置數據曲線單獨顯示,默認設置數據曲線疊加顯示。點擊數據加載按鍵選擇數據加載路徑,選擇文件夾i-shaft test,其中包括了6個子文件夾,子文件夾通過有無50%與100%關鍵詞命名可以識別不同疲勞階段復測的功能數據,即0%、50%與100%三個階段。每個子文件夾下保存了wwt格式的中間軸功能數據。點擊開始按鍵,開始生成QS數據匯總報告,分別包括了0%與100%的功能數據表格。
點擊轉向系統報告自動化軟件界面的機械管柱按鍵,打開機械管柱報告自動化界面,如圖6所示;點擊疲勞按鍵,打開疲勞報告自動化界面,如圖7所示;點擊強度按鍵,打開強度報告自動化界面,如圖8所示。

圖6 機械管柱報告自動化界面

圖7 疲勞報告自動化界面
本文作者采用MATLAB GUI開發的轉向系統報告自動化軟件,解決了根據不同試驗規范設置數據讀取要求、批量處理與判斷試驗數據是否滿足產品規范以及自動生成各種類型報告的問題,大大提高了試驗報告出具效率以及數據處理準確性。