simulink仿真设置
一、算法設(shè)置
1.變步長(Variable—Step)求解器
?????? 可以選擇的變步長求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情況下,具有狀態(tài)的系統(tǒng)用的是ode45;沒有狀態(tài)的系統(tǒng)用的是discrete。
1)ode45基于顯式Runge—Kutta(4,5)公式,Dormand—Prince對.它是—個單步求解器(solver)。也就是說它在計算y(tn)時,僅僅利用前一步的計算結(jié)果y(tn-1).對于大多數(shù)問題.在第一次仿真時、可用ode45試一下。
2)ode23是基于顯式Runge—Kutta(2,3).Bogackt和Shampine對.對于寬誤差容限和存在輕微剛性的系統(tǒng)、它比ode45更有效一些.ode23也是單步求解器。
3)odell3是變階Adams-Bashforth—Moulton PECE求解器.在誤差容限比較嚴(yán)時,它比ode45更有效.odell3是一個多步求解器,即為了計算當(dāng)前的結(jié)果y(tn),不僅要知道前一步結(jié)果y(tn-1),還要知道前幾步的結(jié)果y(tn-2),y(tn-3),…;
4)odel5s是基于數(shù)值微分公式(NDFs)的變階求解器.它與后向微分公式BDFs(也叫Gear方法)有聯(lián)系.但比它更有效.ode15s是一個多步求解器,如果認(rèn)為一個問題是剛性的,或者在用ode45s時仿真失敗或不夠有效時,可以試試odel5s。 odel5s是基于一到五階的NDF公式的求解器.盡管公式的階數(shù)越高結(jié)果越精確,但穩(wěn)定性會差一些.如果模型是剛性的,并且要求有比較好的穩(wěn)定性,應(yīng)將最大的階數(shù)減小到2.選擇odel5s求解器時,對話框中會顯示這一參數(shù). 可以用ode23求解器代替。del5s,ode23是定步長、低階求解器。
5)ode23s是基于一個2階改進(jìn)的Rosenbrock公式.因為它是一個單步求解器,所以對于寬誤差容限,它比odel5s更有效.對于一些用odel5s不是很有效的剛性問題,可以用它解決。
6)ode23t是使用“自由”內(nèi)插式梯形規(guī)則來實現(xiàn)的.如果問題是適度剛性,而且需要沒有數(shù)字阻尼的結(jié)果,可采用該求解器。
7)ode23tb是使用TR—BDF2來實現(xiàn)的,即基于隱式Runge—Kutta公式,其第一級是梯形規(guī)則步長和第二級是二階反向微分公式.兩級計算使用相同的迭代矩陣.與ode23s相似,對于寬誤差容限,它比odtl5s更有效。
8)discrete(變步長)是simulink在檢測到模型中沒有連續(xù)狀態(tài)時所選擇的一種求解器。
?
2.定步長(Flxed—Step)求解器
?????? 可以選擇的定步長求解器有:ode5,ode4,ode3,ode2,ode1和discrete。
1)ode5是ode45的一個定步長版本,基于Dormand—Prince公式。
2)ode4是RK4,基于四階Runge—Kutta公式。
3) ode3是ode23的定步長版本,基于Bogacki-Sbampine公式。
4) ode2是Heun方法,也叫作改進(jìn)Euler公式。
5) odel是Euler方法。
6) discrete(定步長)是不執(zhí)行積分的定步長求解器.它適用于沒有狀態(tài)的模型,以及對過零點檢測和誤差控制不重要的模型。
?
3.總結(jié)
?[轉(zhuǎn)載]simulink仿真設(shè)置
???????? ?
??????? ode45絕對是第一選擇,當(dāng)你弄不清情況的時候都可以選它。但是如果遇到剛性系統(tǒng)時,運(yùn)算會很慢很慢,這時候你可以選擇ode23tb算法(有關(guān)資料顯示這個算法收斂速度較快)。如果還不行,那你就可以考慮選擇discrete方式了。當(dāng)然,這是萬金油式選擇,對我這種菜鳥來說這樣足夠了。但如果對算法有研究的大濕們,當(dāng)然可以具體情況具體分析了。
?
二、powergui設(shè)置
?????? simulink仿真用到simpowersystom庫時,一般都要加powergui模塊,它儲存了電路模型的等效數(shù)學(xué)模型(狀態(tài)空間方程),有三種運(yùn)行模式:連續(xù)方法(continous)、離散方法(discret)、相量方法(phasor)。
?????? 小型系統(tǒng)(狀態(tài)量10個以下)用continous運(yùn)行比較好,連續(xù)變步長方法更快更精確,因為離散算法要想給出一個同等精度的結(jié)果需要的計算量要比連續(xù)的多出不少。使用二極管和晶閘管等整流電力電子器件情況下,變步長算法由于對事件更為敏感,有誤差限制和過零檢測,可以精確探測到電流的過零點,故結(jié)果波形中不會有電流間斷。算法可以根據(jù)模型選擇合適的ode算法。
?????? 對于包含了許多狀態(tài)和非線性模塊(如電力電子器件)較多的大型系統(tǒng)建議用discrete來運(yùn)行,加快仿真速度。一旦系統(tǒng)被離散化,電路系統(tǒng)再無連續(xù)狀態(tài)了,因此如果你不需要變步長積分方法進(jìn)行仿真,前文所述的算法設(shè)置Simulation parameters可選擇Fixed-step和discrete(no continous state)。當(dāng)你離散化系統(tǒng)時,仿真的精度由時間步長控制。若使用太大的時間步長,精度可能不夠。確定時間步長是否合適的唯一方法是通過改變時間步長,反復(fù)仿真,比較仿真結(jié)果。通常,對于在50Hz 或60Hz的功率系統(tǒng)上或使用了線性整流功率電子元件(如二極管、可控硅等)的系統(tǒng)上進(jìn)行暫態(tài)仿真,取20us-50us的時間步長一般能取得較好的仿真效果。對于使用了強(qiáng)制整流功率電子開關(guān)的系統(tǒng),必須減小時間步長。IGBT、場效應(yīng)管、門極關(guān)斷晶閘管等通常工作在很高的開關(guān)頻率狀態(tài)下,例如,要仿真一個工作在8Hz的PWM轉(zhuǎn)換器,需要設(shè)置步長大約為8us。? ?
?????? phasor就是穩(wěn)態(tài)模型,沒有狀態(tài)量。 如果你只對電壓電流的相位和幅值變化感興趣,使用相量法是一個不錯的選擇。求解時不再解全部的微分方程,只要解關(guān)于電流電壓相量的代數(shù)方程就行了,代數(shù)方程可比微分方程簡單多了!正如名字,相量法將電流電壓視為相量。相量法對于包含大發(fā)電機(jī)和電動機(jī)的網(wǎng)絡(luò)的暫態(tài)穩(wěn)定性仿真十分好用 。在這種類型的問題中,我們感興趣的是電機(jī)和調(diào)節(jié)器交互作用引起的電氣機(jī)械振蕩,這些振蕩對基波電流電壓產(chǎn)生一個低頻的幅度相位調(diào)制。一般來講,連續(xù)或者離散的方法不適合這種類型的問題。相量法中,使用一系列的代數(shù)方程代替網(wǎng)絡(luò)微分方程,其中的快速的模態(tài)被忽略;使用一個由基頻和相關(guān)輸入輸出組成的復(fù)矩陣代替網(wǎng)絡(luò)的狀態(tài)空間模型。由于相量法使用的是電機(jī)、渦輪機(jī)和調(diào)節(jié)器的慢速狀態(tài)的簡化模型,因此大大的減少了必需仿真時間。
?
三、提高simpowersystem的仿真速度
1)使用ode23解法器但效果很有限。
2)對系統(tǒng)離散化,方法為在你的gui模塊里選擇discretize electric model,采樣時間越大仿真越快,當(dāng)然采樣時間的設(shè)定要與你對系統(tǒng)精確性相配合,因為采樣時間是與準(zhǔn)確性成反比的。
3)在仿真的過程中盡量少開啟示波器窗口,示波器參數(shù)中的點數(shù)限制最好關(guān)閉。
4)如果你的系統(tǒng)要從一個特定的狀態(tài)開始仿真,在仿真參數(shù)設(shè)置是,最好在i/o選項中設(shè)置起始的狀態(tài)矢量。
5)開啟加速器,(方法在菜單 仿真這一 項中可以設(shè)置),這個也能大大加快仿真速度。
?
注:剛性系統(tǒng)是指描述系統(tǒng)的微分方程中包含有數(shù)個(大于等于2)相互作用的變量且各個變量變化速度十分懸殊的系統(tǒng)。
總結(jié)
以上是生活随笔為你收集整理的simulink仿真设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用MATLAB实现移动目标的TDOA/
- 下一篇: 解读电感和电容在交流电路中的作用