第六章 xPC Target 無感測直接轉矩控制系統
6.1 簡介
先前的章節中主要是探討感應電動機動態模型控制系統、無感測器控制系統 與 馬 達 參 數 量 測 的 原 理 及 數 學 模 型 分 析 , 皆 為 本 研 究 的 前 置 工 作 , 在 完 成 MATLAB/Simulink 整體控制系統架構模擬之後,在本章節裡將利用所建立的控制 模型,同時結合軟硬體架構以完成馬達控制系統來控制馬達之運轉。
在本研究中。整個系統是建構在 MATLAB 的操作環境內,利用 MATLAB 其 提供之 Simulink、Real-Time Workshop( C 程式碼產生器)及 xPC Target(PC 環境即 時控制模塊組)來建立整個馬達控制系統,MATLAB 中所建立之控制系統,經 Real-Time Workshop 編譯成 C code 再經由 compiler 編譯成 Target 的 machine code,利用網路傳輸(TCP/IP)或 RS232 將主控端電腦(Host pc)所建構模型 download 至受控端電腦(Target PC)[28-31],以傳送訊號給變頻器使馬達驅動。
6.2 軟體架構介紹
本研究所使用之軟體部份,主要有 MATLAB 和 Microsoft Visual C++ Compiler
V6.0 兩套軟體。其中 MATLAB 程式軟體包括了:MATLAB Version 7.0、Simulink
Version 6.0、Real-Time Workshop(RTW) Version 6.0 及 xPC Target Version 2.5,又其
中使用 Microsoft Visual C++ compiler V6.0 做為系統程式編譯之整合,如圖 6.1 所
示為使用 RTW 與 xPC Target 發展即時控制之程序流程[28、29]。
圖 6.1 使用 RTW 與 xPC Target 發展即時控制之程序流程
6.2.1 xPC Target 系統簡介
xPC Target 為 MATLAB/Simulink 的一個工作模組,是一種運用於 MATLAB
當中 Real-Time Workshop 所製造的產品,可獨立在無 Windows 作業環境的標準個
人電腦中,執行由 Simulink 和 Real-Time Workshop 轉換完成的應用程式。xPC 系 統主要分為主控端電腦(Host PC)與受控端電腦(Target PC),主控端電腦負責執行 MATLAB/Simulink 控制程式系統模型的建構與模擬分析,然後經由 Real-Time Workshop、Target Language 編譯程序與 State-flow Coder 編譯產生可執行檔,利用 Host PC 所製作的特殊開機磁碟片在 Target PC 開機,接著主控端電腦的模型可經 由 RS-232 或是 Ethernet(TCP/IP)連結下載至受控端電腦上執行。
其中受控端電腦只需要執行 MATLAB/xPC Target 的工作程式,可獨立在無 Windows 這類的作業環境的簡單個人電腦,甚至電腦可以不必裝上硬碟。而受控 端電腦必須安裝 xPC -MC240 PCI I/O 介面卡來連接所要控制的受控體,如圖 6.2 所示為整體 Host PC、TargetPC 與受控體連結示意圖。
圖 6.2 Host PC、Target PC 與受控體連結示意圖
6.2.2 xPC Target 之環境設定與開機片製作
以上大約介紹了主控端電腦與受控端電腦連結方法後接下來說明由 Host PC
所製作的開機片過程步驟,首先在 MATLAB 視窗下點選 Start→Simulink→xPC
Target→Environment setup(以 MATLAB 7.0 為例)如圖 6.3 所示,然後將會出現 xPC
Target 的環境參數設定視窗如圖 6.4 所示[30]。
圖 6.3 進入環境設定之步驟
圖 6.4 環境參數設定
圖 6.4 之參數方塊設定內容說明如下:
C Ccompiler:選擇 C 語言的編譯器,有 Visual C 和 WatCom C 兩種。
CompilerPath:C Compiler 的路徑。(Visual C 預設位置為 c:\program files\micosoft visual studio)
TargetRamSizeMB:使用 TargetPC 記憶體的大小。
MaxModelSize:限制 download model 的大小。
SystemFontSize:設定系統字型的大小。
CANLibrary:使用 CAN BUS 的種類。
HostTargetComm:Host PC 與 Target PC 間的傳輸模式,分 TCP/IP 與 RS-232 兩種。
TargetScope:開啟或關閉 Target PC 的 Scope。
TargetMouse:開啟或關閉 Target PC 的 Mouse。
RS232HostPort:當選擇由 RS232 傳輸時,選擇 COM1 或 COM2。
RS232Baudrate:選擇 RS232 的傳輸速度。
TcpIpTargetAddress:填入 Target PC 的 IP
TcpIpTargetPort:填入 Target PC 的 Port No.,預設值為 22222。
TcpIpSubNetMask:Ethernet(TCP/IP)網路子遮罩。
TcpIpGateway:Ethernet(TCP/IP)通訊閘。
TcpIpTargetDriver:選擇網路卡的種類,預設為 NE2000。
TcpIpTargetBusType:選擇網路卡的界面,選擇 PCI 或是 ISA。
TcpIpTargetISAMemPort:當網路卡為 ISA 時,才需填寫。
TcpIpTargetISAIRQ:當網路卡為 ISA 時,才需填寫。
xPC Target Embedded Option:選擇用 floppy 開機或 dos 開機啟動 RTOS(Target PC 的 OS)。
再完成以上環境參數設定後,即可以點選 BootDisk,視窗即會跳出如圖 6.5 所示對話方塊,接著將 3.5 吋軟碟片放入 Host PC,然後點選 OK,xPC Target 便出 現如圖 6.6 對話視窗開始進行製作開機片,製作過程需 1 至 2 分鐘。
圖 6.5 點選 BootDisk 後對話方塊圖
圖 6.6 開始進行製作開機片圖
在 Host PC 完成所製做的開機片中主要包含了三個檔案:BOOTSECT.RTT、
checksum.dat 與 XPCTGB1.RTA。BOOTSECT.RTT 主要是做為將 Target PC 開機用,
使 Target PC 進入在 DOS 環境下執行;checksum.dat 則主要是設定 Target PC 網路 IP 位置,使 Host PC 能與 Target PC 透過網路線溝通;XPCTGB1.RTA 主要作為 Host PC 檔案 Build 到 Target PC 過程中所須用到的檔案。
現在將 Host PC 所製做的開機片插入 Target PC,預先選用電腦軟碟開機使
Target PC 開機完成進入畫面,如圖 6.7 所示,即在 Target PC 端螢幕畫面中顯示出
Target PC 的 IP、Sample Times 和等等執行狀態。
圖 6.7 xPC Target 開機完成後畫面
當 Target PC 開機完成之後,便可以在 Host PC MATLAB 視窗下鍵入
getxpcpci(‘all’)指令來確認 Host PC 與 Target PC 是否成功溝通,如圖 6.8 所示,如
果 Device Name 有顯示出 xPC-MC240 的 PCI 介面卡名稱,便表示 Host PC 與 Target
PC 已成功連線,然後使用 xpctest(‘noreboot’)指令來確認 Host PC 與 Target PC 的網
路連結、xPC 和 Visual C 是否正常,如圖 6.9 所示如果測試都為正確,則表示連結
成功。
圖 6.8 測試 Host PC 與 Target PC I/O 卡示意圖
圖 6.9 測試 Host PC 與 Target PC 網路連結
、xPC
和Visual C
示意圖6.2.3 Real-Time Workshop(RTW)簡介
RTW 也是在 MATLAB/Simulink 底下的一個工作模組,可執行即時控制或獨 立非即時的模擬並自動地建立規劃的目的,其產生的程式碼可操作在快速專有即 時模型系統下,自動地從 Simulink 模型中產生可自訂的 C 程式碼以實現快速原型 化與硬體迴路控制的模擬,同時讓使用者能和由 Simulink 模型產生的程式碼遠端 的互動,例如參數調整、除錯及分析等,如圖 6.10 所示為 RTW 之作業流程。RTW 工作模組是在 Host PC 上執行,在模擬執行前必須先做編譯程序及相關命令之設 定。然後使用者必須將 Matlab/Simulink 所建構的控制系統模型利用 Ethernet 下載 至 Target PC 的記憶體內,等待由主控端電腦下達指令後開始動作。
由如圖 6.10 得知,在 Matlab/Simulink 建構之模型圖模擬 Build 後,將會由 RTW 產生一個對應模擬圖 model.rtw 的檔案,再經由 Target Language 編譯程序後,產生 C 語言碼的檔案,而 system.tmf 檔 Build 後產生的 model.mk 檔是負責在模擬圖中 連結程式碼與各個 Block 檔案的功能之運作,經由 make 控制命令將 model.c、
model.h、model_private.h 和 model.mk 等連接(link)為可執行檔 model.exe,最後
Download 至 Target PC 硬體部分執行[28-29]。
圖 6.10 RTW 之作業流程[28-29]
在 Matlab/Simulink 模型程式中點選 simulation→configuration parameters→
Real-Time Workshop 將出現如圖 6.11,RTW Build 之命令設定對話方塊圖,點選 Browse 方塊即出現如圖 6.12 然後選擇 xpctarget.tlc,最後點選 OK 鍵出現如圖 6.13 完成設定,Real-Time Workshop build 過程是由(1).make_rtw 來控制,make_rtw 會 編譯模擬程式的方塊圖且產生一個相對 model.rtw 的檔案,然後 make_rtw 會由 (2).Target Language Compiler(TLC)(xpctarget.tlc)檔產生 C 語言碼,如(model.c、
model.h、model_private.h),因此必須指定檔案 System target file 編輯,而 make_rtw
會由指定的(3).Template makefile(xpc_default_tmf)產生一個 model.mk 檔案,最後由
make_rtw 呼叫 Make command 將所有產生之 model.c、model.h、model_private.h 和
madel.mk 檔案編輯,連接為可執行檔 model.exe,然後 Download 至 Target 硬體上 執行[28-29]。
圖 6.11 RTW Build 之設定圖
圖 6.12 選擇 xpctarget.tlc 之設定圖
圖 6.13 RTW Build 設定完成圖
6.3 xPC Driver 安裝步驟與 TeraSoft xPC-MC240 PCI I/O 卡之 Block 介紹及說
明[30]
6.3.1 xPC Driver 安裝步驟
1. 首 先 將 安 裝 光 碟 放 至 光 碟 槽 中 , 先 把 xPC_MC240_PCI_TeraSoft_xPC_Driver 資料夾複製到 MATLAB 底下的目錄
\toolbox\rtw\targets\xpc\target\build\xpcblocks 之資料夾下。
2.開啟 MATLAB 並且設定 xPC_MC240_PCI_TeraSoft_xPC_Driver 的路
徑 ; 於 MATLAB 視 窗 中 選 擇 File\SetPath…\AddFolder\ 然 後 選 取
xPC_MC240_PCI_TeraSoft_xPC_Driver 資料夾並且 Save 起來,如圖 6.14 所示。
圖 6.14 設定 xPC_MC240_PCI_TeraSoft_xPC_Driver 的路徑
3.關掉 MATLAB 後,再重新開啟進入 MATLAB\Simulink Library Browser,
即可出現 TeraSoft_xPC_Driver Blocksets 如圖 6.15 所示。
圖 6.15 TeraSoft_xPC_Driver Blockset
6.3.2 TeraSoft xPC-MC240 模塊介紹及功能說明
在本研究中所使用之 TeraSoft xPC-MC240 Block,其功能說明及設定敘述如 下:
1.xPC-MC240 Initialization 如圖 6.16 所示:
功能說明:每一控制模擬圖必須至少要有一張卡的 Initialization Block,目的 為與 xPC-MC240 PCI I/O Card 作溝通。
圖 6.16
xPC-MC240 Initialization
設定說明:如圖 6.17 所示,PCI Slot 預設值為-1,如果只使用單張卡,則 PCI slot 填入-1 即可,若使用兩張卡以上,則需填入 Slot number。要得知 Slot number 的方法,可在 MATLAB 中下 getxpcpci(‘all’)的指令,即可得知 PCI Bus 上的 Slot number。
圖 6.17
xPC-MC240 Initialization Block 之參數設定
2.ADC(Analog to Digital Converter)如圖 6.18 所示:
功能說明:當要抓取外部類比訊號至內部轉換為數位訊號觀察時,則需用到 此 Block。
圖 6.18 xPC-MC240_ADC
設定說明:如圖 6.19 所示,PCI Slot 預設值為-1,如果只使用單張卡,則 PCI slot 填入-1 即可,若使用兩張卡以上,則需填入 Slot number。其中每一個 AD Blocks 只能選擇 AD1 至 AD16 中的一個選項,若有重複情形時,則以較晚順序執行之 Blocks 輸出的值為準。
圖 6.19 xPC-MC240_ADC
Block 參數設定
3.DAC(Digital to Analog Converter)如圖 6.20 所示:
功能說明:當要由內部數位訊號轉換至外部類比訊號做觀察時,則需用到此 Block。
圖 6.20 xPC-MC240_DAC
設定說明:如圖 6.21 所示,PCI Slot 預設值為-1,如果只使用單張卡,則 PCI slot 填入-1 即可,若使用兩張卡以上,則需填入 Slot number。其中每一個 DA Blocks 只能選擇 DA1 至 DA4,4 組 Channel 選項。
圖 6.21 xPC-MC240_DAC
Block 參數設定
4.PWM(Pulse Width Modulator)如圖 6.22 所示:
功能說明:xPC-MC240_PWM 為輸出 PWM 訊號用。
圖 6.22 xPC-MC240_PWM
設定說明:如圖 6.23 所示,PCI Slot 預設值為-1,假如只使用單張卡,則 PCI slot 填入-1 即可,若使用兩張卡以上,則需填入 Slot number。其中啟動三組 PWM 的 Dead-Band Timer。為 0-255 間的整數,例如當輸入數值為 255 時,PWM 的 Dead-Band Time 為 25.6us。
圖 6.23
xPC-MC240_PWMBlock 參數設定
5.QEP(Quadrature Encoder Pulse)如圖 6.24 所示:
功能說明:xPC-MC240_QEP 為量測馬達轉速用。
圖 6.24 xPC-MC240_QEP
設定說明:如圖 6.25 所示,PCI Slot 預設值為-1,如果只使用單張卡,則 PCI slot 填入-1 即可,若使用兩張卡以上,則需填入 Slot number。其中 QEP Output 可 選擇 CountBase 及 RPMBase。選擇 CountBase 時,輸出為 Count 訊號;若選擇 RPMBase 時,輸出為轉速。Optical Encoder(Pulse/Revolution)為一圈的 Pluse 數,
給 RPMBase 計算用。
圖 6.25
xPC-MC240_QEPBlock 參數設定
6.4 硬體架構介紹
6.4.1 整體架構與 TeraSoft xPC-MC240 PCI I/O Card 介紹
本研究的實驗設備主要包括兩台電 腦,Host PC(Intel Pentium(R) 4 CPU 3.0GHz,512MB 的 RAM)、Target PC(GenuineIntelx86 256MB 的 RAM)、TeraSoft xPC-MC240 PCI I/O Card(
鈦思科技公司)、一台馬達驅動變頻器(寧茂企業公司)與一 台感應馬達(東元電機公司),整體系統架構示意圖如圖 6.26 所示。其中 TeraSoft xPC-MC240 PCI I/O Card 為 16 位元 PCI 介面具有多組類比轉數位、數位轉類比有 正負範圍的輸出、PWM、Encoder 等多種功能,為使用者提供多樣化的功能並和 xPC Target 有緊密的結合,對於從事控制領域者,提供快速發展的設計環境。
圖 6.26 整體系統架構示意圖
xPC-MC240 PCI I/O Card 是鈦思科技公司自行研發製成、內含有 TI F240DSP
IC 之馬達控制與 PLX 9052 IC 的 PCI 卡。TeraSoft xPC-MC240 PCI I/O Card
硬體架 構圖,如圖 6.27 所示。其結合了 MATLAB 與 Simulink 產品家族之 xPC Target,可
直接在 MATLAB 環境下針對您的馬達控制模型進行即時的測試及驗證,大幅節省
開發成本及時間。為一成本低廉、容易操作上手之成套即時馬達控制解決方案
[30]。
圖 6.27 TeraSoft xPC-MC240 PCI I/O Card 硬體架構圖(資料來源:鈦思公司)
圖 6.27 之虛線方框內為 TeraSoft xPC-MC240 PCI I/O Card 之內部結構,其中 DSP F240 為控制 Encoder、Analog Input 與 PWM 之訊號輸入和輸出用,而 PLX9052 為 PCI 控制介面 IC,DAC7725 為控制 Analog Output 輸出訊號用。
如圖 6.28 所示為 PLX9052(PCI 控制 IC)與 DSP F240 溝通示意圖,xPC- MC240 PCI I/O Card 採用 PLX9052(PCI Controller)與 TI DSP F240 同時獨立運作的方式。
其中 SRAM 為兩顆晶片溝通之介面,PLX9052 與 TI DSP F240 之間的 Data Bus
和 Address Bus 與 SRAM 共同連接,並用 IC SN74LS245(Octal Bus Transceivers with
3-State Outputs)來隔離兩邊的訊號來避免干擾發生。
圖 6.28 PLX9052 與 DSP F240 溝通示意圖(資料來源:鈦思公司)
TeraSoft xPC-MC240 PCI I/O Card,以 TMS320F240DSP 為核心所設計而成,
提供主要基本功能如下
[30]:
(1)16 位元數位資料雙向傳輸 PCI 介面
(2)Windows Base VC++(V6.0)及 xPC(V2.0)驅動程式,適合單機多卡使用,均含程 式原始碼,並完全支援 xPC Target
(3)Integrated with TMS320F240DSP(20Mhz)
(4)16 組 Analog Input Channels(10-Bit ADC,0-5 V)
(5)4 組 Analog Output Channels(12-Bit DAC,±10V)
(6)16 組 Digital Inputs 與 16 組 Digital Outputs
(7)3 對 PWM(6 Channels TTL,5V)
(8)1 組 Encoder Input 以及 3 組 Input Capture
TeraSoft xPC-MC240 PCI I/O Card 操作環境與應用範圍如下
:(1)16 位元數位資料雙向高速傳輸 PCI 介面
(2)馬達控制
(3)數位訊號資料雙向傳輸 (4)工作電壓:+5V 350mA(max) (5)操作溫度:
(6)貯藏溫度: to
(7)環境濕度:0 to 90% non-condensing (8)尺 寸:189.9 mm x 96 mm
0C 50 0−
0C
−10 700C
6.4.2 TeraSoft xPC-MC240 PCI I/O Card 與變頻器間之連結與溝通說明
在介紹完實驗整體架構與 xPC-MC240 PCI I/O Card 功能後,接下來說明 xPC-MC240 PCI I/O Card 與變頻器之間接腳連接步驟,便使 xPC-MC240 PCI I/O Card 可以正確送出 PWM 訊號至變頻器進而輸出電壓來驅動馬達轉動。
如表 6.1 所示為 TeraSoft xPC-MC240 PCI I/O Card 腳位說明[參考 6.3.2TeraSoft xPC-MC240 模塊介紹及功能說明與 6.4.1 節 TeraSoft xPC-MC240 介紹],Pin1 及 Pin2 為 xPC-MC240 PCI Card 輸出+5V 電源接腳;Pin3~Pin18 為 Analog to Digital Converter 接腳(10-Bit ADC,0-5 V);Pin19~Pin22 為 Digital to Analog Converter 接 腳(12-Bit DAC,±10V);Pin23~Pin28 為 PWM 輸出訊號之接腳(3 對 PWM TTL,
5V);Pin29~Pin30 為 QEP(Encoder Input);Pin31~Pin32 在此無任何功用;Pin33 及
Pin34 為 xPC-MC240 PCI Card 之接地腳。圖 6.29 為 TeraSoft xPC-MC240 PCI I/O
Card 實體圖。
表 6.1 TeraSoft xPC-MC240 PCI I/O Card 接腳說明(資料來源:鈦思公司)
PIN# Signal PIN# Signal 1 +5V 2 +5V 3 AD1 4 AD2 5 AD3 6 AD4 7 AD5 8 AD6 9 AD7 10 AD8 11 AD9 12 AD10 13 AD11 14 AD12 15 AD13 16 AD14 17 AD15 18 AD16 19 DA1 20 DA2 21 DA3 22 DA4 23 PWM1 24 PWM2 25 PWM3 26 PWM4 27 PWM5 28 PWM6
29 CAP1 or QEP1 30 CAP1 or QEP1
31 CAP3 32 CAP4
33 GND 34 GND
圖 6.29 TeraSoft xPC-MC240 PCI I/O Card 實體圖
圖 6.30 為變頻器實體圖,如表 6.2 所示為 I/O 接腳說明
圖 6.30 變頻器實體圖
表 6.2 變頻器 I/O 腳位說明(資料來源:寧茂公司)
在瞭解以上 TeraSoft xPC-MC240 PCI I/O Card 與變頻器之接腳功能說明後,
接下來瞭解控制卡與變頻器之連接,首先將 TeraSoft xPC-MC240 PCI I/O Card 的 PWM 訊號接腳(Pin23~Pin28)與變頻器的 PWM 接受接腳(Pin3~Pin8)連結起來,
然後將 xPC-MC240 PCI 控制卡的接地 GND(Pin33 or Pin34)與變頻器的數位信號接
地腳 DGND(Pin2 or Pin18)連接起來,讓 PWM 訊號可以由 xPC-MC240 PCI Card
傳送至變頻器,如果變頻器沒有任何動作反應時,則可以檢查觀看變頻器之 Pin9~Pin11 與 Pin14~Pin15 接腳是否為 low 信號,若為 low 的信號則表示變頻器跳 脫保護。在當 Pin9~Pin11 與 Pin14~Pin15 接腳均為 Hi 的信號狀態時,此時會將 Hi 信號傳送入 Pin16 接腳,則變頻器成功將 PWM 訊號送出,同時也可以由 Pin17 接腳觀察輸出 PWM 訊號為 Output Enable(Hi)狀態或 Inhabit(Low)狀態。
圖 6.31 為一基本 PWM 測試模擬圖,用意是為了觀察控制卡 xPC-MC240 PCI 與變頻器連接是否正確及順利將三相的 PWM 訊號給變頻器進而驅動馬達轉動。在 此需要注意到 DSP F240 因受限效能關係所以在 xPC Target 端的 Sample Time 最高 只能設為 10KHz,又受限於變頻器之 Dead time 設定至少需 2 微秒以上,所以 xPC-MC240 PCI Card 的 PWM Block 中 Dead-Band Timer 要配合設定在 2 微秒以 上,另外也要注意到模擬圖中 ADCIN Block 和 DAC Block 之接腳編號要與硬體 Analog to Digital Converter 接腳與 Digital to Analog Converter 接腳相對應且每個模 擬圖裡要記得放 xPC-MC240 Initialization Block。輸入 xPC-MC240 PCI I/O Card 之 PWM Block 為責任週期(0~1)訊號,變頻器接收 PWM 訊號後,然後使馬達驅動,
接著由 ADCIN1 及 ADCIN2 獲得馬達 a 相電流與 b 相電流,利用三相平衡定理求
出 c 相電流,再經過座標轉換得到 d 軸電流與 q 軸電流,d、q 軸電流可由 DAC Block
送出觀察。xPC-MC240_QEP 為觀測馬達轉速用。
xPC-MC240 QEP :CountBas CW/CCW(1/0) Pulses/Revolution:5000 xPC-MC240_QEP Frequence (Khz) PWM1_2 Duty Ratio (0~1) PWM3_4 Duty Ratio (0~1) PWM5_6 Duty Ratio (0~1) xPC-MC240_PWM
xPC-MC240 DAC :DAC1 xPC-MC240_DAC2 xPC-MC240 DAC :DAC4 xPC-MC240_DAC1
xPC-MC240 DAC :DAC3 xPC-MC240_DAC xPC-MC240 ADC :ADCIN4 xPC-MC240_ADC2
xPC-MC240 ADC :ADCIN2 xPC-MC240_ADC1 xPC-MC240 ADC :ADCIN1 xPC-MC240_ADC
xPC-MC240 Initialization xPC-MC240 Initialization f(u) ibs
f(u) ias
In1RPM Subsystem1 Sine Wave2
Sine Wave1
Sine Wave
Target Scope Id: 1 Scope (xPC) Scope f(u) Fcn2
f(u) Fcn1 f(u) Fcn
4.8 Constant6 0 Constant5
5 Constant4 0.5 Constant20.5 Constant1
0.5 Constant 圖6.31 PWM測試模擬圖