高階電路動(dòng)態(tài)特性的仿真分析
作者/ 賀為婷 楊建華 西安工業(yè)大學(xué) 電子信息工程學(xué)院(陜西 西安 710032)
本文引用地址:http://www.ex-cimer.com/article/201611/340860.htm摘要:為了準(zhǔn)確直觀地觀測(cè)電路的動(dòng)態(tài)變化過(guò)程,采用四種方法對(duì)一電路實(shí)例進(jìn)行仿真分析:用積分法求解狀態(tài)方程,用拉普拉斯變換法求解s域的方程組,用數(shù)值積分函數(shù)求微分方程的數(shù)值解,構(gòu)建微分方程的Simulink模型觀測(cè)響應(yīng)曲線。四種方法的仿真結(jié)果完全一致且與電路理論相符。實(shí)驗(yàn)結(jié)果表明,Matlab程序簡(jiǎn)潔、可讀性強(qiáng)且計(jì)算結(jié)果準(zhǔn)確,同時(shí)它形象直觀,改變參數(shù)方便,能夠彌補(bǔ)硬件實(shí)驗(yàn)的不足。Matlab在電路理論學(xué)科研究與工程實(shí)踐中都具有很好的應(yīng)用價(jià)值。
引言
高階動(dòng)態(tài)電路的分析通常都?xì)w結(jié)為高階微分方程或一階微分方程組的求解,需要微分方程和矩陣?yán)碚摰南嚓P(guān)知識(shí),掌握起來(lái)比較困難。對(duì)于復(fù)雜的高階電路,用求解微分方程的方法則更加困難,一是列寫微分方程,二是根據(jù)變量及變量的各階導(dǎo)數(shù)的初始值確定積分常數(shù)。若借助合適的仿真軟件,則可以使電路的分析變得方便、準(zhǔn)確和直觀。電路仿真是電路分析及電路教學(xué)的重要手段,它形象直觀,改變參數(shù)方便,能夠彌補(bǔ)硬件實(shí)驗(yàn)的不足[1]。
Matlab是目前最為流行的工程軟件之一,它具備強(qiáng)大的計(jì)算、仿真和繪圖功能,能方便地繪制二維、三維圖形和相量圖。運(yùn)用該軟件,可以方便地研究各類系統(tǒng)問(wèn)題,包括電路仿真分析。對(duì)于動(dòng)態(tài)過(guò)程,用圖形來(lái)顯示會(huì)更加直觀,它可動(dòng)態(tài)地演示復(fù)雜電路各參量的變化過(guò)程,從而加深對(duì)電路的理解和認(rèn)識(shí)。對(duì)于動(dòng)態(tài)過(guò)程中某時(shí)刻的情況可以有一個(gè)定量的認(rèn)識(shí),對(duì)工程上解決系統(tǒng)處在動(dòng)態(tài)階段的問(wèn)題有一定的指導(dǎo)意義[2]。
本文以求解圖1所示電路的電容電壓和電感電流為例,介紹四種基于Matlab的電路動(dòng)態(tài)過(guò)程的分析方法。
1 積分法求解狀態(tài)方程
一個(gè)二階電路如圖1所示,開關(guān)K原來(lái)是打開的,電路已經(jīng)穩(wěn)定,uc(0)=1V,il(0)=2A。電源電壓及各元件的參數(shù)值標(biāo)示于圖中。在t=0時(shí),將開關(guān)K閉合,求t≥0時(shí)的電容電壓uc(t)及電感電流il(t)的變換規(guī)律[3]。
積分法求解狀態(tài)方程:如果一個(gè)系統(tǒng)的狀態(tài)描述方程為:
則該系統(tǒng)的狀態(tài)響應(yīng)為:
其中。
對(duì)于圖1所示的電路,以電容電壓uc和電感電流il為狀態(tài)變量,則建立電路的狀態(tài)方程為:
編程求解狀態(tài)響應(yīng)uc(t)與il(t):
syms x1 x2 s t z ;
A=[-1/2,1;-1/2,-2]; Bu=[0;6];
X=[x1;x2];X0=[1;2];
Asi=eye(2)*s-A; % s*I-A;
AA=inv(Asi); % [s*I-A]-1;
eAt=ilaplace(AA); %e A t=L-1[([sI-A]-1];
eAtz=subs(eAt,t,t-z); %求eA(t-z);
X= eAt*X0+int(eAtz*Bu,z,0,t); % Bu= B*u(z);
uc=X(1), il=X(2)
運(yùn)行程序得:
uc = 3*exp(-3/2*t)-6*exp(-t)+4
il = -3*exp(-3/2*t)+3*exp(-t)+2
即電容端電壓和電感中電流的解析解為:
積分法求解電路響應(yīng)的過(guò)程是:以電容電壓和電感電流為狀態(tài)變量建立電路的狀態(tài)方程;根據(jù)狀態(tài)方程確定矩陣A、B;求矩陣指數(shù)eAt;根據(jù)方程式(2)求狀態(tài)變量的解析表達(dá)式,最后求出要求電量的解析表達(dá)式[4]。
2 用Matlab拉普拉斯變換法求解
時(shí)域分析法用于高階電路的分析計(jì)算時(shí),確定初始條件和積分常數(shù)非常繁瑣??刹捎美绽棺儞Q法來(lái)求解。將時(shí)域電路變換為復(fù)頻域電路,即運(yùn)算電路[5]。在運(yùn)算電路的基礎(chǔ)上,用與直流電阻電路相同的方法進(jìn)行分析,建立s域描述方程。通過(guò)對(duì)s域方程的運(yùn)算,得到電路中待求電量的象函數(shù)F(s),對(duì)象函數(shù)F(s)進(jìn)行拉氏反變換就得到對(duì)應(yīng)的時(shí)域解f(t)。
圖1對(duì)應(yīng)的運(yùn)算電路如圖2所示,由運(yùn)算電路得:
針對(duì)方程組(6)進(jìn)行MATLAB編程:
syms t s;
A=[-1 4*s^2+8*s+2;2*s+1 -2];
B=[8*s+22;2];
AA=inv(A); %A的逆陣;
X=AA*B;
Us=X(1); %電容電壓的象函數(shù);
Is=X(2); %電感電流的象函數(shù);
Uc(t)=ilaplace(Us), il(t)=ilaplace(Is)
程序運(yùn)行結(jié)果為:
Uc(t) =3*exp(-3/2*t)-6*exp(-t)+4
Il(t) =-3*exp(-3/2*t)+3*exp(-t)+2
該結(jié)果與方法1的結(jié)果完全一致,即電容電壓uc(t)和電感電流il(t)的解析表達(dá)式同式(5)。
3 用ODE函數(shù)求微分方程的數(shù)值解
基于龍格-庫(kù)塔法,MATLAB提供了一套求常微分方程數(shù)值解的函數(shù),可以根據(jù)不同的對(duì)象選擇不同的算法。其函數(shù)格式如下:
[X,Y]=ode23(‘f’,[x0,xn],Y0)
[X,Y]=ode45(‘f’,[x0,xn],Y0)
其中:X,Y是兩個(gè)相量,X對(duì)應(yīng)自變量x在求解區(qū)間[x0, xn]的一組采樣點(diǎn),其采樣密度是自適應(yīng)的,無(wú)需指定;Y是與X對(duì)應(yīng)的一組解。f是一個(gè)M函數(shù)文件,代表待求解方程。[x0,xn]代表自變量的求解區(qū)間。Y0=Y(X0),由方程的初值給定。函數(shù)在求解區(qū)間[x0,xn]內(nèi),自動(dòng)設(shè)立采樣點(diǎn)向量X,并求出解函數(shù)Y在采樣點(diǎn)X處的樣本值[6]。
本文選用采用了四階、五階龍格-庫(kù)塔法的ode45函數(shù),它采用自適應(yīng)變步長(zhǎng)的求解方法,即當(dāng)解的變化較慢時(shí),采用較大的步長(zhǎng),從而提高了計(jì)算速度;當(dāng)解的變化較快時(shí),步長(zhǎng)會(huì)自動(dòng)地變小,可以提高計(jì)算的精確度。
圖1的狀態(tài)方程為式(1),初始條件為:uc(0)=1V,il(0)=2A,MATLAB程序如下:
function dy = myfun (t, y); % 將方程式定義為函數(shù)文件并取名存盤以便調(diào)用
dy= zeros(2,1); %變量y為兩行一列相量
dy(1)= -1/2*y(1)+ y(2);
dy(2)= -1/2*y(1)-2*y(2)+6;
[t,y]= ode45(‘myfun’,[0,10],[1,2]); % 調(diào)用ODE函數(shù)并代入初始條件
t’; %轉(zhuǎn)置顯示自變量的一組采樣點(diǎn)
y(:,1)’;y(:,2)’;% 轉(zhuǎn)置顯示y(1)、y(2)與采樣點(diǎn)對(duì)應(yīng)的一組數(shù)值解
uc= y(:,1);
il = y(:,2);
plot(t,uc,’linewidth’,1.5);%繪制uc波形,波形線寬為1.5
grid; set(gcf,’color’,’w’) % 打開網(wǎng)格;使輸出圖形的背景為白色
axis([0 10 0.8 4.2]); % 設(shè)定坐標(biāo)軸的范圍
set(gca,'xtick',[0 2 4 6 8 10]); %設(shè)置x軸刻度標(biāo)示
set(gca,'ytick',[1 2 3 4]); %設(shè)置y軸刻度標(biāo)示
xlabel(‘自變量t /s’) ; % x軸加注釋
ylabel(‘因變量uc /v’); % y軸加注釋
title(‘uc的波形’); % 圖形正上方加注釋
figure; %打開第二個(gè)圖形界面
plot(t,il,’linewidth’,1.5); %繪制il波形,波形線寬為1.5
grid; set(gcf, ‘color’, ’w’);
axis([0 10 1.9 2.5]); %設(shè)定坐標(biāo)軸的范圍
set(gca,'xtick',[0 2 4 6 8 10]);
set(gca,'ytick',[2 2.2 2.4]);
xlabel(‘自變量t /s’);
ylabel(‘因變量il /A’);
title(‘il的波形’);
在此,由于篇幅有限,沒(méi)有顯示自變量的采樣點(diǎn)和與采樣點(diǎn)對(duì)應(yīng)的數(shù)值解,而只是將解以圖形的方式輸出,如圖3和圖4。從結(jié)果看出,用數(shù)值積分ODE函數(shù)求解狀態(tài)方程簡(jiǎn)單方便,易于理解和掌握。與其它語(yǔ)言程序相比,可大大節(jié)省編程時(shí)間[7]。
4 構(gòu)建微分方程的simulink模型求解
對(duì)于形如y''=ay'+by+c的微分方程,構(gòu)建simulink模型的核心思想是:y''經(jīng)過(guò)積分得y',y'經(jīng)過(guò)積分得y,而y'、y經(jīng)過(guò)代數(shù)運(yùn)算又可得到y(tǒng)''。由微分方程式(4)得:
根據(jù)式(7),可構(gòu)建出圖5所示的simulink模型。其中用到兩個(gè)積分模塊、兩個(gè)求和模塊、兩個(gè)比例模塊和一個(gè)恒定模塊。兩個(gè)示波器用于輸出uc和il的圖形[8]。
simulink模型建成以后,要對(duì)uc和il設(shè)置初值:uc(0)=1V,il(0)=2A,雙擊uc模塊將初始值設(shè)為1V,雙擊il模塊將初始值設(shè)為2A。設(shè)置示波器的信號(hào)顯示范圍:scope1,t:0—10s,Y:0.8—4.2;scope2,t:0—10s,Y:1.9—2.5。
開始仿真:選擇simulation下的parameter命令,設(shè)置仿真的start time為0s,stop time為10s。最后選擇simulation下的start命令進(jìn)行仿真,或擊模型窗口工具欄上黑色右三角圖標(biāo)進(jìn)行仿真。
雙擊示波器scope1和scope2,則會(huì)得到圖6和圖7,與圖3和圖4的uc和il曲線完全相同,即兩種仿真結(jié)果一致。
5 結(jié)論
通過(guò)本文介紹的幾種動(dòng)態(tài)電路的分析方法看到:積分法求解動(dòng)態(tài)電路,以電容電壓和電感電流為狀態(tài)變量建立電路的狀態(tài)方程,根據(jù)狀態(tài)方程求出狀態(tài)變量的解析表達(dá)式;用ODE函數(shù)求解微分方程組,對(duì)求解動(dòng)態(tài)電路帶來(lái)了極大方便,并給出了解的直觀圖形;利用Matlab語(yǔ)言直接進(jìn)行拉氏變換求解動(dòng)態(tài)電路,大大提高了計(jì)算效率;而利用Matlab的Simulink功能得到了一種全新的求解暫態(tài)電路的思路。 Matlab的編程效率高、語(yǔ)言簡(jiǎn)練、繪圖方便。運(yùn)用Matlab可使電路的分析運(yùn)算變得方便和快捷。運(yùn)用Matlab語(yǔ)言編程和Simulink仿真的方法對(duì)復(fù)雜電路進(jìn)行分析和計(jì)算,不僅可以節(jié)約計(jì)算時(shí)間、方便地調(diào)試電路參數(shù),還可以通過(guò)圖形非常直觀地觀察到其響應(yīng)的過(guò)渡過(guò)程[10]。所以Matlab在電路理論學(xué)科研究與工程實(shí)踐中都具有很好的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1] 張洪寶.Matlab在動(dòng)態(tài)電路分析中的應(yīng)用[J]. 魯東大學(xué)學(xué)報(bào), 2009(2):144—147.
[2] 王光亮.用Matlab編程實(shí)現(xiàn)動(dòng)態(tài)電路仿真[J].江西電力職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(3):8-10.
[3]楊紅權(quán),辜承林.Matlab符號(hào)運(yùn)算在電路分析中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2008(1):23-26.
[4]蔡啟仲.控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)[M].重慶:重慶大學(xué)出版社,2003.8.
[5]邱關(guān)源.電路[M].北京:高等教育出版社,1999.
[6]于潤(rùn)偉.Matlab基礎(chǔ)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003.10.
[7]張穎,甘正佳,金維香.基于Matlab的暫態(tài)電路分析與計(jì)算[J]. 長(zhǎng)沙電力學(xué)院學(xué)報(bào),2002(3):44-47.
[8]王群, 耿云玲. Simulink在電路分析中應(yīng)用[J].電力自動(dòng)化設(shè)備, 2007(4):71-75.
[9]陳懷琛.M at lab及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[10]黃忠霖,黃京.Matlab符號(hào)運(yùn)算及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2004.
本文來(lái)源于中國(guó)科技期刊《電子產(chǎn)品世界》2016年第11期第59頁(yè),歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論