matlab電路仿真.doc
《matlab電路仿真.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《matlab電路仿真.doc(32頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Matlab電路仿真軟件包-simpowersystems 1. 入門 1.1. SymPowerSystem是什么 1.1.1. 介紹 在Matlab提供的simulink仿真環(huán)境下,與其他建模產(chǎn)品結(jié)合在一起,用于對(duì)電子、機(jī)械系統(tǒng)進(jìn)行建模。要學(xué)會(huì)使用SymPowerSystem,應(yīng)首先學(xué)會(huì)使用Simulink仿真。 1.1.2. 設(shè)計(jì)中的仿真的作用(略) 1.1.3. SymPowerSystem仿真庫(kù) 你可迅速將SymPowerSystem投入使用。該庫(kù)包含了許多典型的功率設(shè)備模型,例如,變壓器、導(dǎo)線、機(jī)械、能源電子等。這些仿真模型來(lái)源于產(chǎn)品手冊(cè),基于工程實(shí)際。 SymPo
2、werSystem包含一個(gè)主要的庫(kù):powerlib。powerlib庫(kù)顯示了所有包含的模塊和模塊名稱。 1.1.4. SymPowerSystem中的非線性模塊(略) 1.1.5. 仿真時(shí)需要的環(huán)境: Maltab 和Simulink 1.2. 如何使用該指南 1.2.1. 對(duì)于新用戶 將學(xué)會(huì)如下知識(shí)和技能: (1) 使用該庫(kù)創(chuàng)建和仿真電子電路模型 (2) 將一個(gè)電子電路于simulink模塊連接在一起 (3) 分析電子電路的穩(wěn)定狀態(tài)和頻率響應(yīng) (4) 離散化模型,以便加快仿真速度 (5) 使用矢量圖仿真方法 (6) 構(gòu)建自定義的非線性仿真模型 1.2.2. 對(duì)于經(jīng)
3、驗(yàn)豐富的模塊用戶(略) 1.2.3. 所有用戶(略) 1.3. 創(chuàng)建和仿真簡(jiǎn)單的電路 1.3.1. 介紹 SymPowerSystem允許你對(duì)包含線性或非線性的電子電路進(jìn)行建模和仿真。在本章節(jié)中,您將學(xué)習(xí)到: (1) 瀏覽SymPowerSystems的powerlib庫(kù) (2) 如何利用SymPowerSystem創(chuàng)建一個(gè)簡(jiǎn)單的電路 (3) 如何將電路與simulink模塊互聯(lián)。 下述電路是即將創(chuàng)建的電路: 圖1 要建模和仿真的電路 1.3.2. 使用powerlib創(chuàng)建電路 (1) 使用如下命令打開(kāi)powerlib: powerlib (2) 從powerl
4、ib的文件菜單下,允許“新建”菜單命令,新建一個(gè)空白電路穩(wěn)定,存為:circurt1 (3) 打開(kāi)Electrical Sources庫(kù),復(fù)制其中的AC Voltage Source模塊到circuit1中 (4) 雙擊AC Voltage Source,打開(kāi)其屬性設(shè)置對(duì)話框,按圖1所示進(jìn)行設(shè)置 (5) 改模塊的名稱為“Vs” (6) 將elements庫(kù)中的Parallel RLC Branch模塊復(fù)制到circuit1中,按圖1進(jìn)行參數(shù)設(shè)置 (7) 用同樣的方法加入其他模塊到電路中 (8) 注意加入的傳輸線模塊:傳輸線模塊模型圖如下(這是一段模型,一條導(dǎo)線通常有若干段,每一段參
5、數(shù)都一樣,如圖1所示): 該模型是對(duì)參數(shù)分布一致的傳輸線的模擬。它能傳輸?shù)碾娦盘?hào)最大頻率近似為: fmax=Nv/(8l) 其中,N---PI節(jié)數(shù), v---導(dǎo)線傳輸速度,v=1/(sqrt(L*C)) l----導(dǎo)線長(zhǎng)度。 關(guān)于Series RLC Load模塊: 描述該模塊的有如下參數(shù): normal voltage Vn(Vms):額定電壓(有效值) normal frequency(Hz):額定頻率 active power(w):有效功率(有功功率) 電阻消耗的功率 Inductive reactive power QL:感性無(wú)功功率 Cap
6、acitive reactive power QC:容性無(wú)功功率 (9)加一個(gè)電壓測(cè)量模塊(Voltage mesure block)到電路中,該模塊位于mesurements庫(kù)中 然后將simulink中的scope模塊添加到電路中,并將其與電壓測(cè)量模塊互聯(lián)。 1.3.3. 將電子電路與simulink連接起來(lái) 電壓測(cè)量模塊(Voltage mesure block)是SymPowerSystem模塊與simulink模塊直接的接口。對(duì)于上面的例子,你實(shí)現(xiàn)了一種從電路到simulink信號(hào)的接口。電壓測(cè)量模塊將電壓轉(zhuǎn)換成simulink信號(hào)。 類似的,電流測(cè)量模塊(current
7、mesure block)能將電流轉(zhuǎn)換為simulink信號(hào)。 你也可以將simulink信號(hào)連接到電路中,例如,你也可以將受控電壓源加入到電路中。如圖2所示。 圖2 1.3.4. 測(cè)量電壓和電流 電壓測(cè)量模塊和電流測(cè)量模塊有方向規(guī)定,標(biāo)+為正向,規(guī)定的方向是從正到負(fù),若電壓值或電流值為+,則表示他們的方向與規(guī)定方向相同,否則,相反。 萬(wàn)用表模塊(multimeter)則沒(méi)有事先規(guī)定的方向,它是根據(jù)仿真結(jié)果仿真后才顯示方向的??梢酝ㄟ^(guò)如下命令了解方向: get_param(gcb,Orientation) 1.3.5. 連接電容和電感的基本原則 (1) 理想電壓源不能與純
8、電容并聯(lián) (2) 理想電流源不能與純電感串聯(lián)。 違反上述原則,電路將無(wú)法仿真。必須修正。方法是在電容旁串聯(lián)一個(gè)小電阻或在純電感兩端并聯(lián)一個(gè)大電阻。 1.3.6. 使用powergui模塊仿真simpowersystem模型 powergui模塊對(duì)于任何包含simpowersystems模塊的simulink模型的仿真是必須的。他用于存儲(chǔ)等價(jià)的simulink電路,這些電路用來(lái)表示simpowersystem模塊的狀態(tài)方程。當(dāng)您在仿真中使用該模型,應(yīng)遵循以下原則: l 將powergui模塊置于仿真圖的頂層用以優(yōu)化性能。然而,你也可以把它置于任何需要的地方。例如,在一個(gè)子系統(tǒng)中。這不會(huì)
9、影響系統(tǒng)功能; l 其他(略) 1.4. 簡(jiǎn)單電路分析 1.4.1. 介紹 本節(jié)你將學(xué)習(xí): l 使用power_analyze命令獲取模型的狀態(tài)空間描述 l 使用powergui的圖形用戶接口計(jì)算電路的穩(wěn)態(tài)電壓和電流 l 電路的頻域分析 1.4.2. 電路狀態(tài)變量 電路狀態(tài)變量是與電路中的電感和電容元件有關(guān)的狀態(tài)變量。許多模塊中包含了電感或電容,如并聯(lián)RLC模塊,PI SectionLine模塊,等等。 電路的狀態(tài)變量有電路中各電容的兩端電壓和流經(jīng)各電感的電流組成。電路狀態(tài)變量的名稱由系統(tǒng)自動(dòng)產(chǎn)生,其命名規(guī)則如下: l 變量名由兩部分組成:前導(dǎo)符_后綴。前導(dǎo)符和后綴之間用
10、下劃線隔開(kāi); l 前導(dǎo)符為Il或Uc(Il表示流經(jīng)電感的電路,Uc表示電容器兩端的電壓)‘ l 后綴為模塊名稱。 1.4.3. 使用power_analyze進(jìn)行狀態(tài)空間描述 你可以使用power_analyze獲取一個(gè)電路模型的狀態(tài)空間描述,例如輸入下面的命令,可以獲取上面創(chuàng)建的簡(jiǎn)單電路的狀態(tài)空間描述信息: [A,B,C,D,x0,electrical_states,inputs,outputs]=power_analyze(circuit1) x’=Ax+Bu y=Cx+Du 要判定電路是否穩(wěn)定,只要求A的特征值,看看A的特征值的實(shí)部是否都小于0,只有滿足此條件,電路才是穩(wěn)
11、定的。 1.4.4. 穩(wěn)態(tài)分析 使用powergui的圖形用戶接口命令可以進(jìn)行電路的穩(wěn)態(tài)分析。 菜單命令:Analysis tools-->Steady-State Voltages and Currents 1.4.5. 頻率分析 powerlib包含了一個(gè)阻抗測(cè)量模塊(Impedance Measurement),可以用于測(cè)量電路中任意兩點(diǎn)間的阻抗。接下來(lái),你將使用兩種方法,利用該模塊測(cè)量節(jié)點(diǎn)B2點(diǎn)的阻抗: l 基于狀態(tài)空間模型進(jìn)行計(jì)算 l 使用阻抗測(cè)量模塊和powergui模塊進(jìn)行測(cè)量 (1) 利用狀態(tài)空間模型獲取阻抗-頻率之間的關(guān)系 注:下面已經(jīng)假定你的電腦上已經(jīng)安裝
12、了控制系統(tǒng)工具箱 要測(cè)量B2點(diǎn)的阻抗與頻率間的關(guān)系,需要在B2處加入另一個(gè)電流源,打開(kāi)前面繪制的仿真模型圖,將AC Current Source復(fù)制到電路中,最終如圖3所示。 圖3 接著,計(jì)算該電路的狀態(tài)空間方程: sys1 = power_analyze(circuit1,ss) 該方程描述的是電路的連續(xù)狀態(tài)空間方程。 在laplace域,B2點(diǎn)的阻抗定義為:由交流電流源注入的電流與U2測(cè)量的電壓間的傳遞函數(shù)。 利用下面的命令獲取狀態(tài)空間方程中的輸入輸出變量的名稱: sys1.InputName ans = U_Vs I_AC Current
13、Source sys1.OutputName ans = U_U2 U_U1 節(jié)點(diǎn)B2處的阻抗與該狀態(tài)空間模型的輸出2和輸入1間的傳遞函數(shù)相關(guān),對(duì)于0~1500Hz頻率范圍,阻抗可由下式計(jì)算并顯示出來(lái): freq=0:1500; w=2*pi*freq; bode(sys1(1,2),w); (2)利用阻抗測(cè)量模塊(impedance mesurement)和powergui模塊求阻抗與頻率關(guān)系 打開(kāi)powerlib的mesurement庫(kù),將阻抗測(cè)量模塊(impedance mesurement)復(fù)制到你的模型中,重命名為ZB2,將ZB2的兩個(gè)輸入分別連
14、接到B2點(diǎn)和地(這樣便可以測(cè)量B2點(diǎn)對(duì)地的阻抗)。 現(xiàn)在打開(kāi)powergui對(duì)話框,窗口中顯示只有一個(gè)阻抗在測(cè),命名為(ZB2,與模塊名相同),設(shè)置頻率范圍為0:2:1500,Z幅度顯示請(qǐng)選擇對(duì)數(shù)刻度(logarithmic),選中“Save data when updated”復(fù)選框,并輸入zData作為變量名用來(lái)保持阻抗-頻率數(shù)據(jù)。單擊“update”按鈕,可以看到改變參數(shù)后的阻抗幅值-頻率圖、阻抗相位-頻率圖。 注:ZData的第1列是頻率,第2列是阻抗(復(fù)數(shù)表示)。 1.5. 指定電路初始狀態(tài) 1.5.1. 介紹 在這一節(jié)中,你將學(xué)習(xí): l 包含有simpowers
15、ystems模塊的simulink模型圖的狀態(tài)變量有哪些? l 設(shè)定狀態(tài)變量的初始值 1.5.2. 狀態(tài)變量 包含有simpowersystems模塊的simulink模型圖的狀態(tài)變量由以下組成: l 與simpowersystems中的RLC支路模塊類型有關(guān)的電路狀態(tài)。他們?cè)谀P偷臓顟B(tài)空間描述中被定義。 l SimPowerSystems的電氣simulink模型的simulink狀態(tài),例如同步機(jī)械模塊,飽和變壓器模塊和三相動(dòng)態(tài)負(fù)載模塊 l 你的模型中的其他模塊的simulink狀態(tài) 下圖給出了包含上述三種模塊的一個(gè)實(shí)例。 1.5.3. 初始狀態(tài) 所謂初始條件,是指仿真
16、前應(yīng)用在整個(gè)系統(tǒng)上的各狀態(tài)變量的初始值,也稱作初始狀態(tài)。初始狀態(tài)可以在模塊中設(shè)定。大多數(shù)模塊允許用戶在設(shè)計(jì)時(shí)指定初始狀態(tài)。對(duì)于電路模型,simpowersystems可自動(dòng)設(shè)置模型的初始狀態(tài),并保證開(kāi)始仿真時(shí)直接進(jìn)入穩(wěn)態(tài)。 然而,你可以自行設(shè)定電路中的電容和電感的初始狀態(tài)。 使用power_init函數(shù)也可以設(shè)定初始狀態(tài) 1.5.4. 使用powergui設(shè)定電路初始狀態(tài) 第1步:在Matlab命令行中鍵入power_transient,打開(kāi)標(biāo)題為Transient Analysis of a Linear Circuits的SimPowerSystems實(shí)例。重命名其中RLC支路模
17、塊 第2步:從powergui模塊的分析工具菜單下,選擇“初始狀態(tài)設(shè)定”選項(xiàng),5個(gè)電路狀態(tài)變量的初始值已經(jīng)設(shè)定,這些初始設(shè)定能使電路一開(kāi)始仿真,就為穩(wěn)態(tài)。 第3步:打開(kāi)scope模塊,并開(kāi)始仿真。 第4步:返回到第2步,試著改變某些變量的初始值,再仿真,看看結(jié)果是否發(fā)生變化。若不懂,請(qǐng)看在線幫助。 1.6. 仿真暫態(tài)過(guò)程 1.6.1. 介紹 本節(jié)你將學(xué)習(xí)到: l 怎樣創(chuàng)建電路子系統(tǒng)(subsystem) l 使用斷路器進(jìn)行電路的暫態(tài)過(guò)程仿真 l 比較不同傳輸線模型下的時(shí)域仿真結(jié)果 l 如何離散化電路并將其仿真結(jié)果與相應(yīng)的連續(xù)的可變步長(zhǎng)算法的仿真結(jié)果相比較 1.6.2. 使
18、用開(kāi)關(guān)仿真暫態(tài)過(guò)程 simpowersystems的一個(gè)重要功能是對(duì)電路的暫態(tài)過(guò)程進(jìn)行仿真??梢栽陔娐分屑尤霗C(jī)械開(kāi)關(guān)或使用功率電子開(kāi)關(guān)來(lái)完成暫態(tài)過(guò)程的仿真。 首先,打開(kāi)前面創(chuàng)建的circuit1仿真模型,刪除連接到B2節(jié)點(diǎn)上的電流源,將新的系統(tǒng)另存為circuit2。在接入開(kāi)關(guān)前,最好修改一下電路,simpowersystems允許用戶將多個(gè)元器件組合在一起形成一個(gè)電路子系統(tǒng)。這一特點(diǎn)能使復(fù)雜電路大大簡(jiǎn)化。 使用這一特點(diǎn),將源阻抗轉(zhuǎn)換到一個(gè)子系統(tǒng)中: (1) 框選標(biāo)識(shí)為Rs_eq和Z_eq的兩個(gè)模塊,選擇“Edit-->create subsystem”菜單命令,這兩個(gè)模塊變成了一個(gè)子
19、系統(tǒng)模塊(subsystem) (2) 選擇“Edit > Mask subsystem”菜單命令,改變子系統(tǒng)圖標(biāo),在封裝編輯器中的icon選項(xiàng)中,輸入下列命令: disp(Equivalent\nCircuit) subsystem上就會(huì)顯示相應(yīng)文字。 (3) 選擇“Format > Show drop shadow”菜單命令,給子系統(tǒng)模塊設(shè)置陰影。 (4) 雙擊子系統(tǒng)模塊,可以查看其組成。 (5) 插入電路斷路器(a circuit braker) 斷路器是理想開(kāi)關(guān)與一個(gè)小電阻串聯(lián)組成的模型。關(guān)于斷路器的模型說(shuō)明,請(qǐng)參考matlab相關(guān)幫助。 按如下設(shè)置斷路器的參數(shù):
20、 (1) 打開(kāi)braker模塊對(duì)話框,將其參數(shù)作如下設(shè)置: Ron 0.001 Ω Initial state 0 (open) Rs inf Cs 0 Switching times [(1/60)/4] (2) 按前面的圖形連接各模塊 (3) 打開(kāi)scope U2,單擊參數(shù)圖標(biāo),選擇“Data History”選項(xiàng)卡,單擊“Save data to workspace”按鈕,指定變量名為U2來(lái)保存仿真結(jié)果,然后將U2的格式(format)選項(xiàng)設(shè)為“array”,同時(shí),去除“L
21、imit rows to last”選項(xiàng),以便顯示整個(gè)波形。 接著,便可以仿真系統(tǒng)了。 1.6.3. 連續(xù)、變步長(zhǎng)積分算法Continuous, Variable Time Step Integration Algorithms 打開(kāi)“PI section Line”對(duì)話框,確認(rèn)sections的數(shù)目設(shè)為1,打開(kāi)“Simulation > Simulation parameters”對(duì)話框,由于你的系統(tǒng)包含開(kāi)關(guān),故需要一個(gè)剛性的積分算法(a stiff integration algorithm)進(jìn)行仿真。在“solver”面板,選擇變步長(zhǎng)剛性積分算法(a stiff integrat
22、ion algorithm)ode23t。 保留其他默認(rèn)參數(shù)值(如相對(duì)誤差1e-3),設(shè)置仿真結(jié)束時(shí)間(stop time)為0.02秒,打開(kāi)示波器(scope),開(kāi)始仿真。觀察示波器U1和示波器U2上的波形。 一旦仿真結(jié)束,將U2的值保存給變量U2_1,即在工作空間中執(zhí)行如下命令: U2_1 = U2; 打開(kāi)PI section Line對(duì)話框,將sections的數(shù)目設(shè)為10,再次仿真,仿真結(jié)束,把U2的值保存給變量U2_2。 在將電路修改為分布參數(shù)模型之前,將系統(tǒng)另存為circuit2_10pi,以便以后重復(fù)使用。 用分布參數(shù)線(distributed parameter l
23、ine)模塊替換圖中的pi段線模塊,設(shè)置其相(phase)數(shù)為1。將該系統(tǒng)保存為circuit2_dist. 重新仿真,將U2賦給變量U2_d。 現(xiàn)在可比較上面三種不同模型的仿真結(jié)果了。每一個(gè)變量U2_1,U2_10,U2_d是一個(gè)兩列的矩陣,第1列是時(shí)間,第2列是對(duì)應(yīng)的電壓值。使用下列命令在同一幅圖上打印出三個(gè)波形(如圖5所示)。 plot(U2_1(:,1), U2_1(:,2), U2_10(:,1),U2_10(:,2),U2_d(:,1),U2_d(:,2)); 1.6.4. 離散化電路系統(tǒng) simpowersystems的一個(gè)重要特征是,他不僅能用連續(xù)或變步長(zhǎng)積分算法
24、進(jìn)行仿真,而且可以使用離散化電路系統(tǒng)的算法進(jìn)行仿真。對(duì)于小系統(tǒng),變步長(zhǎng)算法一般要比固定步長(zhǎng)算法快,因?yàn)樗枰姆e分的步長(zhǎng)的數(shù)目較少;而對(duì)于包含了許多狀態(tài)和非線性模塊(如功率電子開(kāi)關(guān))的大型電路系統(tǒng),離散化電路系統(tǒng)則具有較大的優(yōu)勢(shì)。 當(dāng)你離散化系統(tǒng)時(shí),仿真的精度由時(shí)間步長(zhǎng)控制。若使用太大的時(shí)間步長(zhǎng),精度可能不夠。確定時(shí)間步長(zhǎng)是否合適的唯一方法是通過(guò)改變時(shí)間步長(zhǎng),反復(fù)仿真,比較仿真結(jié)果。通常,對(duì)于在50Hz或60Hz的功率系統(tǒng)上或使用了線性整流功率電子(line-commutated power enectronic)元件(如二極管、可控硅等)的系統(tǒng)上進(jìn)行暫態(tài)仿真,取20us-50us的時(shí)間步長(zhǎng)
25、一般能取得較好的仿真效果。對(duì)于使用了強(qiáng)制整流功率電子開(kāi)關(guān)的系統(tǒng),必須減小時(shí)間步長(zhǎng)。絕緣柵極雙極性晶體管(insulated-gate bipolar transistor (IGBT)),場(chǎng)效應(yīng)管(field-effect transistor,FET),門極關(guān)斷晶閘管(gate-turnoff thyristor)等工作在很高的開(kāi)關(guān)頻率狀態(tài)下。 例如,要仿真一個(gè)工作在8Hz的脈寬調(diào)制(pulse-width-modulated ,PWM)轉(zhuǎn)換器,需要設(shè)置步長(zhǎng)大約為8us。 現(xiàn)在學(xué)習(xí)怎樣離散化你的系統(tǒng)并將仿真結(jié)果同連續(xù)和離散系統(tǒng)做比較。打開(kāi)你在前面保存的circuit2_10pi系統(tǒng),該系
26、統(tǒng)包含24個(gè)電路狀態(tài)和一個(gè)開(kāi)關(guān)。打開(kāi)powergui然后選擇離散化電路模型(discretize electrical model)。設(shè)置采樣周期25e-6s。重新開(kāi)始仿真,功率系統(tǒng)將使用Tustin方法(相應(yīng)于梯形積分)并以25us采樣周期進(jìn)行離散化。 打開(kāi)“Simulation > Simulation parameters > Solver”對(duì)話框,設(shè)置仿真時(shí)間為0.2s。啟動(dòng)仿真。 注:一旦系統(tǒng)被離散化,電路系統(tǒng)再無(wú)連續(xù)狀態(tài)了。因此,如果你不需要變步長(zhǎng)積分方法進(jìn)行仿真,在“Simulation > Simulation parameters > Solver”對(duì)話框中,可選
27、擇Fixed-step 和 discrete選項(xiàng),并設(shè)定固定步長(zhǎng)為25us (no continuous states) 為測(cè)量仿真時(shí)間,可運(yùn)行下面的命令重新仿真: tic; sim(gcs); toc 當(dāng)仿真完成后,其間所經(jīng)歷的時(shí)間會(huì)顯示在Matlab命令行窗口。 要返回連續(xù)仿真狀態(tài),打開(kāi)powergui模塊,選擇“continuous”選項(xiàng)。如果比較一下連續(xù)仿真和離散仿真,你會(huì)發(fā)現(xiàn)離散仿真比連續(xù)仿真將近快3.5倍。 要比較兩種仿真方法的精度,請(qǐng)完成下列三個(gè)仿真: (1) 仿真連續(xù)系統(tǒng),Ts=0 (2) 仿真離散系統(tǒng),Ts=25us (3) 仿真離散系統(tǒng),Ts=50us
28、 對(duì)于每一個(gè)仿真,將U2值保存到不同的變量中,相應(yīng)的為U2c,U2d25,U2d50,使用下列命令繪制U2波形: plot(U2c(:,1), U2c(:,2), U2d25(:,1),U2d25(:,2), U2d50(:,1),U2d50(:,2)) 從上圖中,可以看出,25us的離散化系統(tǒng)已經(jīng)非常接近連續(xù)系統(tǒng)了,50us有較大誤差。 1.7. 矢量仿真方法簡(jiǎn)介 1.7.1. 介紹 本節(jié)你將學(xué)會(huì): l 將矢量仿真方法用于簡(jiǎn)單的線性電路中 l 了解該方法的優(yōu)點(diǎn)和局限性 到目前為止,你已經(jīng)學(xué)會(huì)了兩種仿真電路的方法: l 使用連續(xù)simulink求解器及變步長(zhǎng)進(jìn)行仿真
29、 l 用離散化方法及固定步長(zhǎng)進(jìn)行仿真 本節(jié)介紹的是第三種方法-矢量求解法進(jìn)行仿真 1.7.2. 何時(shí)使用矢量求解法 矢量求解法主要用于研究功率系統(tǒng)的電子機(jī)械振蕩,這類系統(tǒng)一般由大型的發(fā)電機(jī)和電動(dòng)機(jī)組成。例如,可以使用這種方法對(duì)三相系統(tǒng)和機(jī)械類的多機(jī)械系統(tǒng)進(jìn)行仿真。然而,該不方法不僅僅局限在機(jī)械的暫態(tài)穩(wěn)定性研究領(lǐng)域,完全可以拓展應(yīng)用到任何線性系統(tǒng)上。 在一個(gè)線性電路中,如果你所感興趣的僅僅是當(dāng)開(kāi)關(guān)處于關(guān)或開(kāi)的狀態(tài)下所有電壓和電流的幅值和相位,那么,就沒(méi)有必要求解由電阻、電容和電感交互作用而帶來(lái)的差分方程(也即狀態(tài)空間模型)。你僅僅需要求解相對(duì)而言簡(jiǎn)單得多的與電壓和電流相位有關(guān)的代數(shù)方程組
30、,這正是矢量求解法所要解決的問(wèn)題。顧名思義,該方法以矢量描述電壓和電流。矢量是一個(gè)復(fù)數(shù),可以用來(lái)表示特定頻率下的正弦電壓和電流。矢量既可以用笛卡爾坐標(biāo)(Cartesian coordinates)表示(復(fù)數(shù)的實(shí)部與虛部),也可以用極坐標(biāo)(polar coordinates)表示。在忽略電路狀態(tài)的情況下,矢量求解法無(wú)需特定的求解器用于求解系統(tǒng)的電路部分。因此仿真速度要快得多。但應(yīng)始終記住,這種快速求解技術(shù)只能給出某個(gè)特定頻率下的結(jié)果。 1.7.3. 電路暫態(tài)過(guò)程的矢量仿真 下面你將會(huì)把矢量求解法應(yīng)用到一個(gè)簡(jiǎn)單的線性電路上。打開(kāi)powerlib的演示實(shí)例庫(kù),打開(kāi)通用演示庫(kù)(General De
31、mos library),選擇名稱為“暫態(tài)分析”的示例,一個(gè)名為power_transient的系統(tǒng)打開(kāi)了,如下圖所示: 可以通過(guò)各模塊參數(shù)設(shè)置對(duì)話框,看看各模塊設(shè)置的參數(shù)。 (1)激活powergui中的矢量求解法 現(xiàn)在,你將使用矢量求解法仿真同樣的電路。這種選項(xiàng)可以通過(guò)打開(kāi)powergui來(lái)設(shè)定,具體設(shè)置請(qǐng)參考在線幫助。設(shè)定該選項(xiàng)后,continues變?yōu)閜hasors,在啟動(dòng)仿真前,還需指定輸出到示波器上的信號(hào)的格式。 (2) 選擇矢量信號(hào)測(cè)量的格式 雙擊“Voltage Measurement”模塊或“Current Measurement”模塊,可以看到有一個(gè)菜單,通過(guò)
32、該菜單可設(shè)置矢量信號(hào)的四種輸出格式:complex(復(fù)數(shù),默認(rèn)),real-imag(實(shí)部-虛部),magnitude-angle(幅度-角度),magnitude(幅度)。當(dāng)你要處理的信號(hào)為復(fù)數(shù)信號(hào)時(shí),由于示波器(scope)只能觀察信號(hào)幅度,因此,這里選擇“magnitude”。 重新啟動(dòng)仿真,60Hz的電壓和電流的幅度顯示在示波器(scope)上。從連續(xù)仿真和矢量仿真得到的波形上,可以看出他們的波形是有區(qū)別的。但他們反映了統(tǒng)一規(guī)律。 注意到:連續(xù)仿真情況下,電路波形狀態(tài)改變出現(xiàn)在斷路器打開(kāi)時(shí)電流的下一個(gè)0點(diǎn)位置。而對(duì)于矢量仿真,電路波形狀態(tài)改變與斷路器開(kāi)關(guān)時(shí)刻是同步的。 (3) 處
33、理電壓和電流矢量 “complex”格式允許運(yùn)用復(fù)數(shù)運(yùn)算和矢量處理,無(wú)需將實(shí)部和虛部分離。例如,假設(shè)你要計(jì)算負(fù)載的功耗(有功功率P和無(wú)功功率Q),而復(fù)數(shù)功率s可通過(guò)下式計(jì)算: 這里的I*是電流矢量的共軛復(fù)數(shù)。1/2用于將電壓和電流的幅度從峰值轉(zhuǎn)換為有效值。 設(shè)置電壓和電流的輸出值均為“complex”格式,利用來(lái)自Simulink Math庫(kù)的模塊,實(shí)現(xiàn)功率的測(cè)量,如下圖所示: 2. 高級(jí)組件和技術(shù) 2.1. 功率電子簡(jiǎn)介 2.2. 仿真變速發(fā)動(dòng)機(jī)的控制 2.3. 三相系統(tǒng)和機(jī)械 2.4. 構(gòu)建和定制非線性模型 2.4.1. 介紹 SimPowerSystems
34、提供了大量非線性元器件模型。然而,有時(shí),你可能需要定制自己的模型并將其與SimPowerSystems提供的標(biāo)準(zhǔn)器件模型相連。定制的模型可能是一種用來(lái)模擬一段電弧或變阻器的非線性電阻,也可能是可飽和的電感,一種新的類型的發(fā)電機(jī)或電動(dòng)機(jī)等等。 在本節(jié)中,你將學(xué)習(xí)如何在simulink中定制自己的非線性模型。這里以一個(gè)簡(jiǎn)單的可飽和的非線性電感和非線性電阻為例來(lái)說(shuō)明。 2.4.2. 一個(gè)非線性電感的建模 考慮一個(gè)工作在額定頻率為fnom=60Hz、額定電壓Vnom=120V RMS的2H的電感。從0-120V RMS范圍內(nèi),電感值為一個(gè)常數(shù):2H,當(dāng)電壓超過(guò)其額定電壓時(shí),電感飽和,將為0.5H
35、,下圖繪制的是該電感的非線性特征曲線,電流量(current)和磁通量(flux)的刻度為每單位(per unit),額定電壓和電流被選為每單位的基準(zhǔn)值。 流經(jīng)電感的電流是磁通量的非線性函數(shù),依次,磁通量是電感兩端電壓的非線性函數(shù),該關(guān)系可用下列方程描述: 或 因此,該電感的非線性模型可以用一個(gè)受控電流源來(lái)描述,電流i是電壓v的非線性函數(shù),如下圖所示: “非線性電感的實(shí)現(xiàn)”一節(jié)給出了一個(gè)包含2H非線性電感的電路,該非線性電感與兩個(gè)電壓源(1個(gè)120V、60Hz的交流電壓源和一個(gè)直流電壓源)和一個(gè)5歐的電阻串聯(lián)。 所有用于構(gòu)建非線性電感的元件都被組合在一個(gè)名為非線性
36、電感的子系統(tǒng)中,電感的兩端標(biāo)有“in”和“out”。注意,第2個(gè)輸出返回的是磁通量,也被加到子系統(tǒng)中,將該輸出連接到scope模塊,可以觀察磁通量的變化。 該非線性模型使用了兩個(gè)powerlib模塊和兩個(gè)simulink模塊。這兩個(gè)powerlib模塊分別是電壓測(cè)量模塊(用于讀取電感兩端的電壓)和控制電流源模塊(controled current source),根據(jù)模型上的標(biāo)示,該電流的箭頭方向是從輸入到輸出。如上圖所示。 兩個(gè)simulink模塊分別是積分模塊(用來(lái)計(jì)算來(lái)源于電壓輸入的得到的磁通量),和一個(gè)查表模塊(look_up table)(用來(lái)描述i和的關(guān)系特征) powe
37、rl_extra的兩個(gè)Fourier(傅里葉)模塊用于分析電流的基本成分和直流成分。按上圖建立仿真模型,為實(shí)現(xiàn)i=f(),在查表模塊中指定下列兩個(gè)向量。 Vector of input values (flux) [-1.25 -1 1 1.25 ] *(120*sqrt(2)/(2π*60)) Vector of output values (current) [-2 -1 1 2]*(120*sqrt(2)/(4π*60)) 將你的電路保存為circuit7,為兩個(gè)電源設(shè)置下面的參數(shù): AC source l Peak amplitude 120*sqr
38、t(2) l Phase 90 degrees l Frequency 60 Hz DC source l Amplitude0 V 調(diào)整仿真時(shí)間為1.5s,選擇ode33tb積分算法作為默認(rèn)參數(shù),并開(kāi)始仿真。仿真結(jié)果與計(jì)算一致。 2.4.3. 定制自己的非線性模型 simulink提供了一種面板(mask)工具,來(lái)為你自定的模型創(chuàng)建對(duì)話框,你可以一個(gè)指定下列幾個(gè)提示和變量: Nominal voltage (Volts rms):Vnom Nominal frequency (Hz):Fnom Unsaturated inductance (H):L Saturatio
39、n characteristic [i1(pu) phi1(pu); i2 phi2; ...]:sat 最終的結(jié)果如下圖所示: 下列代碼在模板初始化時(shí)準(zhǔn)備了兩個(gè)向量,Current_vect 和 Flux_vect,以用于look_up table模塊。 % Define base current and Flux for pu system I_base = Vnom*sqrt(2)/(L*2*pi*fnom); Phi_base = Vnom*sqrt(2)/(2*pi*fnom); % Check first two points of the saturatio
40、n characteristic if ~all(all(sat(1:2,:)==[0 0; 1 1])), h=errordlg(The first two points of the characteristic must be [0 0; 1 1],Error); uiwait(h); end % Complete negative part of saturation characteristic [npoints,ncol]=size(sat); sat1=[sat ; -sat(2:npoints,:)]; sat1=sort(sat1);
41、 % Current vector (A) and flux vector (V.s) Current_vect=sat1(:,1)*I_base; Flux_vect=sat1(:,2)*Phi_base; 打開(kāi)查表模塊對(duì)話框,輸入如下兩個(gè)變量名: Vector of input values (flux) Flux_vect Vector of output values (current) Current_vect 關(guān)閉對(duì)話框,重新開(kāi)始仿真,可得到同樣的系統(tǒng)。 2.4.4. 非線性電阻的建模 非線性電阻的建模與非
42、線性電感的建模類似。 一個(gè)典型的例子是金屬氧化物電阻器具有下列伏安特征: 這里 v, i =瞬時(shí)電壓和電流 Vo =保護(hù)電壓 Io =參考電流 α =非線性特征指數(shù) (典型值在10-50之間) 下圖顯示了非線性電阻的應(yīng)用。 上面的方程是一個(gè)代數(shù)方程,其在狀態(tài)空間中是一個(gè)代數(shù)循環(huán),盡管simulink也能完成循環(huán)運(yùn)算,但是會(huì)減低仿真速度,為此,通常在不改變?cè)挤蔷€性特征的前提下在中間加入一個(gè)一階傳遞函數(shù)環(huán)節(jié)1/(1+Ts),通常取T為較小的值,如(T=0.01us)。使用工具封裝該非線性電阻模塊的參數(shù)。 2.4.5. 創(chuàng)建自己的庫(kù) simpowersystems允
43、許用戶創(chuàng)建自己的模塊庫(kù),要?jiǎng)?chuàng)建自己的模塊庫(kù),選擇“file >new library”,一個(gè)新的simulink:Untitled的窗口打開(kāi)了。將你創(chuàng)建的非線性電感模塊和非線性電阻模塊拷貝到該窗口中,保持該庫(kù)就可用了。 2.4.6. 將你的模型與別的非線性模型連接起來(lái) 應(yīng)當(dāng)考慮電流源不能與電流源串聯(lián),電流源不能與純電感串聯(lián),若遇到此種情況,可用考慮在電流源旁邊并聯(lián)一個(gè)極大的電阻。 2.4.7. 使用模型構(gòu)建命令創(chuàng)建模型 通常,不建議這樣做,有興趣的,可以參考Matlab相關(guān)幫助,下面給出一個(gè)例子: add_block(powerlib/Elements/Pi Section Line
44、,Mymodel/Block1); add_block(powerlib/Measurements/Voltage Measurement, Mymodel/Block2); set_param(Mymodel/Block1,position,[340,84,420,106]); set_param(Mymodel/Block2,position,[520,183,545,207]); Block1PortHandles = get_param(Mymodel/Block1,PortHandles); Block2PortHandles = get_param(Mymod
45、el/Block2,PortHandles); add_line(Mymodel,Block1PortHandles.LConn(1), Block2PortHandles.LConn(1)); add_line(Mymodel,Block1PortHandles.RConn(1), Block2PortHandles.LConn(2)); writeDocFeedbackSurveyLink(); 3. 附錄 3.1. 常用模塊 3.1.1. 阻抗測(cè)量模塊(impedance mesurement block) (1) 描述 阻抗測(cè)量模塊用于測(cè)量線性電
46、路中的兩個(gè)節(jié)點(diǎn)間的阻抗,兩節(jié)點(diǎn)間阻抗是頻率的函數(shù)。將其輸入分別接到電路上的兩個(gè)節(jié)點(diǎn),便可以使用powergui的分析工具計(jì)算兩節(jié)點(diǎn)間的阻抗了。該模塊不改變電路的特性。 3.1.2. 斷路器(breaker) (1) 描述 斷路器實(shí)現(xiàn)了一種可以通過(guò)外部或內(nèi)部控制電路開(kāi)、關(guān)時(shí)刻的電路。該模型包含了一個(gè)串聯(lián)RC緩沖器電路,可以把它連接到電路斷路器上。如果斷路器剛好與感性電路、開(kāi)路電路或電流源串聯(lián),就必須使RC緩沖器電路連到其中。 當(dāng)斷路器被設(shè)為外部控制模式(external control mode),一個(gè)simulink輸入就會(huì)出現(xiàn)在斷路器的圖標(biāo)上,控制信號(hào)必須為0或1(0表示開(kāi)關(guān)斷開(kāi)
47、,1表示開(kāi)關(guān)閉合)。 當(dāng)斷路器設(shè)為內(nèi)部控制模式(internal control mode),開(kāi)關(guān)時(shí)刻由其參數(shù)設(shè)置對(duì)話框設(shè)定。 當(dāng)斷路器處于閉合狀態(tài),其等效于一個(gè)電阻Ron。Ron可以被設(shè)為很小的值(典型值為10m歐),從而與外電阻比較而言可以忽略。當(dāng)斷路器處于斷開(kāi)狀態(tài),其等效于一個(gè)無(wú)窮大的電阻。 滅弧過(guò)程是通過(guò)在控制信號(hào)由1變?yōu)?后的第一個(gè)電流為0的時(shí)刻斷開(kāi)斷路器來(lái)模擬的。條件如下表所示。 操作 條件 斷路器閉合 控制信號(hào)變?yōu)?(對(duì)離散系統(tǒng),控制信號(hào)保持為1的時(shí)間應(yīng)至少為采樣周期的3倍) 斷路器斷開(kāi) 控制信號(hào)變?yōu)? 流過(guò)斷路器的電流為0 注:斷路器模塊對(duì)直流電路可能不合
48、適。對(duì)于直流電路,推薦使用理想開(kāi)關(guān)作為開(kāi)關(guān)元器件。 (2) 對(duì)話框和參數(shù) Breaker resistance Ron(斷路器電阻Ron) 該參數(shù)不能設(shè)為0 Initial state(初始狀態(tài)) 斷路器的初始狀態(tài),設(shè)為1表示閉合,設(shè)為0表示斷開(kāi)。 當(dāng)設(shè)為1時(shí),SimPowerSystems自動(dòng)初始化電路的所有狀態(tài)和斷路器電流,以確保仿真開(kāi)始時(shí)電路就進(jìn)入穩(wěn)態(tài)。 Snubber resistance Rs(緩沖器電阻Rs) 單位,歐姆,若將此值設(shè)為inf(無(wú)窮大),則相當(dāng)于電路中不包含緩沖器。 Snubber capacitance Cs(緩沖器電容Cs) 單位:法拉,若
49、將此值設(shè)為0,則相當(dāng)于不包含緩沖器,設(shè)為inf則為一個(gè)純阻性緩沖器 Switching times(開(kāi)關(guān)切換時(shí)刻) 這是一個(gè)向量,用于指定開(kāi)關(guān)切換狀態(tài)的時(shí)刻,各時(shí)刻的開(kāi)關(guān)狀態(tài)取決于初始開(kāi)關(guān)狀態(tài)。例如,若初始狀態(tài)為閉合,則向量的第1個(gè)元素對(duì)應(yīng)的時(shí)刻斷路器將斷開(kāi),第2個(gè)元素對(duì)應(yīng)的時(shí)刻斷路器將閉合,等等。若選中“External control of switching times”選項(xiàng),則開(kāi)關(guān)時(shí)刻由外部控制,此處沒(méi)必要設(shè)置。 External control of switching times(外部控制開(kāi)關(guān)時(shí)刻) 若選中了此選項(xiàng),請(qǐng)加入一個(gè)外部simulink輸入,來(lái)控制斷路器的開(kāi)關(guān)。開(kāi)
50、關(guān)時(shí)刻由連接到此斷路器上的外部邏輯輸入信號(hào)定義(0或1) mesurements(測(cè)量) 選定“branch voltage”用于測(cè)量斷路器上的壓降; 選定“branch current”用于測(cè)量流經(jīng)斷路器的電流; 選定“Branch voltage and current”用于測(cè)量壓降和電流 將Multimeter模塊加入電路,便可以顯示上面選定的參數(shù)。 (3) 使用注意事項(xiàng) 當(dāng)該模塊與電感或電流源串聯(lián)時(shí),必須在其中加入緩沖器電路。在大多數(shù)情況下,可使用純電感緩沖器(此時(shí)將“Snubber capacitance Cs”設(shè)為inf),而緩沖器電阻設(shè)為高阻值的電阻(1e6等)。由
51、于模型限制,開(kāi)關(guān)電阻不能設(shè)為0。 必須使用剛性積分算法仿真這種帶有斷路器的電路。ode23t且以默認(rèn)參數(shù)通??梢缘玫捷^高的仿真速度。 對(duì)于離散化的模型,控制信號(hào)保持為1的時(shí)間應(yīng)至少為采樣周期的3倍,否則,電路相當(dāng)于開(kāi)路。 (4) 應(yīng)用舉例 3.1.3. 二極管(Diode) 3.1.4. 被控電流源(controled current source) 被控電流源模塊將simulink輸入轉(zhuǎn)換為等效的電流源,產(chǎn)生的電流受模塊的輸入信號(hào)控制。正向電流方向與該模塊中的箭頭方向一致??捎弥付ǖ慕涣骱椭绷鞒跏蓟豢仉娏髟?,若想在穩(wěn)態(tài)下仿真,模塊的輸入必須連接到與初始值相應(yīng)的正弦或直流
52、信號(hào)上。 注:在矢量仿真中,連接到該模塊的輸入必須為復(fù)數(shù)值,此時(shí)需要手工設(shè)置。 (1) 對(duì)話框與參數(shù) Initialize 若選定該選項(xiàng),則將用指定的Initial current, Initial phase, 和Initial frequency parameters初始化該模塊。 Source type 設(shè)置電流源類型是直流電流源還是交流電流源 Initial current 初始峰值電流(A) Initial phase 初始相位(度數(shù)),對(duì)直流電源來(lái)說(shuō),不存在初始相位。 Initial frequency 初始頻率 mesurements 選定電流選項(xiàng)
53、使得可用mutimeter測(cè)其電流 3.1.5. if模塊 if模塊,連同包含action port模塊的action子系統(tǒng),用于實(shí)現(xiàn)標(biāo)準(zhǔn)的類似于C語(yǔ)言的if-else邏輯。下圖顯示了一個(gè)完整的if-else控制流: 3.1.6. Merge模塊 3.2. 創(chuàng)建模塊封裝(block mask) 3.2.1. 關(guān)于封裝(mask) (1)何謂封裝 封裝是一種定制的用戶接口,利用該接口,模塊用戶可以對(duì)模塊的內(nèi)部參數(shù)進(jìn)行設(shè)置。 (2)封裝特點(diǎn) 封裝包含如下特征: l 封裝圖標(biāo)(icon) l 封裝參數(shù) simulink允許為一個(gè)封裝的模塊定義一組可調(diào)的參數(shù),并將這
54、些參數(shù)存儲(chǔ)在封裝工作空間中(mask workspace)。 l 封裝參數(shù)對(duì)話框 simulink允許封裝參數(shù)設(shè)置對(duì)話框以取代默認(rèn)的標(biāo)準(zhǔn)子系統(tǒng)對(duì)話框。 l 封裝初始化代碼 l 封裝工作空間 3.2.2. 一個(gè)封裝子系統(tǒng)的例子 (1) 介紹 要封裝的模型用如下表達(dá)式表示: y=mx+b 如圖所示 通常情況下,當(dāng)你雙擊一個(gè)子系統(tǒng),就會(huì)出現(xiàn)一個(gè)新窗口,顯示該子系統(tǒng)的內(nèi)部組成。本例將自定義一個(gè)封裝對(duì)話框和封裝圖標(biāo),如下圖所示: (2) 創(chuàng)建封裝對(duì)話框提示 l 選定要封裝的subsystem模塊,Edit>mask subsystem,按下圖所示輸入: 不懂,請(qǐng)看在
55、線幫助。若系統(tǒng)不支持中文字符提示,請(qǐng)?jiān)诿钚兄羞\(yùn)行下列命令: set_param(circuit4, SavedCharacterEncoding, windows-1252) (3) 創(chuàng)建封裝描述和幫助文本 (4) 創(chuàng)建block圖標(biāo) 可使用繪圖命令改變子系統(tǒng)上的默認(rèn)圖標(biāo)。 3.2.3. 封裝一個(gè)模塊 (1) 關(guān)于模塊封裝 可以利用模型編輯器(model editor)封裝子系統(tǒng),模型,S函數(shù)模塊,以及利用set_param命令封裝內(nèi)建模塊 simulink不支持封裝端口模塊(port block),如Inport,Outport,Trigger等 確保封裝的參數(shù)名稱
56、與已知模塊參數(shù)名稱不同。 。 (2) 封裝一個(gè)子系統(tǒng) 3.2.2節(jié)已經(jīng)做了介紹。此處略。 (3) 封裝內(nèi)置模塊 通過(guò)直接封裝內(nèi)置模塊而不是將他們放到一個(gè)子系統(tǒng)中,可以減小你的模型的大小。要封裝一個(gè)內(nèi)置模塊: l 選擇模型中的模塊 l 鍵入下列Matlab命令: set_param(gcb,Mask,on) l 在模塊的快捷菜單中選擇“Edit Mask”命令,就可用它編輯該模塊的封裝了。 3.2.4. 封裝編輯器(mask editor) (1) 創(chuàng)建子模塊(略) (2) icon面板(略) (3) 參數(shù)面板(略) (4) 控件類型(control types)
57、通過(guò)下圖所示對(duì)話框進(jìn)行設(shè)置: (5) 初始化面板(initialization pane) 初始化面板允許你輸入matlab命令初始化封裝的子系統(tǒng)。 在下列情況下,simulink將執(zhí)行初始化命令: l 裝入模型 l 封裝模塊的圖形外觀發(fā)生變化,如旋轉(zhuǎn)。 l 在同一模型內(nèi)或不同模型間復(fù)制封裝模塊時(shí) l 開(kāi)始仿真或更新模塊圖時(shí) l 對(duì)模塊對(duì)話框作出任何參數(shù)改變時(shí) 初始化面板包含下列控件: l 對(duì)話框變量 列出了所有與模塊封裝參數(shù)有關(guān)的變量 l 初始化命令 輸入任意合法的Matlab命令。 l 允許庫(kù)模塊改變其內(nèi)容 初始化命令的局限性: l 不要在初始化命令中創(chuàng)
58、建動(dòng)態(tài)對(duì)話框 l 避免使用以L_和M_開(kāi)頭的變量名 l 避免使用set_param命令 (6) 文檔面板(document pane) 在上一節(jié)已經(jīng)做了介紹,現(xiàn)在僅介紹新的內(nèi)容:也就是,在定義在線幫助內(nèi)容時(shí),不僅可以直接輸入幫助文本內(nèi)容,也可以使用下列幫助文本: URL 說(shuō)明 (以 http:, www, file:, ftp:, or mailto:開(kāi)始) web 命令(launches a browser) eval 命令(evaluates a MATLAB string) html文本 舉例: file:///c:/mydir/helpdoc.html web
59、([docroot /My Blockset Doc/ get_param(gcb,MaskType)... .html]) eval(!Word My_Spec.doc) 3.2.5. 將封裝參數(shù)與模塊參數(shù)鏈接起來(lái) 3.2.6. 創(chuàng)建動(dòng)態(tài)封裝參數(shù)對(duì)話框 3.2.7. 封裝庫(kù)模塊 3.3. 仿真動(dòng)態(tài)系統(tǒng) 3.3.1. 模型編譯(model compilation) 當(dāng)你選擇“開(kāi)始仿真”命令時(shí),仿真便進(jìn)入第1階段,在此階段,simulink引擎將啟動(dòng)模型編譯器,模型編譯器將模型轉(zhuǎn)換為可執(zhí)行的形式,此過(guò)程就稱為編譯。具體地講,編譯器將完成以下工作: l 模型參數(shù)值的計(jì)算
60、l 確定那些沒(méi)有明確指定的信號(hào)屬性,如名稱,數(shù)據(jù)類型、數(shù)值類型、維數(shù)等,并檢查每個(gè)模塊是否接受連接到其輸入端的信號(hào)。 l simulink使用所謂的“屬性傳播”來(lái)確定那些未指定的屬性。這個(gè)過(guò)程是將源信號(hào)的屬性遺傳給目標(biāo)信號(hào)的屬性的過(guò)程。 l 執(zhí)行模塊優(yōu)化。 l 扁平化模型結(jié)構(gòu),即以子模塊實(shí)際保護(hù)的模塊替代子模塊; l 確定模塊的排序 l 確定那些沒(méi)有明確指明采樣間隔的模塊的采樣間隔 3.3.2. 鏈接階段(link phase) 這個(gè)階段,simulink引擎將為模塊圖的執(zhí)行分配內(nèi)存空間(信號(hào)、狀態(tài)和運(yùn)行時(shí)參數(shù)),同時(shí)也分配運(yùn)行時(shí)為保持每個(gè)模塊中間信息的內(nèi)存。對(duì)于內(nèi)置模塊,模塊的
61、主要數(shù)據(jù)結(jié)構(gòu)被稱為SimBlock,它存儲(chǔ)的是模塊的輸入與輸出緩沖區(qū)、狀態(tài)、工作向量的指針。 (1) method excution lists(方法執(zhí)行列表) 在鏈接階段,simulink也負(fù)責(zé)創(chuàng)建方法執(zhí)行列表,該表列出效率最高的模塊次序,以便按這個(gè)次序激活模型的模塊方法,計(jì)算模塊的輸出。 (2) 模塊屬性 simulink允許你為模塊分配更新屬性。simulink按優(yōu)先級(jí)高低來(lái)決定執(zhí)行順序。 3.3.3. 仿真循環(huán)階段(simulation loop phase) 鏈接階段結(jié)束后,進(jìn)入仿真循環(huán)階段。simulink引擎從仿真開(kāi)始到結(jié)束時(shí)間內(nèi),利用模型提供的信息,每隔一個(gè)間隔
62、,計(jì)算一次系統(tǒng)的狀態(tài)和輸出。那些狀態(tài)和輸出計(jì)算的連續(xù)時(shí)間點(diǎn),稱為時(shí)間步(time step)。相鄰兩個(gè)時(shí)間步的時(shí)間長(zhǎng)度稱為步長(zhǎng)。步長(zhǎng)取決于求解器的類型,系統(tǒng)的連續(xù)狀態(tài)、連續(xù)系統(tǒng)是否有不連續(xù)點(diǎn)。 循環(huán)階段又分為兩個(gè)子階段:循環(huán)初始化階段和循環(huán)往復(fù)階段。初始化階段過(guò)后,便進(jìn)入循環(huán)往復(fù)。每隔一個(gè)時(shí)間步長(zhǎng)循環(huán)一次。 在仿真開(kāi)始后,模型指定初始狀態(tài)和系統(tǒng)輸出。在每一步,simulink計(jì)算新的值、新的輸出。simulink提供了數(shù)據(jù)顯示和記錄模塊,可以在仿真過(guò)程中顯示和記錄過(guò)程數(shù)據(jù)。 3.3.4. 求解器(solvers) simulink在仿真過(guò)程中要反復(fù)計(jì)算狀態(tài)和輸出,這就需要用到一序列的算
63、法,simulink已經(jīng)編制了這些算法的程序,稱為求解器。 Configuration Parameters對(duì)話框允許你選擇合適的求解器。 (1) 定步長(zhǎng)求解器和變不長(zhǎng)求解器 (2) 連續(xù)與離散求解器 對(duì)于連續(xù)和離散混合模型,只能使用連續(xù)求解器。 離散求解器也包含定步長(zhǎng)和變步長(zhǎng)兩種。 3.3.5. 零交點(diǎn)探測(cè)器(zero-crossing detectors) 3.3.6. 代數(shù)循環(huán)(algebraic loop) 一些simulink模塊擁有直接注入的輸入端,這意味著若不知道這些輸入端口的信號(hào)值,就無(wú)法計(jì)算模塊的輸出值。具有直接注入輸入端口的模塊有: l Math Func
64、tion block l Gain block l Integrator blocks initial condition ports l Product blockState-Space block when there is a nonzero D matrix l Sum block l Transfer Fcn block when the numerator and denominator l are of the same order l Zero-Pole block when there are as many zeros as poles 當(dāng)一個(gè)帶有直接注入的
65、輸入端口由同一模塊的輸出驅(qū)動(dòng)時(shí)(要么直接驅(qū)動(dòng),要么由別的帶有直接注入端口的反饋間接驅(qū)動(dòng)),通常就會(huì)出現(xiàn)代數(shù)循環(huán)。代數(shù)循環(huán)的例子就是如下所示的簡(jiǎn)單的標(biāo)量循環(huán): 從數(shù)學(xué)角度來(lái)講,該循環(huán)暗示z=u-z,即,這就是求解表達(dá)式。但大多數(shù)代數(shù)循環(huán)就無(wú)法通過(guò)這種檢查自動(dòng)計(jì)算。 創(chuàng)建帶多個(gè)代數(shù)狀態(tài)變量(如z1,z2等)的向量代數(shù)循環(huán)是非常容易的。如下圖所示。 使用Algebraic Constraint模塊是建模代數(shù)方程和指定初始化估值的一個(gè)方便的方法。該模塊將它的輸入信號(hào)f(z)限制到0,并輸出代數(shù)狀態(tài)z。該模塊輸出一個(gè)值,該值對(duì)于在模塊的輸入端產(chǎn)生一個(gè)零點(diǎn)是必須的。輸出必須通過(guò)反饋直接影響到
66、輸入,例如,該反饋通道單獨(dú)包含帶有直接注入的模塊。在代數(shù)限制模塊對(duì)話框中,你可以提供一個(gè)初始的代數(shù)狀態(tài)值以改善代數(shù)循環(huán)求解器的效率。 一個(gè)標(biāo)量代數(shù)循環(huán)表示的是一個(gè)代數(shù)方程或形如F(z)=0的限制方程,這里的z是循環(huán)中的一個(gè)模塊的輸出,而函數(shù)F由從循環(huán)中別的模塊到該模塊的輸入間的反饋通道組成。在上上一個(gè)例子中F(z)=z-(u-z)。在本例中,代數(shù)方程為: z1+z2-1=0 -z1+z2-1=0 當(dāng)一個(gè)模型中包含F(xiàn)(z)=0的限制時(shí)就會(huì)出現(xiàn)代數(shù)循環(huán)。這種限制可能是作為一個(gè)你所創(chuàng)建的系統(tǒng)的物理內(nèi)部連接的因果關(guān)系而出現(xiàn)的,或者你建立的正是一個(gè)代數(shù)/差分系統(tǒng)(DAE)。 當(dāng)一個(gè)模型包含代數(shù)循環(huán)時(shí),simlink將在每一個(gè)時(shí)間步中調(diào)用循環(huán)求解子程序,以求得其結(jié)果。包含代數(shù)循環(huán)的模型求解過(guò)程比不包含代數(shù)循環(huán)的模型要耗時(shí)。 為求解F(z)=0,simulink循環(huán)求解器使用牛頓法求解偏導(dǎo)數(shù)方程。盡管該方
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書(shū)
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語(yǔ)文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告