??? 摘 要: 介紹了舞臺(tái)布光系統(tǒng)" title="布光系統(tǒng)">布光系統(tǒng)中的重要部件——數(shù)字化燈具控制器的設(shè)計(jì)思想和實(shí)現(xiàn)方案,采用流行的CAN總線實(shí)現(xiàn)了分布式控制" title="分布式控制">分布式控制,利用模糊控制算法實(shí)現(xiàn)了燈具各自由度的穩(wěn)定的位置伺服。
??? 關(guān)鍵詞: 現(xiàn)場(chǎng)總線? CAN? 模糊算法
?
??? 隨著廣播電視事業(yè)的不斷發(fā)展,電視節(jié)目的制作越來(lái)越多樣化,對(duì)演播廳的功能及技術(shù)要求也越來(lái)越高,。舞臺(tái)布光系統(tǒng)是演播設(shè)備的重要組成部分,它的作用是通過(guò)對(duì)垂直吊桿,、機(jī)械化燈具的多動(dòng)作控制,利用聚光燈、柔光燈等設(shè)備進(jìn)行大面積的燈光投射,制造滿足攝像機(jī)光度要求的背景光線,。
??? 綜藝演播廳的規(guī)模目前正逐步擴(kuò)大,從600m2增加到了1000m2、1500m2,直至2000m2。一個(gè)1000m2的演播廳需要500~600盞各式燈具,。如果采用集中式控制,勢(shì)必造成控制電腦重負(fù),現(xiàn)場(chǎng)布線混亂,因此新型的布光系統(tǒng)均采用分布式控制,燈光師在控制臺(tái)前操作,控制臺(tái)利用現(xiàn)場(chǎng)總線?眼1?演將控制信息下發(fā),提升機(jī)控制器和燈具控制器接收指令后自動(dòng)運(yùn)行到設(shè)定的位置和角度,完成位置伺服。
??? 本文主要介紹舞臺(tái)布光系統(tǒng)中的重要部件——基于現(xiàn)場(chǎng)總線的數(shù)字化燈具控制器的設(shè)計(jì)思想和實(shí)現(xiàn)方案,。
1 整體方案
??? 本文介紹的燈具控制器具備5個(gè)自由度的控制能力:水平,、俯仰、調(diào)焦,、左扉和右扉(左扉,、右扉指燈具前方用于遮擋光路的扉頁(yè)),同時(shí)具備過(guò)流檢測(cè)、超速檢測(cè),、傳感器失效檢測(cè)等功能,并且可以與控制臺(tái)進(jìn)行雙向通訊,接收控制臺(tái)發(fā)來(lái)的指令或上報(bào)燈具狀態(tài),。
??? 燈具控制器主要由位置測(cè)量、電機(jī)驅(qū)動(dòng),、CAN總線通信接口等功能模塊組成,整體方案如圖1所示,。它采用基于8051內(nèi)核、內(nèi)置A/D轉(zhuǎn)換電路的80C552作為主CPU,。
?
??? 燈具各自由度輸出轉(zhuǎn)軸裝有線性型精密電位器進(jìn)行位置測(cè)量(對(duì)于調(diào)焦測(cè)量,使用齒輪齒條機(jī)構(gòu)將直線位移轉(zhuǎn)換為角度位移),。電位器的活動(dòng)范圍為270度,使用10bit A/D轉(zhuǎn)換器,最高理論精度為270度/210=0.263度。
??? CPU將實(shí)測(cè)位置和控制臺(tái)傳來(lái)的設(shè)定位置進(jìn)行比較,計(jì)算出應(yīng)如何驅(qū)動(dòng)伺服電機(jī),。
??? 電機(jī)的控制電路采用PWM方式,每個(gè)電機(jī)由一個(gè)H橋驅(qū)動(dòng),效率高,、發(fā)熱小、易于調(diào)試,。由于要控制5個(gè)直流減速電機(jī),因此需要5組雙相共10路PWM信號(hào),由一片10通道PWM芯片生成,。該芯片實(shí)際上是由新型的高速AVR單片機(jī)AT90s2313構(gòu)成的虛擬外設(shè),通過(guò)軟件編程仿真PWM功能。80C552利用串口將各個(gè)通道的PWM值發(fā)送給AT90s2313,AT90s2313在內(nèi)存中生成相應(yīng)的PWM信號(hào)序列,定時(shí)向外輸出,實(shí)測(cè)PWM重復(fù)頻率為9.8kHz,。程序中設(shè)計(jì)了特定算法,可以保證功率驅(qū)動(dòng)模塊的某個(gè)橋臂關(guān)斷后,對(duì)側(cè)橋臂要延時(shí)一段時(shí)間才會(huì)開(kāi)通,避免由于開(kāi)關(guān)速度的影響導(dǎo)致上下橋臂直通,。
??? 由于直流電機(jī)的啟動(dòng)電流" title="啟動(dòng)電流">啟動(dòng)電流和換向電流遠(yuǎn)大于正常工作電流,過(guò)高的啟動(dòng)電流除了會(huì)造成系統(tǒng)成本增加外,還有可能燒毀換向器;另外,直流電機(jī)的電磁力矩與電流成正比,過(guò)高的啟動(dòng)力矩也對(duì)機(jī)械結(jié)構(gòu)的穩(wěn)定不利。因此,在電路中設(shè)計(jì)了過(guò)流斬波裝置來(lái)限制啟動(dòng)電流,。
??? 使用現(xiàn)場(chǎng)總線進(jìn)行分布式控制是本系統(tǒng)的主要特色之一,本方案中選用了CAN總線,燈具對(duì)外連線除電源線外,只有一根屏蔽式雙絞線,布線方便,、成本低廉,、擴(kuò)展性強(qiáng)。CAN總線接口電路由通信協(xié)議控制芯片SJA1000和總線收發(fā)器82C250等組成,。
??? 由于每個(gè)燈具要有獨(dú)立的CAN總線地址,且每個(gè)電機(jī),、減速器、機(jī)械安裝尺寸均有一定的個(gè)體差異,因此不同的燈具上會(huì)有不同的控制參數(shù),。在設(shè)計(jì)中,應(yīng)盡量減少需要調(diào)整的參數(shù),對(duì)于一定要調(diào)整的部分,應(yīng)將它們存儲(chǔ)在EEPROM中,每次開(kāi)機(jī)讀取,。
??? EEPROM中的參數(shù)關(guān)系到燈具控制器能否正常工作,一旦出廠,一般不建議更改。但是為了方便技術(shù)人員進(jìn)行調(diào)試,在電路中仍設(shè)計(jì)了開(kāi)發(fā)人員接口,在現(xiàn)場(chǎng)無(wú)需拆下,且無(wú)需編程器就可以使用計(jì)算機(jī)串口讀取,、修改EEPROM中的內(nèi)容,。
2 CAN總線通信軟件的設(shè)計(jì)
??? CAN總線[2]是德國(guó)Bosch公司在20世紀(jì)80年代初為解決現(xiàn)代汽車(chē)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換問(wèn)題而開(kāi)發(fā)的一種串行數(shù)據(jù)通信總線,是最早在我國(guó)得到應(yīng)用的現(xiàn)場(chǎng)總線之一。它實(shí)現(xiàn)了ISO/OSI七層模型中的物理層和數(shù)據(jù)鏈路層,總線上任何節(jié)點(diǎn)均可主動(dòng)向其它節(jié)點(diǎn)發(fā)送信息,數(shù)據(jù)采用短幀結(jié)構(gòu),最長(zhǎng)8個(gè)字節(jié),不易受干擾,故障節(jié)點(diǎn)可自動(dòng)脫離總線,。
??? CAN總線通信控制器SJA1000由82C200發(fā)展而來(lái),它兼容82C200的電氣特性和工作模式,并對(duì)功能進(jìn)行了擴(kuò)展,。它集成了CAN協(xié)議的數(shù)據(jù)鏈路層的全部功能,可自動(dòng)完成數(shù)據(jù)編碼、成幀,、沖突檢測(cè),、循環(huán)冗余校驗(yàn)、出錯(cuò)重傳等工作,??偩€收發(fā)器82C250負(fù)責(zé)TTL電平和CAN總線差分電平之間的轉(zhuǎn)換。
??? CAN總線軟件包主要包括初始化函數(shù),、發(fā)送函數(shù)和接收中斷函數(shù),。
??? 初始化函數(shù)的主要工作流程見(jiàn)圖2。
?
??? SJA1000有兩種工作狀態(tài):復(fù)位狀態(tài)和正常狀態(tài),。復(fù)位狀態(tài)在上電后直接進(jìn)入,也可以通過(guò)軟件置位進(jìn)入,。SJA1000的所有初始化操作需在復(fù)位狀態(tài)完成。其中,接收濾波碼來(lái)自EEPROM,每個(gè)燈具有不同的接收濾波碼;為配合82C250,輸出模式寄存器設(shè)置成推挽模式,正極性輸出,。初始化完成后,轉(zhuǎn)入正常狀態(tài),填寫(xiě)發(fā)送緩沖區(qū),釋放接收緩沖區(qū),即可正常發(fā)送接收,。
??? 發(fā)送函數(shù)首先判斷上次發(fā)送是否完成,若完成則在緩沖區(qū)內(nèi)填寫(xiě)新的數(shù)據(jù),啟動(dòng)發(fā)送;否則等待直至超時(shí),發(fā)送完成與否由狀態(tài)寄存器指示。
??? 接收函數(shù)采用中斷方式,SJA1000內(nèi)部包含深度為64字節(jié)的接收FIFO緩沖區(qū),芯片無(wú)需CPU的干涉就可以自動(dòng)對(duì)收到的信息按先后順序排隊(duì),提供了很強(qiáng)的抗超載能力,因此在主程序中不需要自建接收FIFO,簡(jiǎn)化了編程,。中斷服務(wù)函數(shù)對(duì)接收到的數(shù)據(jù)進(jìn)行簡(jiǎn)單的預(yù)處理并設(shè)置標(biāo)志位后退出,并在主循環(huán)內(nèi)完成回送數(shù)據(jù)幀等后續(xù)工作,。
??? 控制臺(tái)與燈具控制器的應(yīng)用層協(xié)議如下:命令幀由主控臺(tái)發(fā)出,返回幀由燈具控制器回送,長(zhǎng)度均為五字節(jié)(包括目標(biāo)地址),其中前兩字節(jié)是地址碼,第三個(gè)字節(jié)是命令幀的類(lèi)型,如設(shè)置位置幀、查詢錯(cuò)誤幀等,最后兩字節(jié)是參數(shù),如位置設(shè)置量等,。
3 閉環(huán)位置伺服控制
??? 在開(kāi)發(fā)初期階段,曾經(jīng)使用過(guò)分段PID進(jìn)行閉環(huán)位置伺服控制,通過(guò)一定的調(diào)整,可以獲得較好的效果,。但是分段PID控制需調(diào)整的參數(shù)較多,對(duì)于不同種類(lèi)和大小的燈具,調(diào)整工作量較大,而且Ki、Kd等系數(shù)的物理意義難于向普通調(diào)試人員解釋,故最終選擇了模糊控制算法[3],。它的適應(yīng)性好,、魯棒性強(qiáng)、調(diào)整少,且“中速”,、“比較接近”等參數(shù)極易為人理解,實(shí)測(cè)各參數(shù)均有較大的適應(yīng)性,不用過(guò)多調(diào)整,。
??? 典型的模糊控制器" title="模糊控制器">模糊控制器分為三個(gè)部分:輸入變量模糊化,、模糊推理" title="模糊推理">模糊推理和解模糊化,。
??? 燈具模糊控制器的輸入量為位置殘差e和轉(zhuǎn)角速度v,輸出是發(fā)送給電機(jī)驅(qū)動(dòng)模塊的PWM值,。如圖3所示,u表示位置設(shè)定值,y表示伺服機(jī)構(gòu)測(cè)量值。
?
??? 所有輸入變量的模糊隸屬度函數(shù)都采用三角形且全交疊,如圖4所示,。
?
??? e的模糊集合有五個(gè):{大的正值,小的正值,零,小的負(fù)值,大的負(fù)值},用PB,、PS、Z,、NS,、NB表示。
??? v的模糊隸屬度函數(shù)如圖5所示,。v的模糊集合有三個(gè):{正,零,負(fù)},用P,、Z、N表示,。
?
??? 最常用的模糊推理方法有Mamdani型和Sugeno型[4],兩者在很多方面是相同的,不同的是Mamdani型的模糊推理后件是模糊量,而Sugeno型的模糊推理后件是線性變量或常量,。比如推理規(guī)則:If Input1=x and Input2=y,then Output is z=ax+by+c中,Input1和Input2是前件,是模糊變量,z是后件,是確定的值。如果系數(shù)a=b=0,則z=c為常量,稱為0階Sugeno模型,。
??? 每條邏輯規(guī)則的輸出z的權(quán)重wi由AND算子決定,wi=AndMethod(F1(x),F2(y)),其中F1,、2()是Inputs1和Inputs2的模糊隸屬度函數(shù)。
??? 對(duì)于結(jié)論相同的邏輯規(guī)則的輸出,權(quán)重ωi由OR算子決定,ωi=OrMethod(wi1,wi2),。
??? Sugeno模型的解模糊過(guò)程較簡(jiǎn)單,最終的輸出值是各結(jié)論輸出zi的加權(quán)平均值:
???
??? 由于不需要像Mamdani型那樣計(jì)算面積重心,Sugeno型的解模糊算法相對(duì)簡(jiǎn)單,運(yùn)算量較小,。
??? Mamdani型和Sugeno型有各自的優(yōu)勢(shì),Mamdani型的優(yōu)點(diǎn)為:
??? ·直觀、符合人的習(xí)慣
??? ·廣泛被接受
??? Sugeno型的優(yōu)點(diǎn)為:
??? ·很高的運(yùn)算效率
??? ·可以協(xié)同線性控制理論(如PID)
??? ·可以使用優(yōu)化和自適應(yīng)技術(shù)
??? ·可以保證輸出平面的連續(xù)性
??? ·可以進(jìn)行數(shù)學(xué)分析
??? 對(duì)于本項(xiàng)目,通過(guò)在PC機(jī)中進(jìn)行的仿真和實(shí)際測(cè)試表明,二者的輸出平面和控制效果相近,。而Sugeno型運(yùn)算量少,更適合在單片機(jī)中使用,。
??? 模糊控制器的輸出為PWM值,采用0階Sugeno模型推理,有五個(gè)輸出值:{反向高速,反向中速,停,正向中速,正向高速},由NRun、NWalk,、Prone,、PWalk、PRun表示,模糊邏輯推理規(guī)則見(jiàn)表1,。
?
??? 對(duì)于不同的燈具和自由度,NWalk和PWalk的數(shù)值是可調(diào)參數(shù),從EEPROM中讀取,因此不能使用查表方式編程,而要進(jìn)行實(shí)時(shí)運(yùn)算,。為提高速度,在程序中所有的四則運(yùn)算都是字節(jié)型和整型,避免使用浮點(diǎn)量,標(biāo)準(zhǔn)8051內(nèi)核可以用一個(gè)指令完成,最長(zhǎng)為4個(gè)機(jī)器周期。模糊隸屬度值用0~255表示,而不是0~1,在運(yùn)算最后一步再作歸一化處理,。
??? 由于在模糊控制器中缺乏積分環(huán)節(jié),使得其無(wú)法對(duì)較小的殘差作出合理的反應(yīng),。例如由于電機(jī)、機(jī)構(gòu)的靜摩擦力的存在,當(dāng)殘差較小時(shí),電機(jī)無(wú)法啟動(dòng),。因此在控制器的輸出端疊加一個(gè)非線性的積分環(huán)節(jié),只在殘差e較小,、速度v為0的時(shí)候起作用,可以再處理這種情況。
??? 圖6是燈具伺服特性的實(shí)測(cè)曲線(俯仰自由度曲線)圖,虛線表示設(shè)定值,實(shí)線是實(shí)際位置測(cè)量值,。
?
參考文獻(xiàn)
1 陽(yáng)憲惠,徐用懋,魏慶福. 現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用. 北京:清華大學(xué)出版社,1998
2 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì). 北京:北京航空航天大學(xué),1996
3 孫增圻,張?jiān)倥d,鄧志東. 智能控制理論與技術(shù). 北京:清華大學(xué)出版社,1997
4 Fuzzy Logic Toolbox User’s Guide Version 2. The MathWorks Inc,2001