【正文】
圖的參數(shù)發(fā)生改變, Simulink 調(diào)用一個外部接口 Mex 文件,把新的參數(shù)值和其他一些信號傳遞給外部 Mex 文件。 I/O boards 是由其廠商提供,往往通過 Switches 或者 Jumpers 和廠商提供的軟件來設(shè)定 based dresses, voltage levels 和 unipolar or bipolar modes。 RTWT 提供了一個通用的 Simulink block libraryI/O driver block library. 在 Matlab 命令中輸入 rtwinlib 便可以查看, I/O driver block library 提供了 RTWT 所支持的 I/O board 的驅(qū)動程序。這一功能的實現(xiàn)需要 RTWT的支持。這個模塊直接與實時內(nèi)核建立通訊,來開始和終止可執(zhí)行程序的運行。 RTWT 支持許多類型的 I/O 設(shè)備板卡 (包括 ISA 和 PCI 兩種類型 ) 。 只是 的一個拷貝,可以修改此文件來定制構(gòu)建程序的過程。 Makefile, 在這一步中,將產(chǎn)生定制的模板文件 (makefile ),文件名稱是 .。目標(biāo)文件分為兩種:一種是系統(tǒng)目標(biāo)文件,一種是模塊目標(biāo)文件。我們可以把這個文件看作是下 個過程的輸入,它將會在代碼生成后被自動刪除。 RTW 構(gòu)造應(yīng)用程序的過程由一個 Mfile 的命令來控制,對于大多數(shù)目標(biāo),缺省命令是 。該快速原型化目標(biāo)與用戶的物理系統(tǒng)連接在一起。 RTW 與 MATLAB 其他組成軟件的無縫連接,既滿足了設(shè)計者在系統(tǒng)概念與方案設(shè)計等方面的需求,也為系統(tǒng)的技術(shù)實現(xiàn)或完成不同功能的系統(tǒng)實時操作實驗提供了方便,并且為并行工程的實現(xiàn)創(chuàng)造了一個良好的環(huán)境。從 2D 原始數(shù)據(jù)的曲線圖到帶標(biāo)記的等值線圖和交互式的 GUI,這些工具提供了模型可視化的能力,幫助用戶理解復(fù)雜的系統(tǒng)。此外,用戶可以快速地將代碼片段和知識轉(zhuǎn)換成可以重復(fù)使用的自動分析例程,不需要變量聲明和維數(shù)定義,可很快編寫出程序。工具箱遠(yuǎn)遠(yuǎn)超出了提供一些基本算法的范疇:他們提供了一個學(xué)習(xí),研究,創(chuàng)新前沿理論和技術(shù)的舞臺。使用MATLAB 進(jìn)行算法開發(fā)就像平時書寫數(shù)學(xué)表達(dá)式一樣。 MATLAB 包含的主要數(shù)學(xué)函數(shù)有線性代數(shù)和矩陣運算、傅立葉變換和統(tǒng)計分析、微分方程求解、稀疏矩陣運算以及三角和其他初等數(shù)學(xué)運算等;除此之外,隨著 Matlab 的應(yīng)用領(lǐng)域不斷的擴大,補充了用于許多特定領(lǐng)域的函數(shù)。我們先詳細(xì)闡述過程控制混合仿真試驗系統(tǒng)的實現(xiàn)原理;最后介紹平臺控制算法的嵌入方法,并通過實驗仿真驗證平臺的有效性。9 MATALAB 混合仿真平臺控制算法的概述 MATALB 混合仿真平臺,即為將硬件引入到仿真回路里的半實物仿真系統(tǒng),可用于過程控制器的開發(fā)與測試。 過程控制混合仿真平臺實現(xiàn)原 理 : (1)數(shù)值計算, MATLAB 提供了大約 600 多個數(shù)學(xué)和工程上常用的函數(shù)。 (2)算法 開發(fā),強大的計算能力,方便易用的編程語言和豐富的數(shù)學(xué)函數(shù)使 MATLAB 最適于用于算法開發(fā)工作。將用戶在 MATLAB 中開發(fā)的算法結(jié)合到外部運行的系統(tǒng)中。提供的算法工具箱有 Neural Network Toolbox、 Optimization Toolbox、System Identification Toolbox、 Robust Control Toolbox、 Model Predictive Control Toolbox、 Control System Toolbox, Fuzzy logic Toolbox 等。 MATLAB 提供了方便的數(shù)據(jù)訪問工具。特別是 MATLAB 提供了對 3D 標(biāo)量和矢量可視化的能力,包括顯示等值面和流圖。它能直接從 Simulink 的模型中產(chǎn)生優(yōu)化的、可移植的和個性化的代碼,并根據(jù)目標(biāo)配置自動生成多種環(huán)境下的程序,在硬件上運行動態(tài)系統(tǒng)模型,同時還支持基于模型的調(diào)試。用戶可使用 Simulink 模型作為連接物理目標(biāo)的接口,完成對系統(tǒng)的測試。 其過程如下: ,首先分析 Simulink 模型,分析的過程包括以下一些主要任務(wù) ( 1)數(shù)值化仿真參數(shù)和??騾?shù); ( 2)傳遞信號寬度和采樣時間; 11 ( 3)確定模塊中框圖的執(zhí)行次序; ( 4)計算工作向量的大小 (主要是針對 SFunctions ???)。 TLC 程序來生成 C 代碼,在這個階段, TLC 把存儲在 中的內(nèi)部模型描述轉(zhuǎn)換為特定的目標(biāo)代碼。這些目標(biāo)文件指定如何把 用作輸入,從 modle 中生成代碼。生成的 makefi1e 用來指導(dǎo) make utility 編譯和鏈接模型,從而生成源代碼。 RTWT(RealTime Windows Target)是 MATLAB 提供和發(fā)行的一個基于 RTW 體系框架的附加產(chǎn)品,它可將 PC 機轉(zhuǎn)變?yōu)橐粋€實時系統(tǒng),其目的是引入一種快速原型設(shè)計的方法,用于控制器的實時測試和開發(fā)。用戶只需要安裝相關(guān)的軟件、一個編譯器和 I/O 設(shè)備板卡,就可將一個 PC 機用作實時系統(tǒng)并通過 I/O 設(shè)備與外部設(shè)備進(jìn)行連接。Simulink 模型和實時應(yīng)用程序之間保持著一個校驗機制,實時內(nèi)核使用這個校驗機制來判斷 Simulink 模型結(jié)構(gòu)在代碼生成的自動中是否和實時應(yīng)用程序的結(jié)構(gòu)保持一致。在 Simulink 模型中加入輸入輸出模塊,設(shè)置與實際板卡一致的參數(shù),然后編譯連接就可以了,需要說明的是,板卡的驅(qū)動程序并不真的參與編譯,而只是在程序運行期間,需要采集數(shù)據(jù)或者輸出數(shù)據(jù)時,進(jìn)行動態(tài)連接。通過各個 block 可以很方便的設(shè)置 I/O boards。在 RealTime Windows Target 也提供了參數(shù)設(shè)定的功能,這個功能13 的應(yīng)用與廠商提供的軟件有相同的靈活性。外部接口 Mex 文件執(zhí)行Inter Process Communication (IPC)通道一端的代碼,這個通道把 Simulink 過程 (Mex 文件執(zhí)行的過程 )和外部可執(zhí)行性程序的過程連接在一起。在 C/S 結(jié)構(gòu)中, Simulink 作為客戶端,外部程序為服務(wù)端。此外 Simulink 還提供了諸如模糊邏輯工具箱與神經(jīng)網(wǎng)絡(luò)工具箱之類的高級算法控制工具箱,利用這些工具箱,結(jié)合其他模塊,可搭建出各種與之相關(guān)的控制算法模型,如模糊 PID、神經(jīng)網(wǎng)絡(luò) PID 等,如以模糊 PID 控制器模型。 編寫 C 語言的 S函數(shù)實現(xiàn)控制算法,在實際應(yīng)用中,通常會發(fā)現(xiàn)有些算14 法用普通的 Simulink 模塊不容易搭建,對此可以使用 Simulink 支持的 S函數(shù)格式, S函數(shù)作為 Simulink 的擴 展工具有固定的程序格式,可采用MATLAB、 C/C++、 Fortran 等語言編寫。在 S函數(shù)中提供了與Simulink 仿真不同階段相對應(yīng)的回調(diào)函數(shù)。 C 語言 S函數(shù)不僅可以將具有 C 語言描述功能的代碼嵌入 Simulink 模塊,以便 于在 Simulink中仿真,而且可以很容易的將 C語言 S函數(shù)模塊功能代碼轉(zhuǎn)換成純 C代碼 。 (2)Passing the signal width and sampling time。s Sfunction supports this feature, so the algorithm extensions must use C / C + + language, S function. Sfunction, working principle and the basic SIMULINK simulation of a similar principle, every SIMULINK blocks have input u, output y, state 23 vector x and the other corresponding to the three stages of simulation methods. SIMULINK model through the cycle of calling a particular method of each module to plete the calculation of output value, such as, update discrete state values, calculating a state of differential and other tasks. In the Sfunction with the SIMULINK simulation is provided corresponding to different stages of the callback function. phase includes Sizes, module initializes the system since they were input dimension output dimension, the number of state variables, the definition of simulation sampling time and the role of initial state variables. Output stage modular puting system output. Loop simulation phase Update modular puting system is currently updating the value of state variables. CS function not only has the C language to describe the function of the code embedded in SIMULINK blocks for the simulation in SIMULINK, and can easily be C language Sfunction module function code into pure C code. 。 (4) Calculation of the size of the vector (mainly for SFunctions module box). In this process, RTW read the model file , and then pile it as a model of internal description. This description is stored in ASCII files and languageindependent, name . We can use