目標模組是指用C語言編程時,通常要建立一些用戶函式。如果這些函式具有通用性,一般的方法是將它們作成頭檔案,當需要時用“#include”命令將其包含到源程式之中,以提高編程效率。
基本介紹
- 中文名:目標模組
- 外文名:Target module
- 描述:具有通用性的函式模組
- 套用:用戶函式模組
- 學科:計算機
概念,基於多目標模組度的多層次電壓控制分區方法,研究背景,多層次電壓控制分區方法,研究結論,嵌入式目標模組在DSP系統開發中的套用,研究背景,DSP的特點及開發套用流程,DSP套用實例,
概念
目標模組在特定的程式中一般僅使用這些函式的一部分,若用上述方法包含所有函式,無疑會使源程式變得龐大而難於理解,並會影響編譯和執行效率。建立用戶目標模組庫可以解決這個問題,當把一個程式與一個庫連線時,連線程式將掃描該庫並自動選擇當前程式所需的模組。
TurboC2.0提供的TLIB.EXE是管理目標模組庫的實用程式。用戶建立自己的目標模組庫,需要以下幾個步驟:
1.編寫C語言源程式。源程式中不要定義main函式,而只包含其它若干個函式的定義。為了敘述方便假設源檔案名稱為ABC.C。
2.編譯源程式。注意,只進行編譯,不要連線。若源程式有錯誤,經修改之後再編譯,直到最後通過為止。這時系統就在指定的目錄中建立了與源檔案相對應的目標檔案:ABC.OBJ。
3.建立用戶目標模組庫。在DOS提示符下直接運行TLIB,TLIB命令行的一般格式如下:
TLIBlibname[/C][/E][commands][,listfile]
libname:要建立的用戶目標模組庫,預設的擴展名為.LIB
/C:大小寫敏感標誌。該選項不常用。
/E:建立擴展字典。建立擴展字典可以加速大的庫檔案的連線過程。
commands:操作列表,由若干個動作符以及每個動作符後面的檔案名稱或模組名組成。TILB支持的動作符有5種:“+"、“-"、“*"、“-*"或“*-"、“-+"或“+-"。“+"是把指定的檔案加到指定的庫中;“-"從庫中刪除指定的模組;“*"將相應的模組從庫中抽取並寫到指定的檔案中,原庫不變;“-*"或“*-"是將庫中指定的模組拷貝到指定的檔案中,然後把該模組從庫中刪除;“-+"或“+-"是將指定的模組用指定的檔案或模組代替。
Listfile:建立列表檔案。列表檔案按字母順序將庫中各模組列表,為文本檔案,可用DOS的TYPE命令查看。例如,用目標檔案ABC.OBJ建立用戶目標模組庫ABC.LIB,並獲取列表檔案ABC.LST,命令行如下:
TLIBABC.LIB+ABC.OBJ,ABC.LIB
如果用戶又編寫了新的函式,通過編譯之後同樣可利用上述方法將其加到用戶目標模組庫ABC.LIB之中,命令為:
TILBABC.LIB/E+A.OBJ+B.OBJ+C.OBJ
在上面的命令中,假設A.OBJ、B.OBJ、C.OBJ是用戶函式模組。命令中的/E參數表示建立擴展字典。
如果要用ABC1.OBJ模組代替ABC.LIB中的ABC.OBJ模組,並在螢幕上顯示經替換後的ABC.LIB庫中的模組列表,可這樣實現:TLIBABC.LIB-ABC.OBJ+ABC1.OBJ,CON(CON為DOS的設備檔案名稱,在這個命令中表示顯示器)。
在Navigator,似乎更容易將目標模組(ObjectModel)視為Javascript的一大功能。它的句法是Javascript,而各種Objects的集合看上去、使用起來都象是ArrayObjects(佇列對象)。對大多數人來說,一個頁面的ObjectModel和Javascript沒有本質的區別。
微軟推出了IE4.0。筆者本人就十分傾向使用這種瀏覽器,IE4.0的DOM是多數人選擇IE瀏覽器的其中一個原因。
IE4.0將ObjectModel從語言中分離出來,並將之納入到瀏覽器里。它不是說具有一種語言,能將不同目標對象放到一個頁面上,而是具有這種瀏覽器,能夠提供頁面的結構和顯示,並將這類信息通過程式語言或編纂組件以便於閱讀和管理。你沒有必要指定div標籤在Javascript的位置,只需弄清楚它在VBScript中位置有什麼不同。
總之,利用Javascript管理HTML就跟利用VBScript進行管理一樣簡易。同樣,跟利用Javaapplet,、利用ActiveX管理、利用Cobol一樣簡易。
同時,這種目標模組並不僅僅處理定位、圖象、嵌入標籤方面的問題,它還可以管理整個網頁結構。因此,如果你想知道一個頁面上有多少個標籤,或者想將第五段落變成藍色,或者想修改網頁元素的CSS-P值,你只需如法炮製,管理控制這些Objects,你使用的語言就能達到你的目的。
基於多目標模組度的多層次電壓控制分區方法
研究背景
法國電力公司提出的三級電壓控制模式已在國內外得到廣泛套用,取得了良好的效果。該模式中,二級電壓控制是協調本地控制和全局控制的中間環節,起到了承上啟下的重要作用。作為二級電壓控制的關鍵組成部分,電壓控制分區受到了諸多學者的關注。電壓控制分區問題屬於NP(Nondeterministic Polynomial)難題,分區方法主要關注滿意解的求取,常用的方法如聚類分析和智慧型算法等,其中聚類分析因物理意義直觀明確而得到了廣泛的套用和研究。
電氣距離的定義和最優分區的篩選是聚類分析的關鍵。文獻提出了經典的電氣距離定義,定義方式簡潔、易於計算,在基於凝聚聚類、分裂聚類(如α分解)及模糊聚類的分區方法中得到廣泛套用,但該定義將所有節點設為PQ節點,沒有突出無功源的控制特性;基於控制空間的電氣距離定義成為趨勢。該定義相比文獻的定義更詳細地刻畫了無功源的電壓控制特性,但 涉及多維數據。而文獻指出,隨著系統規模增大,聚類數據的維度增大,該定義對節點耦合程度的辨識能力會變差,導致聚類結果不準確甚至錯誤,即產生“高維聚類問題”。
多層次電壓控制分區方法
本文利用數據降維的思想處理高維聚類問題。在電力系統中,一個節點通常與其附近的若干節點電氣聯繫緊密,可看作一個節點簇。由於每一簇節點的電壓特性可由其中樞節點的信息表征,若保留中樞節點的信息而略去其餘節點的信息,可大幅降低電壓控制向量的維度,從而提高聚類準確性和計算效率。據此本文提出了基於多目標模組度的多層次電壓控制分區方法,如圖1所示。多層次框架分為以下3個階段。
a. 化簡階段:通過聚類找出節點簇,識別中樞節點,將系統原拓撲G0=(VT0,E0)(VT0為圖G0節點集,E0為邊集)逐步簡化至Gk=(Vk,Ek),電壓控制向量維度降至設定水平。
b. 分區階段:基於簡化後的系統,首先形成初始分區,再按各分區之間的電氣聯繫逐步凝聚分區,並根據 M鄱選出最優方案。
c. 還原調整階段:將分區階段得到的簡化後系統分區方案還原為原系統方案,適當調整邊界節點的區域歸屬,進一步最佳化分區質量,得到最終分區方案。
研究結論
研究了區域電壓的可控性和解耦性,提出了無功源節點電氣距離定義以及評價電壓控制分區質量的多目標模組度指標,在此基礎上利用多層次分區方法對系統進行分區。IEEE118節點系統算例驗證了本文方法的有效性,分區方案的區域內部聯繫緊密,區域間解耦程度較高,保證了區域內部連通性,符合分區原則。若干大系統算例測試表明,通過“化簡-分區-還原調整”機制,多層次分區方法可以有效地處理高維聚類問題,降低問題規模,使算法以較高的計算效率得到高質量的分區方案,對於大系統電壓控制分區和線上分區等問題有一定價值。
嵌入式目標模組在DSP系統開發中的套用
研究背景
隨著電子技術的不斷進步,特別是3C(計算機、通信、消費電子)的飛速發展,電子設備日趨數位化、小型化和集成化,嵌入式晶片逐漸成為設計開發人員的首選。DSP作為嵌入式晶片的典型代表之一,在信息產業領域得到了廣泛套用。
DSP雖然為3C產品的開發提供了很好的硬體支撐平台,但設計者仍得花費一定的時間去掌握DSP內部各種暫存器的正確設定、軟體編程方法以及控制算法設計,這必然會增大產品開發難度,延長產品開發周期, 從而影響開發效率。Matlab公司最新推出的針對DSP套用控制系統而開發的嵌入式目標模組Embedded Target for TI C2000 DSP即可解決上述問題,用戶通過使用該模組,不僅可以進行電路的系統級仿真,還可編譯生成相應的C語言代碼,並下載到目標板,直接運行程式,進行算法的探索與設計思路的驗證,提高開發效率。
DSP的特點及開發套用流程
作為一種專用的集成開發環境,Matlab公司最新推出的Embedded Target for TI C2000 DSP開發平台能夠讓設計人員直接進行(半)實物仿真、算法的探索與研究,以及產品可靠性的驗證,從而有效地減少了設計開發過程中的消耗,加快了原型開發的速度。該平台有如下幾個優點:
1)在TI C2000 DSP上自動測試、執行Simulink仿真模型;
2)提供模組化的系統和功能,比如PWM、ADC、CAN以及目標板載記憶體等;
3)生成文檔化的易讀可編輯的C語言代碼,並生成Code Composer Studio項目檔案 ;
4)在F2407 eZdsp評估板和F2812 eZdsp評估板上進行自動化實時測試;
5)對TI推出的IQmath Library提供模組化的支持,可以用於仿真和代碼生成 ;
6)可以進行定點系統的設計、仿真、自動定標和代碼生成工作。
Embedded Target for TI C2000 DSP 提供了將MATLAB和Simulink與TI eXpressDSP工具、TI C2000DSP控制器集成在一起進行系統開發的手段。通過Real-Time Workshop和TI的開發工具將Simulink模型轉變為實時C代碼,這樣就可以利用這些產品在TI C2000 DSP系統上(如F2812 eZds評估板和F2407 eZdsp評估板等)實現自動代碼生成、產品原型和嵌入式系統實現,並可實時進行算法驗證,極大地提高了開發效率。另外,該模組還有強大的可擴充能力,用戶可以增加自己的代碼、中斷服務程式、IO設備驅動到CCS(Code Composer Studio)的工程項目中,這樣就可以直接驅動自行開發研製的控制板卡或第三方的硬體設備板卡,完成產品的設計。採用該平台,開發人員不用編寫一行代碼,就可以完成幾乎所有設計、仿真和編程下載的工作,整個開發流程如圖2所示。
DSP套用實例
數字式逆變器採用單相半橋逆變結構,逆變控制器核心晶片選用TMS320F2812,輸出兩路 SPWM,EXB841 模組作為SPWM信號的驅動放大器,控制開關採用全控器件IGBT,輸入電壓311V,輸出電壓為100V(有效值),開關頻率為10kHz,逆變輸出電壓頻率為50Hz。逆變控制器的系統原理及接口框圖如圖3所示,逆變系統的電流和電壓通過電壓霍爾感測器和電流採樣電路分別檢測出來,送入模擬信號處理電路中進行模擬濾波處理和幅值調整,處理後的信號送入DSP晶片之中,經過 DSP片內的12位A/D轉換模組,變為數位訊號,DSP對信號進行數字濾波後,判斷單相半橋的輸出電壓、電流是否過壓或過流,並採取相應的保護措施;再根據控制算法進行處理,通過DSP片內的PWM輸出模組,得到所需要的兩路SPWM波形信號,經過EXB841驅動放大模組進行處理,最後對IGBT逆變半橋進行控制,從而實現直流-交流的逆變。同時還利用DSP片內的CAN2.0B模組,保留一個對外的CAN網路接口,便於使用網路通信對數字逆變控制器進行實時控制和監測。
在Matlab下輸入c2000lib命令,可以顯示Embedded Target for TIC2000 DSP所能夠支持的各種DSP功能模組及相關信息。仿真時,主要利用Embedded Target for TI C2000 DSP所提供的C28X ADC、C28X PWM以及Mailbox子模組。如圖4所示,系統利用A/D轉換模組,將採集到的逆變電流和電壓作為SPWM 輸出的控制源。並通過CAN通道1將A/D轉換值以及PWM輸出占空比輸送出來,同時還可以通過CAN通道0接收來自於網路上的通信命令,執行相應的子程式。C28XADC模組在功能上完全等同於TMS320F2812的12位A/D轉換模組,可以選擇合適的模擬輸入通道。C28X PWM模組在功能上完全等同於TMS320F2812事件管理器中帶死區的全比較單元模組,同樣可以選擇定時器、PWM 輸出單元、PWM引腳極性以及設定死區時間。