本發(fā)明涉及一種基于Matlab的汽車整車性能仿真與計(jì)算方法,屬于自動(dòng)控制技術(shù)領(lǐng)域。
背景技術(shù):
目前,隨著新能源汽車技術(shù)的不斷發(fā)展,對(duì)于新能源汽車性能仿真計(jì)算的需求越來越高,而以往應(yīng)用于傳統(tǒng)汽車的傳統(tǒng)的仿真軟件已經(jīng)不能適合現(xiàn)在的新能源汽車使用,傳統(tǒng)的仿真軟件不僅計(jì)算出來的數(shù)據(jù)不準(zhǔn)確詳細(xì),而且仿真速度較慢,自定義配置程序繁瑣,完全不能滿足對(duì)于仿真計(jì)算需求的高效化、精確化、多樣化的要求。
由于現(xiàn)在不同的汽車車型越來越多,每一種汽車車型上的參數(shù)或者零部件都略有不同,不可能為每一輛汽車精確地進(jìn)行建模仿真,因?yàn)?,這樣不但工作量非常巨大,而且人為操作也非常容易出現(xiàn)錯(cuò)誤,使仿真出的結(jié)果和實(shí)際差別很大,完全沒有參考和利用價(jià)值。
目前,傳統(tǒng)現(xiàn)有的仿真計(jì)算軟件,例如,Advisor、Cruise。Advisor使用Simulink進(jìn)行建模,仿真速度較慢,而且對(duì)汽車整車參數(shù)進(jìn)行配置時(shí)需要修改大量參數(shù),另外軟件版本比較舊,在新平臺(tái)上運(yùn)行時(shí)會(huì)有許多問題,其穩(wěn)定性差、計(jì)算速度非常慢,完全不能應(yīng)用于大量數(shù)據(jù)的仿真與計(jì)算。Cruise能夠模塊化的配置汽車整車的每個(gè)零部件參數(shù),但是配置必須要在Cruise制定好的規(guī)則之內(nèi),只能選擇已有的選項(xiàng)進(jìn)行更改,計(jì)算方式全部被封裝在軟件之中,無法查看、修改計(jì)算的方法,靈活性較差,不便于對(duì)多種車型參數(shù)、計(jì)算數(shù)據(jù)的自定義。
為了解決上述問題,有必要提供一種配置簡(jiǎn)單快捷、數(shù)據(jù)計(jì)算速度快、功能自定義方便、自動(dòng)化程度高的汽車整車性能仿真計(jì)算方法及相應(yīng)的軟件。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種能夠克服上述技術(shù)問題的基于Matlab的汽車整車性能仿真與計(jì)算方法,
本發(fā)明的基于Matlab的汽車整車性能仿真與計(jì)算方法通過配置文件定義汽車整車上各個(gè)零部件的參數(shù),并且同時(shí)存儲(chǔ)多種型號(hào)的參數(shù),參數(shù)能夠?qū)崟r(shí)進(jìn)行更改,根據(jù)自己的需求編寫計(jì)算程序,快速的根據(jù)選擇的參數(shù)進(jìn)行計(jì)算并且以曲線或者圖表的形式顯示出來,直接選擇不同的計(jì)算程序進(jìn)行計(jì)算,數(shù)據(jù)保存為多種格式,自動(dòng)根據(jù)自定義模板生成報(bào)告。
本發(fā)明的基于Matlab的汽車整車性能仿真與計(jì)算方法包括以下步驟:
步驟1、計(jì)算程序;
所述步驟1計(jì)算程序用于計(jì)算汽車整車的基本性能數(shù)據(jù),為對(duì)汽車整車性能分析和仿真提供基本的理論依據(jù)。所述步驟1計(jì)算程序根據(jù)汽車整車動(dòng)力學(xué)公式和模型,對(duì)汽車整車系統(tǒng)進(jìn)行仿真和計(jì)算,計(jì)算出汽車整車的基本性能,包括加速時(shí)間、加速度、效率、能耗、爬坡度。
所述步驟1計(jì)算程序能夠使用Excel文件、Word文件、M文件或文本文件的格式進(jìn)行保存,所述步驟1計(jì)算程序按照Matlab語言進(jìn)行書寫,然后對(duì)文件的格式進(jìn)行判斷,根據(jù)不同的格式對(duì)所述保存步驟1計(jì)算程序的文件進(jìn)行不同的讀取和解析方式,由Matlab動(dòng)態(tài)執(zhí)行所述步驟1計(jì)算程序中的語句并自動(dòng)處理注釋和循環(huán)的語句。
所述的步驟1計(jì)算程序具體包括五個(gè)步驟:
1.1計(jì)算程序的變量調(diào)用;
1.2計(jì)算程序的函數(shù)計(jì)算;
1.3計(jì)算程序的曲線顯示;
1.4計(jì)算程序的數(shù)據(jù)顯示;
1.5計(jì)算程序的報(bào)告生成。
所述步驟1.1計(jì)算程序的變量的調(diào)用根據(jù)計(jì)算程序中聲明的變量名稱、類型、格式,從工作空間中查找相應(yīng)的變量,并且根據(jù)需求對(duì)變量進(jìn)行插值或者截取處理,只取出需要使用的部分,然后存儲(chǔ)入臨時(shí)工作空間,供計(jì)算函數(shù)調(diào)用。即,所述步驟1.1計(jì)算程序的變量調(diào)用用于讀取所選擇的零部件配置文件中的參數(shù),并且存入臨時(shí)工作空間之中。所述計(jì)算程序的函數(shù)計(jì)算根據(jù)定義好的語句對(duì)參數(shù)進(jìn)行運(yùn)算,得出一系列計(jì)算結(jié)果。所述的計(jì)算程序存儲(chǔ)在所述配置文件夾中,所述計(jì)算程序的存儲(chǔ)格式格式可以為TXT、Word、Excel,所述計(jì)算程序會(huì)能夠自動(dòng)對(duì)格式進(jìn)行判斷和解析,根據(jù)不同的文件類型使用不同的解析方式,然后使用Matlab運(yùn)行時(shí)引擎對(duì)語句進(jìn)行解析和動(dòng)態(tài)運(yùn)行并能夠自動(dòng)對(duì)文件中的循環(huán)、判斷、函數(shù)、注釋語句進(jìn)行處理。
所述步驟1.2計(jì)算程序的函數(shù)計(jì)算是讀取文件中的函數(shù)定義并解析然后調(diào)用相關(guān)的函數(shù)進(jìn)行計(jì)算,所述函數(shù)分為內(nèi)置函數(shù)、臨時(shí)函數(shù)和公共函數(shù)這三部分,內(nèi)置函數(shù)為Matlab自帶,公共函數(shù)存儲(chǔ)在函數(shù)文件夾中,運(yùn)行程序前統(tǒng)一調(diào)用,臨時(shí)函數(shù)只聲明在計(jì)算程序中并在程序計(jì)算時(shí)被調(diào)用,函數(shù)調(diào)用相關(guān)的變量進(jìn)行計(jì)算然后將結(jié)果存儲(chǔ)入臨時(shí)工作空間。
所述步驟1.3計(jì)算程序的曲線顯示是調(diào)用繪圖函數(shù)對(duì)所述步驟1.1和所述步驟1.2的計(jì)算結(jié)果進(jìn)行繪圖,繪制的圖形包括折線圖、柱狀圖、散點(diǎn)圖、餅狀圖、等高線圖、三維圖形,根據(jù)不同的圖像類型對(duì)圖形上的點(diǎn)進(jìn)行標(biāo)注,并且將生成的圖形句柄保存到工作空間,然后將圖形顯示在坐標(biāo)軸上。
所述步驟1.4計(jì)算程序的數(shù)據(jù)顯示是根據(jù)文件中定義的需求,對(duì)所述步驟1.1和所述步驟1.2的計(jì)算結(jié)果進(jìn)行分析和處理,例如,計(jì)算最大值、最小值、平均值、峰值的數(shù)據(jù),或者直接將所述計(jì)算結(jié)果顯示在列表中。
所述步驟1.5計(jì)算程序的報(bào)告生成是調(diào)用所述計(jì)算程序中指定的報(bào)告模板并對(duì)報(bào)告模板的內(nèi)容進(jìn)行解析,根據(jù)報(bào)告模板中定義的數(shù)據(jù)名稱和類型對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理,比如將所述計(jì)算結(jié)果或者圖形放入相應(yīng)的單元格中,生成的報(bào)告自動(dòng)保存在指定路徑下。
步驟2、配置文件;
所述步驟2配置文件是存儲(chǔ)各種汽車整車的零部件的參數(shù)并在計(jì)算時(shí)對(duì)所述汽車整車的零部件的參數(shù)進(jìn)行調(diào)用,所述的配置文件包括軟件配置文件和參數(shù)配置文件。
所述軟件配置文件中存儲(chǔ)了軟件的基本設(shè)置,比如窗口的大小、位置、配置文件夾的存儲(chǔ)位置、圖標(biāo);所述軟件配置文件中包括了軟件各個(gè)功能文件所在的路徑,比如計(jì)算程序、配置文件的存儲(chǔ)目錄以及軟件的一些基本配置信息。
所述參數(shù)配置文件包括汽車整車參數(shù)、電池參數(shù)、電機(jī)參數(shù)、變速箱參數(shù)、環(huán)境參數(shù)、控制策略參數(shù)、路況的配置信息。所述配置文件能夠使用Mat文件、Excel、文本文件的格式進(jìn)行存儲(chǔ),能夠進(jìn)行顯示和修改。
每一類的軟件配置文件和參數(shù)配置文件都單獨(dú)存儲(chǔ)在一個(gè)文件之中,所述存儲(chǔ)文件的類型為TxT文本文件、M文件、Mat文件、Excel文件,程序會(huì)根據(jù)不同的存儲(chǔ)文件類型進(jìn)行讀取,也會(huì)對(duì)存儲(chǔ)文件中數(shù)據(jù)的格式、內(nèi)容進(jìn)行判斷,如果數(shù)據(jù)錯(cuò)誤則發(fā)出警告,提示用戶數(shù)據(jù)輸入出錯(cuò)。所述對(duì)文件中數(shù)據(jù)的格式、內(nèi)容進(jìn)行判斷是由編寫程序?yàn)槊恳活惻渲梦募懸粋€(gè)檢測(cè)器,檢測(cè)常用的一些數(shù)據(jù)內(nèi)容和格式,比如數(shù)據(jù)的大小、邏輯是否正確,數(shù)據(jù)的長(zhǎng)度是否一致,這樣在加載數(shù)據(jù)時(shí)就會(huì)檢測(cè)出數(shù)據(jù)的問題,而不是等到計(jì)算時(shí)才判斷數(shù)據(jù)是否正確。
步驟3、曲線顯示;
所述步驟3曲線顯示是將所述的步驟1計(jì)算程序所計(jì)算出的數(shù)據(jù)通過折線圖、餅狀圖、柱狀圖、概率分布圖、散點(diǎn)圖的形式繪制出來并注明坐標(biāo)軸名稱、范圍、圖例然后以圖形的方式將所述的步驟1計(jì)算程序所計(jì)算出的數(shù)據(jù)直觀的展示出來,即以更加直觀的方式展示數(shù)據(jù)的變化趨勢(shì)及分布,同時(shí),通過不同的顏色標(biāo)記不同的數(shù)據(jù),另外,所述步驟3曲線顯示能夠計(jì)算出圖形的范圍,適當(dāng)調(diào)整坐標(biāo)軸范圍,支持對(duì)曲線進(jìn)行縮放和移動(dòng),標(biāo)記單個(gè)點(diǎn)的范圍的功能。例如,增加在圖例或者直接用點(diǎn)標(biāo)記在曲線上,顯示點(diǎn)的坐標(biāo),曲線能夠自定義縮放,支持?jǐn)?shù)據(jù)點(diǎn)的定位、選擇與保存;這樣便于觀察曲線的趨勢(shì)同時(shí)也能從所述的折線圖、餅狀圖、柱狀圖上獲得每個(gè)點(diǎn)的位置。
所述步驟3曲線顯示能夠存儲(chǔ)圖形的句柄,當(dāng)顯示下一個(gè)曲線顯示或者清除圖像時(shí)能夠刪除所有的圖形句柄,讓程序在其他地方對(duì)圖形進(jìn)行修改和調(diào)用,如果參數(shù)未改變的情況下則會(huì)調(diào)用之前的圖形句柄,避免曲線重復(fù)繪制,也能夠在生成報(bào)告時(shí)提供圖形。
步驟4、數(shù)據(jù)顯示;
所述步驟4數(shù)據(jù)顯示是將所述步驟1計(jì)算程序計(jì)算出的數(shù)據(jù)顯示在表格中以供使用者查看和分析。所述步驟4數(shù)據(jù)顯示包括計(jì)算結(jié)果顯示、參數(shù)顯示,用數(shù)值或字符串顯示,所述步驟4數(shù)據(jù)顯示是將讀取的配置文件以表格形式顯示出來并能對(duì)參數(shù)進(jìn)行修改且支持參數(shù)的實(shí)時(shí)計(jì)算和非實(shí)時(shí)計(jì)算。所述實(shí)時(shí)計(jì)算即當(dāng)參數(shù)修改時(shí)立刻對(duì)數(shù)據(jù)進(jìn)行重新計(jì)算和對(duì)曲線重新繪制,所述非實(shí)時(shí)計(jì)算即當(dāng)參數(shù)修改完后通過按鈕控制數(shù)據(jù)和曲線的重新計(jì)算和繪制。所述步驟4數(shù)據(jù)顯示也能夠?qū)τ?jì)算結(jié)果進(jìn)行顯示、將所述數(shù)據(jù)復(fù)制或保存及定義所述數(shù)據(jù)顯示的間隔和范圍。
步驟5、數(shù)據(jù)保存;
所述步驟5數(shù)據(jù)保存是將所述的步驟1計(jì)算程序計(jì)算出的數(shù)據(jù)進(jìn)行存儲(chǔ)以便于之后對(duì)數(shù)據(jù)的整理和分析,所述步驟5能夠手動(dòng)選擇存儲(chǔ)格式并支持Word、Excel、Mat、TxT的格式。例如,所述步驟5數(shù)據(jù)保存能夠通過Excel或者M(jìn)at的格式將計(jì)算出的數(shù)據(jù)進(jìn)行存儲(chǔ)以便于查看及使用。
步驟6、報(bào)告生成。
所述步驟6報(bào)告生成定義了報(bào)告中數(shù)據(jù)和曲線的格式,生成報(bào)告時(shí)會(huì)根據(jù)定義中曲線、數(shù)據(jù)的格式進(jìn)行生成;所述步驟6報(bào)告生成是將所述步驟1計(jì)算程序所計(jì)算出的數(shù)據(jù)、步驟3所繪制的圖形和步驟4所顯示的數(shù)據(jù)表格自動(dòng)生成Excel或者Word格式的報(bào)告即并保存在Word、Excel的類型的文件中,報(bào)告的格式由模板進(jìn)行定義,保存時(shí)選擇的是模板,稱為報(bào)告模板,程序會(huì)解析模板的內(nèi)容并且根據(jù)模板中的定義將所述步驟1計(jì)算的數(shù)據(jù)和步驟3繪制的曲線保存在報(bào)告之中并能夠選擇報(bào)告保存的名稱和位置。
在所述步驟6中,安裝設(shè)置好的報(bào)告模板生成所需要的報(bào)告,選擇報(bào)告的內(nèi)容及格式及選擇報(bào)告保存的名字和位置。所述報(bào)告模板定義了文件的類型、格式、字體,生成報(bào)告時(shí)程序會(huì)調(diào)用所述步驟1計(jì)算程序中負(fù)責(zé)報(bào)告生成這一部分的內(nèi)容,比如變量名稱、圖形句柄,所述報(bào)告模板中對(duì)文本、數(shù)據(jù)、曲線進(jìn)行區(qū)分,程序會(huì)查找相同名稱的變量或句柄并將其放置在報(bào)告相應(yīng)的位置上。報(bào)告生成時(shí)會(huì)自動(dòng)查找錯(cuò)誤,當(dāng)遇到警告或者錯(cuò)誤時(shí),程序會(huì)繼續(xù)執(zhí)行并提示出現(xiàn)問題的位置以便于用戶進(jìn)行查找和修正。
本發(fā)明用于計(jì)算汽車整車的基本性能數(shù)據(jù),為對(duì)汽車整車性能分析和仿真提供基本的理論依據(jù)。對(duì)于新能源汽車,應(yīng)用本發(fā)明能夠通過Matlab對(duì)汽車整車的參數(shù)進(jìn)行計(jì)算,將汽車整車各個(gè)零部件的參數(shù)輸入到軟件之中,由程序?qū)ζ囌囆阅苓M(jìn)行仿真和計(jì)算且不需要汽車整車實(shí)物,只需要通過計(jì)算機(jī)即能夠?qū)ζ囌嚨男阅苓M(jìn)行計(jì)算,而且不需要掌握具體的專業(yè)知識(shí),根據(jù)自己的需求更改相應(yīng)的參數(shù)即可,程序會(huì)自動(dòng)進(jìn)行繪圖和生成數(shù)據(jù),節(jié)省了大量時(shí)間,便于前期根據(jù)已有的數(shù)據(jù)對(duì)汽車整車的性能進(jìn)行估算、各個(gè)零部件的選型以及后期對(duì)汽車整車性能進(jìn)行驗(yàn)證,查看其是否能夠滿足設(shè)計(jì)的要求。本發(fā)明的具體的優(yōu)點(diǎn)和有益效果如下:
(1)能夠自定義計(jì)算程序,能夠根據(jù)自己的需求調(diào)用程序中的參數(shù)和變量進(jìn)行計(jì)算,定義靈活,更改方便,能夠適用于多種車型、多種計(jì)算方式,對(duì)于不同的需求只需要使用不同的計(jì)算程序即可,內(nèi)置了包括加速度、爬坡度、加速時(shí)間、能耗計(jì)算的多種計(jì)算程序,因此,相比傳統(tǒng)現(xiàn)有的仿真計(jì)算方法和軟件,本發(fā)明的功能十分強(qiáng)大。
(2)計(jì)算程序能夠任意調(diào)用Matlab中的函數(shù),利用Matlab強(qiáng)大的矩陣運(yùn)算能力,內(nèi)置的計(jì)算函數(shù)使用優(yōu)化過的語句直接進(jìn)行計(jì)算,避免出現(xiàn)循環(huán)和遞歸,按照處理矩陣的方式對(duì)數(shù)據(jù)進(jìn)行批量計(jì)算和處理,節(jié)省了大量的時(shí)間,極大地提高了速度,當(dāng)需要計(jì)算的數(shù)據(jù)量非常大的情況下,本發(fā)明的計(jì)算速度優(yōu)勢(shì)非常明顯。
所有零部件的參數(shù)全部寫在配置文件之中,能夠手動(dòng)選擇或更改所需要的參數(shù),能夠?qū)⑺械膮?shù)平臺(tái)化,便于對(duì)比不同參數(shù)對(duì)計(jì)算結(jié)果的影響,也能夠看出不同車型、參數(shù)之間的對(duì)比,能更好地對(duì)參數(shù)做出匹配和優(yōu)化。程序能夠?qū)⑴渲梦募虬梢环N車型,對(duì)于不同的車型只需要選擇統(tǒng)一的配置文件,程序會(huì)自動(dòng)更改電機(jī)、變速箱的參數(shù),不需要再手動(dòng)選擇,提高了工作效率。
(3)程序在加載數(shù)據(jù)時(shí)能夠使用檢測(cè)器自動(dòng)對(duì)數(shù)據(jù)的大小、格式、類型進(jìn)行判斷,如果數(shù)據(jù)不正確會(huì)提示出錯(cuò)誤,并且不會(huì)把加載的數(shù)據(jù)從臨時(shí)空間存儲(chǔ)到工作空間中,避免錯(cuò)誤的數(shù)據(jù)會(huì)對(duì)計(jì)算造成影響,產(chǎn)生錯(cuò)誤的結(jié)果。計(jì)算后的數(shù)據(jù)和曲線全部被保存在臨時(shí)空間之中,如果參數(shù)沒有更改,數(shù)據(jù)就不會(huì)重新進(jìn)行計(jì)算,即使參數(shù)發(fā)生了變化,也只會(huì)重新計(jì)算發(fā)生改變的那一部分。程序會(huì)通過矩陣和邏輯運(yùn)算檢測(cè)所有數(shù)據(jù)是否一致,當(dāng)數(shù)據(jù)出現(xiàn)不一致的情況時(shí)會(huì)檢測(cè)出出現(xiàn)不一致的情況的位置,然后對(duì)不一致的數(shù)據(jù)進(jìn)行替換,避免了重復(fù)對(duì)數(shù)據(jù)進(jìn)行計(jì)算。
(4)參數(shù)更改時(shí)支持實(shí)時(shí)計(jì)算和非實(shí)時(shí)計(jì)算,如果需要反復(fù)更改某個(gè)參數(shù),那么能夠選擇實(shí)時(shí)計(jì)算,當(dāng)參數(shù)改變時(shí)自動(dòng)進(jìn)行計(jì)算和顯示,如果有大量參數(shù)需要修改,則使用非實(shí)時(shí)計(jì)算,當(dāng)所有參數(shù)改變后統(tǒng)一進(jìn)行計(jì)算,避免了頻繁的調(diào)用計(jì)算程序并使程序出現(xiàn)卡頓或者等待較長(zhǎng)時(shí)間的情況。
(5)報(bào)告生成支持自定義模板,能夠根據(jù)自己的需要將報(bào)告修改為其他格式,程序使用特殊符號(hào)標(biāo)記出圖片、文本、變量,運(yùn)行模板時(shí)會(huì)解析模板中的內(nèi)容,將數(shù)據(jù)或者曲線放置在相應(yīng)的位置。模板中支持自定義語句,能夠?qū)ψ兞窟M(jìn)行簡(jiǎn)單的計(jì)算,便于報(bào)告內(nèi)容拓展并對(duì)報(bào)告進(jìn)行排版、整理的操作。
附圖說明
圖1是本發(fā)明所述基于Matlab的汽車整車性能仿真與計(jì)算方法的實(shí)施例的程序界面示意圖;
圖2是本發(fā)明所述基于Matlab的汽車整車性能仿真與計(jì)算方法的一個(gè)程序的流程示意圖;
圖3是本發(fā)明所述基于Matlab的汽車整車性能仿真與計(jì)算方法的程序計(jì)算部分的流程示意圖;
圖4是本發(fā)明所述基于Matlab的汽車整車性能仿真與計(jì)算方法的錯(cuò)誤檢測(cè)器的流程示意圖;
圖5是本發(fā)明所述基于Matlab的汽車整車性能仿真與計(jì)算方法的報(bào)告生成的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)描述。
如圖1所示,計(jì)算程序加載后顯示在左上角的組合框中,能夠手動(dòng)進(jìn)行選擇和更改。圖形繪制在窗體中間的坐標(biāo)軸中,能夠同時(shí)顯示多條曲線,并且能夠自動(dòng)調(diào)整坐標(biāo)軸范圍。配置文件在窗體的右上角,使用組合框進(jìn)行選擇,總共分為車輛、電機(jī)、變速箱、電池、環(huán)境、控制策略這幾個(gè)部分,點(diǎn)擊旁邊的編輯按鈕能夠打開配置文件并對(duì)其編輯。右下角為數(shù)據(jù)顯示部分,當(dāng)選擇某個(gè)配置文件時(shí),配置文件中的參數(shù)會(huì)自動(dòng)加載到表格中,能夠在表格中直接對(duì)參數(shù)進(jìn)行更改,并且能夠保存在配置文件中。最右下方有報(bào)告生成和數(shù)據(jù)保存兩個(gè)按鈕,點(diǎn)擊后選彈出文件保存對(duì)話框,能夠選擇保存的位置及名稱。另外窗體左上角還設(shè)置有一行工具欄,用于曲線的縮放、移動(dòng)、旋轉(zhuǎn)以及標(biāo)記數(shù)據(jù)點(diǎn)。
如圖2所示,程序啟動(dòng)時(shí)先根據(jù)軟件配置文件設(shè)置窗體的大小、位置,然后掃描配置文件目錄,將各個(gè)配置文件的名稱加載入對(duì)應(yīng)的組合框之中。初始時(shí)默認(rèn)選擇第一個(gè)配置文件,程序退出后會(huì)保存最后選擇的配置文件,如果文件不存在則會(huì)選擇默認(rèn)值。點(diǎn)擊繪制按鈕后程序會(huì)加載數(shù)據(jù)并判斷數(shù)據(jù)有效性,然后對(duì)數(shù)據(jù)進(jìn)行計(jì)算,并將曲線和數(shù)值顯示在相應(yīng)位置,當(dāng)點(diǎn)擊生成報(bào)告時(shí)能夠選擇模板并保存。
如圖3所示,運(yùn)行計(jì)算程序時(shí),能夠根據(jù)組合框中所選擇的文件進(jìn)行解析,加載程序中所需要的變量,然后動(dòng)態(tài)執(zhí)行文本中的語句,解析時(shí)自動(dòng)忽略注釋語句。如果語句執(zhí)行過程中出現(xiàn)異常,則會(huì)定位報(bào)錯(cuò)的位置,打印在窗口之中,如果是嚴(yán)重的錯(cuò)誤,影響程序的結(jié)果,則停止解析,報(bào)錯(cuò)并回滾原來的數(shù)據(jù)。如果錯(cuò)誤不影響最終結(jié)果,只會(huì)影響顯示部分,程序則只報(bào)出警告并繼續(xù)運(yùn)行。
如圖4所示,當(dāng)導(dǎo)入?yún)?shù)時(shí),程序會(huì)根據(jù)不同的參數(shù)類型調(diào)用不同檢測(cè)程序,一般程序只會(huì)對(duì)重要的參數(shù)進(jìn)行檢測(cè),并且在參數(shù)不變的情況下不重復(fù)對(duì)數(shù)據(jù)進(jìn)行檢測(cè)。檢測(cè)的類型分為大小、數(shù)據(jù)格式、數(shù)據(jù)長(zhǎng)度、多個(gè)數(shù)據(jù)間的邏輯關(guān)系,只有當(dāng)所有檢測(cè)全部通過時(shí)說明數(shù)據(jù)正常,否則會(huì)報(bào)出錯(cuò)誤,根據(jù)數(shù)據(jù)異常的類型將錯(cuò)誤分為嚴(yán)重或一般,決定程序能夠繼續(xù)運(yùn)行。
如圖5所示,當(dāng)生成報(bào)告時(shí),程序會(huì)調(diào)用報(bào)告模板,然后對(duì)模板的內(nèi)容進(jìn)行解析,根據(jù)模板中定義的類型能夠?qū)?bào)告內(nèi)容分為數(shù)據(jù)、文本、圖形,每種類型有不同的處理方式。對(duì)于數(shù)據(jù)類型,需要對(duì)單元格的內(nèi)容進(jìn)行解析,然后將計(jì)算出的數(shù)據(jù)放入單元格位置,對(duì)于文本數(shù)據(jù)則不需要進(jìn)行改動(dòng),只需要修改文本的格式,對(duì)于圖片需要解析單元格內(nèi)容或者調(diào)用數(shù)據(jù)進(jìn)行繪圖,然后放置在指定區(qū)域。為了提高效率,對(duì)于已經(jīng)計(jì)算過的數(shù)據(jù),程序不會(huì)再次計(jì)算,直接查找調(diào)用工作空間中的變量進(jìn)行賦值。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開的范圍內(nèi),能夠輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。