鄭 蕊,孔繁虹
(同濟大學 電子與信息工程學院,上海 201804)
城軌列車控制電路教學系統的主要功能是根據輸入的電路圖的連接關系生成邏輯文件,再利用邏輯文件自動生成邏輯回路;當電路仿真運行時根據設計人員或培訓人員設置的各種工況或故障狀態, 用顏色、位置、形狀等信息動態地刷新顯示列車電路中各種器件的得電及動作、導線的電信號流向, 并配之以聲音、文字等說明, 使列車電路原理形象、直觀地顯示出來。
根據以上思路,可以將整個電路仿真教學系統分為3個部分,即電路圖的繪制、仿真模型的自動生成以及電路圖動態仿真運行。
從圖形數據操作的角度,整個繪圖流程主要分為圖形的添加與輸入、圖形編輯和圖形文件存儲3個步驟。城軌列車電路圖主要由電氣元件、連接線和標示符3種圖形符號構成,由于其具有各自屬性和特點,軟件采用面向對象的方法,分別設計元件類、連接線類、標注類3種結構體,整個圖形數據的生成過程如圖1所示。

圖1 圖形數據的生成過程
為將電路圖繪制成計算機圖形,基于MFC設計了合適的繪圖軟件,確立數據結構并根據元器件的圖形特征創建可拓展的元件庫(適用于不同型號的列車),最后生成元件控件。利用交互式繪圖技術,通過鼠標的單擊、雙擊、拖動等簡單動作進行繪圖,將電路圖的輸入數據格式轉化為程序員可調用控制的專用格式[1]。該格式應能反映出電路圖各類元件所具有的特點和參數,并實現對元件圖形的插入、修改、縮放、移動、旋轉,連接關系的生成以及電路圖的存儲。
1.2.1 列車電路元件分類
因不同類型元件各自的屬性和實現的功能不同,有必要把相同功能的元件放在一起以便管理操作,所以必須對繪圖所需的所有元件進行分類。
按照仿真時有無動作顯示,我們將列車電路元件分為開關類和非開關類。開關類如普通開關、常開常閉接觸開關等;非開關類如電阻、電機、指示燈、蜂鳴器等[2]。 另外,按照控件輸入時是否需要添加元件標注,又可分為有標注元件和無標注元件。
元件的分類可以通過元件類型號KindID的區間劃分得到:將KindID值從1~500號分配給有標注元件,其中,1~200號為非開關類元件,201~500號為開關類元件;從501~1 000號分配給無標注元件??傊?,將具有相同功能或類似屬性的元件規定在一定的類型號區間進行編號,以便操作應用。
1.2.2 元件庫的建立
元件庫包含繪圖涉及的所有元件對象的圖形模型,包括:各元件圖形的構造特征及其屬性,點、線、弧圖形數據的坐標信息。其中,應該注意的是,根據仿真需要,元件庫數據中還應該包含元件在所有狀態下的物理特征,例如:對于開關元件可通過設置隱藏線并利用程序進行線型的切換來實現開關的閉合/斷開的動作變化。
元件庫應包含的信息有:總元件數(n)、KindID、元件名、矩形框參數ltrb、點數n1及點的坐標Pointi.x,Pointi.y、線數n2及每條線的線型Linei.style及其起終點坐標Linei.x1,Linei.y1,Linei.x2,Linei.y2、弧數n3及每個弧的線型Arci.style和繪圖參數Arci.x1Arci.y1、Arci.x2Arci.y2、Arci.xαArci.yα、 Arci.xβArci.yβ、引腳數n4及引腳點的位置坐標Jointi.x,Jointi.y 。
但是,獲取這些坐標信息的傳統方法是人工數點,這樣費時費力,基于對話框開發了一個可視化畫板,只需將元件圖形在畫板中畫出,便可得到所需的點、直線、圓弧的坐標信息,再按照以上格式整理成TXT文件,通過繪圖軟件中程序的讀寫轉化為EBI文檔,可方便地對元件庫進行更新。
輸入計算機中的電路原理圖的元件、連接線、連接點的位置一旦確定, 其坐標連接關系就確定了。根據這些連接關系可生成邏輯回路,再根據回路關系與邏輯控制算法即可判斷圖中元器件的物理狀態和電狀態。根據上述原理,開發一個可以自動生成邏輯控制模型的平臺,大致思路如下:
(1)將列車電路圖轉化為對應的有向圖;
(2)利用有向圖和人工智能深度優先搜索算法搜索兩頂點間的單向通路;
(3)根據通過某部件的所有單向通路,最終得到該部件的電狀態。
為實現從串、并聯關系到邏輯關系的轉換,引入有向圖[3]。 只要用頂點V代替電路原理圖中的節點、用有向邊E代替支路,便可得到電路原理圖的有向圖G(V,E)。因節點的物理狀態無方向性,可表示為一組頂點的權;因支路的物理狀態取決于它的方向,每條支路都可用兩條相反的具有不同權的有向邊來表示。當支路都用有向邊表示時,得到的才是目標有向圖G。G是一個連通圖,可從其中得到頂點的集合、有向邊的集合、頂點和有向邊的完全關聯矩陣。
頂點的集合:
V={V1, V2,…, Vn}
有向邊的集合:

所有的單向通路矩陣At:
其中,矩陣At的列表示有向圖中所有的頂點和有向邊,矩陣At的行為單向通路PATH_i。如果單向通路PATH_i通過頂點或有向邊,aij=1,否則aij=0。
構成通路的頂點和邊必然不重復,根據這一原則,利用有向圖的鄰接表REV,采用深度優先算法,可搜索出兩個頂點(電源VS和地VG)之間的所有單向通路。在程序設計中,考慮到通路中的部件繁多、復雜,因此在通路中查找支路與節點的關系要比查找通路與部件的關系更為方便、省時。
深度優先算法較易通過遞歸搜索來實現,可設置當前節點為overs[toven] ,頭節點為VSSLINE[12] 尾節點為GNDLINE[12] ,定義一個遞歸搜索函數searchtree(void),以及子函數searchv(tovern)。搜索流程如圖2所示。

圖2 搜索流程圖
單向通路的頂點和有向邊的權表示對應節點和支路在此方向上的物理狀態,因此通路上所有權的與為通路的權,即通路的物理狀態。當構成通路的所有邊的物理狀態都是通態時,通路的物理狀態就為通,否則為斷。
當某條通路的物理狀態為通態時,在電源正常的情況下,該通路的電狀態為1。當通路得電時,構成通路的所有部件都得電,因此通過該部件所有通態的電狀態之和即為部件的電狀態。電路部件的電狀態與物理狀態有下列關系[4]:


式中:Sz, Sf 分別為電路中部件的正向和反向物理狀態向量;Ez, Ef 分別為電路中部件的正向和反向電狀態向量; E 為電路中部件的當前電狀態向量; At 為電路的單向通路矩陣;# 、& 分別為自定義的運算符。
部件的物理狀態與電狀態的控制關系便構成了列車控制電路的邏輯仿真模型。
電路仿真運行時,讀取仿真的電路圖數據,并按照實際情況對電路圖中所有元件進行狀態初始化,將設置的控制變量傳輸給該電路,經過邏輯控制分析計算后得到各元件的電狀態。此時,電路圖做出相應的動作,如回路得電變紅色、開關閉合或斷開、電機或電器運轉等,使學員在計算機上可生動直觀地了解到司機控制器上相應操作對應的列車內部電路的動作。
根據列車電路的實際情況,開發出一個電路仿真教學界面,該界面又包含司機室控制面板和繼電器柜面板,分別如圖3和圖4所示。

圖3 司機控制器面板

圖4 繼電器柜面板
在界面左側視圖中,存放了所要進行仿真教學的電路圖數據文件,點擊相應文件可實現電路圖切換。點擊控制面板,設置控制變量,可改變電路的狀態。另外,點擊繼電器柜按鈕,彈出繼電器設置對話框,可以設置繼電器故障,實現故障教學。
城軌列車的控制電路非常復雜,可根據其各自實現的功能分成很多獨立的模塊,如駕駛模塊、緊急制動模塊、照明模塊、門控制模塊等。在列車電路教學時,通??蓪⑿柚v解的單個或多個電路模塊及其相關的電路圖集中放入文件中,利用這些圖形數據生成邏輯回路文件。仿真程序讀取回路文件后,依據邏輯控制算法得到各元件狀態并動態顯示,實現電路的實時仿真。
以上海地鐵3號線門控制電路為例,對門控制電路動態仿真進行簡單介紹。上海地鐵3號線的門控制電路在喚醒狀態下執行關門操作時的電路圖如圖5所示,可根據開關的開合以及線顏色的改變,了解門控制電路的控制機理。

圖5 喚醒狀態下的列車關門電路
門控系統通過電子門控單元接受到的內部和外部信息來操縱,電子門控單元從列車門控制回路接受開門列車線、關門列車線和零速列車線指令,從門入口區域接受門關好、門鎖好、隔離開關、緊急解鎖開關狀態,并根據得到的信號進行開門、關門、指示燈顯示、蜂鳴器等操作。
當需要關閉左側車門時,按下左側關門按鈕DCPB1_A或者DCPB2_A。此時,左側開門接觸器DOK_A失電,接觸開關DOK_A斷開,解開自鎖,左側關門接觸器DCK_A得電,執行關門操作。
該電路教學系統能夠便捷地輸入不同型號城軌列車的控制電路原理圖,快速自動生成仿真所需的邏輯仿真模型,且能直觀地反映列車電路內部變化狀態,取代了傳統人工讀取電路控制關系再編寫成計算機邏輯的繁瑣易錯的開發過程,省時省力且具有較強的可擴展性和可移植性。不僅能夠用于列車電路原理教學,而且可以用于電路設計和電路邏輯驗證等仿真。
[1] 鄭 云.AutoCAD計算機繪圖軟件二次開發技術與實例[M] .北京:機械工業出版社,2011.
[2] 華 平,唐春林.城市軌道交通車輛電氣控制[M] .北京:學苑出版社,1993.
[3] 蔡自興.人工智能及其應用[M] . 4版北京:清華大學出版社,2010.
[4] 錢雪軍.機車控制電路邏輯控制模型分析與自動生成[J] . 鐵道學報,1995(2):37- 42.