国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于多智能體技術(shù)的HEV組網(wǎng)技術(shù)*

2015-09-04 06:25尹忠杰牛禮民何遠(yuǎn)洋詹軍楊強(qiáng)安徽工業(yè)大學(xué)機(jī)械工程學(xué)院
汽車工程師 2015年8期
關(guān)鍵詞:服務(wù)器端開度轉(zhuǎn)矩

尹忠杰 牛禮民 何遠(yuǎn)洋 詹軍 楊強(qiáng)(安徽工業(yè)大學(xué)機(jī)械工程學(xué)院)

混合動(dòng)力電動(dòng)汽車(HEV)具有高性能、低能耗和低污染的特點(diǎn)以及技術(shù)、經(jīng)濟(jì)和環(huán)境等方面的綜合優(yōu)勢,成為當(dāng)今最具實(shí)際開發(fā)意義的新型清潔汽車[1]。它采用傳統(tǒng)內(nèi)燃機(jī)和電動(dòng)機(jī)作為動(dòng)力源,通過熱能和電力2套系統(tǒng)開動(dòng)汽車,達(dá)到節(jié)省燃料和降低排氣污染的目的,具有排量小、速度高和續(xù)駛里程長等優(yōu)點(diǎn)[2]。要想實(shí)現(xiàn)提高整車燃油經(jīng)濟(jì)性,改善動(dòng)力性,降低排放的目標(biāo),則需要汽車根據(jù)不同的工況實(shí)現(xiàn)汽車內(nèi)各動(dòng)力源的智能協(xié)作。多智能體技術(shù)的應(yīng)用,可很好地實(shí)現(xiàn)智能協(xié)作,從而適應(yīng)各種復(fù)雜的工況,多智能體間的組網(wǎng)交互問題成為不可避免的研究熱點(diǎn)。文章對客戶端智能體(傳動(dòng)系)和服務(wù)器端智能體(發(fā)動(dòng)機(jī)和電動(dòng)機(jī))進(jìn)行建模,基于Visual Basic 6.0環(huán)境建立可視化交互界面,從而實(shí)現(xiàn)基于多智能體技術(shù)的HEV組網(wǎng)技術(shù)仿真研究。

1 多智能體仿真平臺的構(gòu)建

多智能體系統(tǒng)(MAS)是由多個(gè)彼此間存在著協(xié)商、協(xié)調(diào)和通信等關(guān)系的智能體組成的系統(tǒng)[3],其中每個(gè)智能體是一個(gè)物理的或抽象的實(shí)體,能作用于自身和環(huán)境,并與其他智能體通訊[4]。多智能體技術(shù)是人工智能技術(shù)的一次質(zhì)的飛躍,該系統(tǒng)可以協(xié)調(diào)一組智能體的行為(知識、目標(biāo)、方法和規(guī)劃),以協(xié)同地完成一個(gè)任務(wù)或求解問題[5]。由于其具有較強(qiáng)的分布性、魯棒性和協(xié)調(diào)性[6],已經(jīng)成為分布式人工智能研究的一個(gè)重要分支,并在各個(gè)領(lǐng)域得到了廣泛應(yīng)用[7]。

因此,文章擬將發(fā)動(dòng)機(jī)和電動(dòng)機(jī)等動(dòng)力輸出裝置和傳動(dòng)系等動(dòng)力耦合裝置進(jìn)行單智能體建模,如圖1所示,通過組建局域網(wǎng)將各個(gè)單智能體之間聯(lián)系起來,從而實(shí)現(xiàn)基于多智能體技術(shù)的HEV組網(wǎng)技術(shù)仿真研究。

1.1 與數(shù)據(jù)表格的連接

服務(wù)器端智能體(發(fā)動(dòng)機(jī)和電動(dòng)機(jī))產(chǎn)生的實(shí)時(shí)數(shù)據(jù)需要及時(shí)保存,而客戶端智能體(傳動(dòng)系)需要將接收到的實(shí)時(shí)數(shù)據(jù)通過查閱數(shù)據(jù)表格進(jìn)行反饋。而在數(shù)據(jù)表格軟件中,Excel具有可視化強(qiáng)的特點(diǎn),可以作為服務(wù)器端和客戶端的數(shù)據(jù)載體。但是由于Visual Basic 6.0與Excel是2款不同的軟件,所以首先需要實(shí)現(xiàn)Visual Basic 6.0與Excel表格之間的連接。

Visual Basic 6.0的一大功能就是可以通過勾選“工程”→“引用”中的選項(xiàng)與安裝在電腦里的其他程序相關(guān)聯(lián)。勾選其中的“Microsoft Excel 15.0 Object Library”選項(xiàng),就可以引用Excel類型庫。此外,還需要在通用聲明端將其賦給自己定義的變量,以便于在程序中使用:

Dim xlApp As Excel.Application‘定義xlApp為Excel對象

Dim xlBook As Excel.Workbook‘定義 xlBook為Excel工作簿

Dim xlSheet As Excel.Worksheet‘定義 xlSheet為Excel工作表。

1.2 服務(wù)器端智能體建模

服務(wù)器端智能體建模需要實(shí)現(xiàn)將智能體實(shí)時(shí)的數(shù)據(jù)導(dǎo)入、存儲和發(fā)送的功能。該多智能體仿真平臺主要有發(fā)動(dòng)機(jī)和電動(dòng)機(jī)2個(gè)智能體作為服務(wù)器端,以發(fā)動(dòng)機(jī)智能體為例,介紹如何在Visual Basic 6.0中實(shí)現(xiàn)其建模:

發(fā)動(dòng)機(jī)智能體的參數(shù)主要為轉(zhuǎn)速和ETC開度。首先,需要定義2個(gè)變量來存放即將導(dǎo)入進(jìn)來的轉(zhuǎn)速和ETC開度:

DimZhuanSuAsInteger‘定義ZhuanSu為整型變量

DimETCAs Single‘定義ETC為單精度型變量

在服務(wù)器端窗口創(chuàng)建一個(gè)標(biāo)簽lblinfo,對于導(dǎo)入了以后的轉(zhuǎn)速和ETC開度數(shù)據(jù),可以在這個(gè)標(biāo)簽上顯示出來,如圖2所示,方便用戶了解實(shí)時(shí)的發(fā)動(dòng)機(jī)的工作狀況:

lblinfo.Caption="發(fā)動(dòng)機(jī)的轉(zhuǎn)速為:"&ZhuanSu&"r/min"&Visual Basic 6.0CrLf&"ETC開度為:"&ETC&"V"&Visual Basic 6.0CrLf

接下來,先打開待存放數(shù)據(jù)的Excel表格:

Set xlApp=CreateObject("Excel.Application")‘創(chuàng)建Excel對象

Set xlBook=lApp.Workbooks.Open(App.Path&"發(fā)動(dòng)機(jī)實(shí)時(shí)轉(zhuǎn)速、節(jié)氣門開度表.xls")‘打開創(chuàng)建的Excel工作薄文件

xlApp.Visible=True‘設(shè)置Excel對象可見

Set xlSheet=xlBook.Worksheets("Sheet1")‘設(shè)置sheet1為當(dāng)前工作表

打開工作表后,就開始向里面寫入數(shù)據(jù)。如果是第1次保存數(shù)據(jù),需要向表格中添加表頭,否則就在上一次保存的數(shù)據(jù)后一行追加寫入。此外,為了表格美觀整齊,在寫入數(shù)據(jù)的同時(shí),可以調(diào)整其對齊格式,統(tǒng)一保留小數(shù)位數(shù),為表格加上邊框,自動(dòng)適應(yīng)列寬:

If xlSheet.Cells(i,1)=""Then‘判斷是否第一次保存數(shù)據(jù)

If i=2 Then xlSheet.Cells(2,1)="時(shí)間"‘創(chuàng)建時(shí)間表頭

xlSheet.Cells(2,2)="發(fā)動(dòng)機(jī)轉(zhuǎn)速(r/min)"‘創(chuàng)建轉(zhuǎn)速表頭

xlSheet.Cells(2,3)="ETC開度(V)"‘創(chuàng)建 ETC開度表頭

Else

xlSheet.Cells(i,1)=Date&""&Time‘寫入時(shí)間

xlSheet.Cells(i,2)=ZhuanSu‘寫入轉(zhuǎn)速

xlSheet.Cells(i,3)=ETC‘寫入ETC開度

For j=2 Toi

xlSheet.Cells(j,3).NumberFormatLocal="0.0"‘ETC開度統(tǒng)一保留小數(shù)一位

xlSheet.Cells(m,n).HorizontalAlignment=xlCenter‘所有表格水平居中對齊

xlSheet.Cells(m,n).VerticalAlignment=xlCenter‘所有表格豎直居中對齊

xlSheet.Cells(m,n).Borders.LineStyle=1‘為表格加上邊框

xlSheet.Cells.EntireColumn.AutoFit‘自動(dòng)適應(yīng)列寬。

將數(shù)據(jù)寫入以后,保存Excel文件并將Excel文件關(guān)閉,同時(shí)結(jié)束Excel對象的使用:

xlBook.Save‘保存工作簿

xlBook.Close‘關(guān)閉工作薄

xlApp.Quit‘結(jié)束 Excel對象

最終生成的Excel表格,如圖3所示。

服務(wù)器端通過winsock控件的senddata方法將轉(zhuǎn)速和ETC開度發(fā)送給客戶端,并且在其可視化窗口中的“聊天記錄”中顯示,便于用戶查看,如圖4所示。

1.3 客戶端智能體建模

客戶端智能體從服務(wù)器端智能體接收數(shù)據(jù),通過查閱一個(gè)由Map圖得出的數(shù)據(jù)表格,反饋給服務(wù)器端一個(gè)合適的數(shù)據(jù)并且實(shí)現(xiàn)在服務(wù)器端進(jìn)行保存。以如何反饋給發(fā)動(dòng)機(jī)智能體在一定轉(zhuǎn)速和ETC開度條件下合適的轉(zhuǎn)矩為例,介紹如何在Visual Basic 6.0中實(shí)現(xiàn)其建模:

客戶端智能體在接收數(shù)據(jù)之前,也同樣需要定義變量來存放服務(wù)器端發(fā)送過來的轉(zhuǎn)速和ETC開度:

Dim ZhuanSu As Integer‘定義ZhuanSu為整型變量

DimETCAs Single‘定義ETC為單精度型變量

客戶端通過winsock控件的getdata方法接收服務(wù)器端發(fā)送的數(shù)據(jù),并且把它存放在臨時(shí)變量tempS里,在判斷發(fā)送過來的數(shù)據(jù)是轉(zhuǎn)速還是ETC開度之后,存儲在剛才定義好的變量里,并且通過與服務(wù)器端智能體建模類似的方式,顯示在界面上,如圖5所示。

在接收到服務(wù)器端發(fā)送的轉(zhuǎn)速和ETC開度后,客戶端根據(jù)查詢它們與轉(zhuǎn)矩關(guān)系的表格,查詢到與此時(shí)發(fā)動(dòng)機(jī)轉(zhuǎn)速和ETC開度所對應(yīng)的轉(zhuǎn)矩,存放在定義的ZhuanJu變量里,顯示在lblinfo標(biāo)簽上,如圖6所示,并且通過局域網(wǎng)發(fā)送回服務(wù)器端:

Dim ZhuanJu As Single‘定義ZhuanJu為單精度型變量

lblinfo.Caption=lblinfo.Caption&"發(fā)動(dòng)機(jī)的轉(zhuǎn)矩為:"&ZhuanJu&"N·m"&Visual Basic 6.0CrLf‘顯示轉(zhuǎn)矩

wskserver.SendData Str(ZhuanJu)‘發(fā)送轉(zhuǎn)矩

服務(wù)器端在收到轉(zhuǎn)矩之后,把其存在服務(wù)器端定義的ZhuanJu變量里,加到聊天記錄里面,顯示在lblinfo標(biāo)簽上,保存在另一個(gè)Excel工作表里,如圖7所示,存儲數(shù)據(jù)的方式與服務(wù)器端智能體建模時(shí)類似,唯一的區(qū)別是增加一列接收到的轉(zhuǎn)矩的數(shù)據(jù)。

1.4 多智能體局域網(wǎng)組建

在單智能體建模完成后,需要組建多智能體局域網(wǎng)。此時(shí)需將工具欄→“部件”→“控件”中的“Microsoft Winsock Control 6.0”控件(簡稱winsock控件)添加到窗口,并且將其名稱改為“wskclient”和“wskserver”。

通過按下客戶端的“連接”按鈕,客戶端首先向服務(wù)器端發(fā)起連接的需求:

DimIP As String‘定義IP為字符型變量

IP=InputBox("請輸入要連接的IP","輸入的IP",""‘輸入要連接的服務(wù)器的IP

wskclient.RemoteHost=IP‘設(shè)置通訊對方的IP

wskclient.RemotePort=1024‘設(shè)置通訊的端口號

wskclient.Connect‘向?qū)Ψ桨l(fā)出連接請求

然后在服務(wù)器端的wskserver的ConnectionRequest事件中接受客戶端的連接需求:

wskserver.Close‘關(guān)閉控件以防報(bào)錯(cuò)

wskserver.Accept requestID‘接收客戶端的連接請求

此時(shí)彈出對話框“組網(wǎng)成功!”,即完成了多智能體局域網(wǎng)的組建。

2 多智能體交互的仿真模擬

在完成對于服務(wù)器端智能體和客戶端智能體的建模之后,可以進(jìn)行模擬仿真,發(fā)動(dòng)機(jī)端和客戶端用戶界面,如圖8和圖9所示,從而實(shí)現(xiàn)混合動(dòng)力汽車的研究。

3 結(jié)論

通過Visual Basic 6.0的平臺,生成了一款面向用戶的可視化軟件,該軟件建立了客戶端和服務(wù)器端智能體模型,通過仿真目前可以實(shí)現(xiàn)發(fā)動(dòng)機(jī)轉(zhuǎn)速、ETC開度參數(shù)的導(dǎo)入、顯示及保存,以及通過局域網(wǎng)連接獲得對應(yīng)的轉(zhuǎn)矩,制定出混合動(dòng)力汽車的一套智能控制策略,從而為混合動(dòng)力汽車的仿真研究提供了一種新的途徑。

猜你喜歡
服務(wù)器端開度轉(zhuǎn)矩
基于Ansys Maxwell 2D模型的感應(yīng)電動(dòng)機(jī)轉(zhuǎn)矩仿真分析
托槽類型對前磨牙拔除病例前牙轉(zhuǎn)矩控制的比較
某型低速大轉(zhuǎn)矩驅(qū)動(dòng)電機(jī)設(shè)計(jì)與研究
掘進(jìn)機(jī)用截止閥開度對管路流動(dòng)性能的影響
增大某車型車門開度的設(shè)計(jì)方法
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設(shè)計(jì)
重型F級燃?xì)廨啓C(jī)IGV開度對壓氣機(jī)效率的影響
淺談軟開度對舞蹈的影響
基于霍爾位置信號的無刷直流電機(jī)直接轉(zhuǎn)矩控制
基于Qt的安全即時(shí)通訊軟件服務(wù)器端設(shè)計(jì)