目標模塊
目標模塊
目標模塊是指用C語言編程時,通常要建立一些用戶函數。如果這些函數具有通用性,一般的方法是將它們作成頭文件,當需要時用“#include”命令將其包含到源程序之中,以提高編程效率。
目標模塊在特定的程序中一般僅使用這些函數的一部分,若用上述方法包含所有函數,無疑會使源程序變得龐大而難於理解,並會影響編譯和執行效率。建立用戶目標模塊庫可以解決這個問題,當把一個程序與一個庫連接時,連接程序將掃描該庫並自動選擇當前程序所需的模塊。
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將ObjectModel從語言中分離出來,並將之納入到瀏覽器里。它不是說具有一種語言,能將不同目標對象放到一個頁面上,而是具有這種瀏覽器,能夠提供頁面的結構和顯示,並將這類信息通過程序語言或編纂組件以便於閱讀和管理。你沒有必要指定div標籤在Javascript的位置,只需弄清楚它在VBScript中位置有什麼不同。
同時,這種目標模塊並不僅僅處理定位、圖象、嵌入標籤方面的問題,它還可以管理整個網頁結構。因此,如果你想知道一個頁面上有多少個標籤,或者想將第五段落變成藍色,或者想修改網頁元素的CSS-P值,你只需如法炮製,管理控制這些Objects,你使用的語言就能達到你的目的。
法國電力公司提出的三級電壓控制模式已在國內外得到廣泛應用,取得了良好的效果。該模式中,二級電壓控制是協調本地控制和全局控制的中間環節,起到了承上啟下的重要作用。作為二級電壓控制的關鍵組成部分,電壓控制分區受到了諸多學者的關注。電壓控制分區問題屬於NP(Nondeterministic Polynomial)難題,分區方法主要關注滿意解的求取,常用的方法如聚類分析和智能演演算法等,其中聚類分析因物理意義直觀明確而得到了廣泛的應用和研究。
電氣距離的定義和最優分區的篩選是聚類分析的關鍵。文獻提出了經典的電氣距離定義,定義方式簡潔、易於計算,在基於凝聚聚類、分裂聚類(如α分解)及模糊聚類的分區方法中得到廣泛應用,但該定義將所有節點設為PQ節點,沒有突出無功源的控制特性;基於控制空間的電氣距離定義成為趨勢。該定義相比文獻的定義更詳細地刻畫了無功源的電壓控制特性,但 涉及多維數據。而文獻指出,隨著系統規模增大,聚類數據的維度增大,該定義對節點耦合程度的辨識能力會變差,導致聚類結果不準確甚至錯誤,即產生“高維聚類問題”。
圖1 多層次分區方法
a. 化簡階段:通過聚類找出節點簇,識別中樞節點,將系統原拓撲G0=(VT0,E0)(VT0為圖G0節點集,E0為邊集)逐步簡化至Gk=(Vk,Ek),電壓控制向量維度降至設定水平。
b. 分區階段:基於簡化后的系統,首先形成初始分區,再按各分區之間的電氣聯繫逐步凝聚分區,並根據 M鄱選出最優方案。
c. 還原調整階段:將分區階段得到的簡化后系統分區方案還原為原系統方案,適當調整邊界節點的區域歸屬,進一步優化分區質量,得到最終分區方案。
研究了區域電壓的可控性和解耦性,提出了無功源節點電氣距離定義以及評價電壓控制分區質量的多目標模塊度指標,在此基礎上利用多層次分區方法對系統進行分區。IEEE118節點系統算例驗證了本文方法的有效性,分區方案的區域內部聯繫緊密,區域間解耦程度較高,保證了區域內部連通性,符合分區原則。若干大系統算例測試表明,通過“化簡-分區-還原調整”機制,多層次分區方法可以有效地處理高維聚類問題,降低問題規模,使演演算法以較高的計算效率得到高質量的分區方案,對於大系統電壓控制分區和在線分區等問題有一定價值。
隨著電子技術的不斷進步,特別是3C(計算機、通信、消費電子)的飛速發展,電子設備日趨數字化、小型化和集成化,嵌入式晶元逐漸成為設計開發人員的首選。DSP作為嵌入式晶元的典型代表之一,在信息產業領域得到了廣泛應用。
DSP雖然為3C產品的開發提供了很好的硬體支撐平台,但設計者仍得花費一定的時間去掌握DSP內部各種寄存器的正確設置、軟體編程方法以及控制演演算法設計,這必然會增大產品開發難度,延長產品開發周期,從而影響開發效率。Matlab公司最新推出的針對DSP應用控制系統而開發的嵌入式目標模塊Embedded Target for TI C2000 DSP即可解決上述問題,用戶通過使用該模塊,不僅可以進行電路的系統級模擬,還可編譯生成相應的C語言代碼,並下載到目標板,直接運行程序,進行演演算法的探索與設計思路的驗證,提高開發效率。
作為一種專用的集成開發環境,Matlab公司最新推出的Embedded Target for TI C2000 DSP開發平台能夠讓設計人員直接進行(半)實物模擬、演演算法的探索與研究,以及產品可靠性的驗證,從而有效地減少了設計開發過程中的消耗,加快了原型開發的速度。該平台有如下幾個優點:
1)在TI C2000 DSP上自動測試、執行Simulink模擬模型;
3)生成文檔化的易讀可編輯的C語言代碼,並生成Code Composer Studio項目文件;
4)在F2407 eZdsp評估板和F2812 eZdsp評估板上進行自動化實時測試;
5)對TI推出的IQmath Library提供模塊化的支持,可以用於模擬和代碼生成;
6)可以進行定點系統的設計、模擬、自動定標和代碼生成工作。
圖2 應用流程示意圖
圖3 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引腳極性以及設置死區時間。