新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 高階電路動態(tài)特性的仿真分析

高階電路動態(tài)特性的仿真分析

作者:賀為婷 楊建華 時(shí)間:2016-11-30 來源:電子產(chǎn)品世界 收藏
編者按:為了準(zhǔn)確直觀地觀測電路的動態(tài)變化過程,采用四種方法對一電路實(shí)例進(jìn)行仿真分析:用積分法求解狀態(tài)方程,用拉普拉斯變換法求解s域的方程組,用數(shù)值積分函數(shù)求微分方程的數(shù)值解,構(gòu)建微分方程的Simulink模型觀測響應(yīng)曲線。四種方法的仿真結(jié)果完全一致且與電路理論相符。實(shí)驗(yàn)結(jié)果表明,Matlab程序簡潔、可讀性強(qiáng)且計(jì)算結(jié)果準(zhǔn)確,同時(shí)它形象直觀,改變參數(shù)方便,能夠彌補(bǔ)硬件實(shí)驗(yàn)的不足。Matlab在電路理論學(xué)科研究與工程實(shí)踐中都具有很好的應(yīng)用價(jià)值。

作者/ 賀為婷 楊建華 西安工業(yè)大學(xué) 電子信息工程學(xué)院(陜西 西安 710032)

本文引用地址:http://butianyuan.cn/article/201611/340860.htm

摘要:為了準(zhǔn)確直觀地觀測電路的動態(tài)變化過程,采用四種方法對一電路實(shí)例進(jìn)行仿真分析:用積分法求解狀態(tài)方程,用拉普拉斯變換法求解s域的方程組,用數(shù)值積分函數(shù)求微分方程的數(shù)值解,構(gòu)建微分方程的Simulink模型觀測響應(yīng)曲線。四種方法的仿真結(jié)果完全一致且與電路理論相符。實(shí)驗(yàn)結(jié)果表明,Matlab程序簡潔、可讀性強(qiáng)且計(jì)算結(jié)果準(zhǔn)確,同時(shí)它形象直觀,改變參數(shù)方便,能夠彌補(bǔ)硬件實(shí)驗(yàn)的不足。Matlab在電路理論學(xué)科研究與工程實(shí)踐中都具有很好的應(yīng)用價(jià)值。

引言

  的分析通常都?xì)w結(jié)為高階微分方程或一階微分方程組的求解,需要微分方程和矩陣?yán)碚摰南嚓P(guān)知識,掌握起來比較困難。對于復(fù)雜的高階電路,用求解微分方程的方法則更加困難,一是列寫微分方程,二是根據(jù)變量及變量的各階導(dǎo)數(shù)的初始值確定積分常數(shù)。若借助合適的仿真軟件,則可以使電路的分析變得方便、準(zhǔn)確和直觀。電路仿真是電路分析及電路教學(xué)的重要手段,它形象直觀,改變參數(shù)方便,能夠彌補(bǔ)硬件實(shí)驗(yàn)的不足[1]。

  Matlab是目前最為流行的工程軟件之一,它具備強(qiáng)大的計(jì)算、仿真和功能,能方便地繪制二維、三維圖形和相量圖。運(yùn)用該軟件,可以方便地研究各類系統(tǒng)問題,包括電路仿真分析。對于動態(tài)過程,用圖形來顯示會更加直觀,它可動態(tài)地演示復(fù)雜電路各參量的變化過程,從而加深對電路的理解和認(rèn)識。對于動態(tài)過程中某時(shí)刻的情況可以有一個(gè)定量的認(rèn)識,對工程上解決系統(tǒng)處在動態(tài)階段的問題有一定的指導(dǎo)意義[2]。

  本文以求解圖1所示電路的電容電壓和電感電流為例,介紹四種基于Matlab的電路動態(tài)過程的分析方法。

1 積分法求解狀態(tài)方程

  一個(gè)二階電路如圖1所示,開關(guān)K原來是打開的,電路已經(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)為:

  其中。

  對于圖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)的過程是:以電容電壓和電感電流為狀態(tài)變量建立電路的狀態(tài)方程;根據(jù)狀態(tài)方程確定矩陣A、B;求矩陣指數(shù)eAt;根據(jù)方程式(2)求狀態(tài)變量的解析表達(dá)式,最后求出要求電量的解析表達(dá)式[4]。

2 用Matlab拉普拉斯變換法求解

  時(shí)域分析法用于高階電路的分析計(jì)算時(shí),確定初始條件和積分常數(shù)非常繁瑣。可采用拉普拉斯變換法來求解。將時(shí)域電路變換為復(fù)頻域電路,即運(yùn)算電路[5]。在運(yùn)算電路的基礎(chǔ)上,用與直流電阻電路相同的方法進(jìn)行分析,建立s域描述方程。通過對s域方程的運(yùn)算,得到電路中待求電量的象函數(shù)F(s),對象函數(shù)F(s)進(jìn)行拉氏反變換就得到對應(yīng)的時(shí)域解f(t)。

  圖1對應(yīng)的運(yùn)算電路如圖2所示,由運(yùn)算電路得:

  針對方程組(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ù)值解

  基于龍格-庫塔法,MATLAB提供了一套求常微分方程數(shù)值解的函數(shù),可以根據(jù)不同的對象選擇不同的算法。其函數(shù)格式如下:

  [X,Y]=ode23(‘f’,[x0,xn],Y0)

  [X,Y]=ode45(‘f’,[x0,xn],Y0)

  其中:X,Y是兩個(gè)相量,X對應(yīng)自變量x在求解區(qū)間[x0, xn]的一組采樣點(diǎn),其采樣密度是自適應(yīng)的,無需指定;Y是與X對應(yīng)的一組解。f是一個(gè)M函數(shù)文件,代表待求解方程。[x0,xn]代表自變量的求解區(qū)間。Y0=Y(X0),由方程的初值給定。函數(shù)在求解區(qū)間[x0,xn]內(nèi),自動設(shè)立采樣點(diǎn)向量X,并求出解函數(shù)Y在采樣點(diǎn)X處的樣本值[6]。

  本文選用采用了四階、五階龍格-庫塔法的ode45函數(shù),它采用自適應(yīng)變步長的求解方法,即當(dāng)解的變化較慢時(shí),采用較大的步長,從而提高了計(jì)算速度;當(dāng)解的變化較快時(shí),步長會自動地變小,可以提高計(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)對應(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的波形’);

  在此,由于篇幅有限,沒有顯示自變量的采樣點(diǎn)和與采樣點(diǎn)對應(yīng)的數(shù)值解,而只是將解以圖形的方式輸出,如圖3和圖4。從結(jié)果看出,用數(shù)值積分ODE函數(shù)求解狀態(tài)方程簡單方便,易于理解和掌握。與其它語言程序相比,可大大節(jié)省編程時(shí)間[7]。

4 構(gòu)建微分方程的simulink模型求解

  對于形如y''=ay'+by+c的微分方程,構(gòu)建simulink模型的核心思想是:y''經(jīng)過積分得y',y'經(jīng)過積分得y,而y'、y經(jīng)過代數(shù)運(yùn)算又可得到y(tǒng)''。由微分方程式(4)得:

  根據(jù)式(7),可構(gòu)建出圖5所示的simulink模型。其中用到兩個(gè)積分模塊、兩個(gè)求和模塊、兩個(gè)比例模塊和一個(gè)恒定模塊。兩個(gè)示波器用于輸出uc和il的圖形[8]。

  simulink模型建成以后,要對uc和il設(shè)置初值:uc(0)=1V,il(0)=2A,雙擊uc模塊將初始值設(shè)為1V,雙擊il模塊將初始值設(shè)為2A。設(shè)置示波器的信號顯示范圍: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,則會得到圖6和圖7,與圖3和圖4的uc和il曲線完全相同,即兩種仿真結(jié)果一致。

5 結(jié)論

  通過本文介紹的幾種動態(tài)電路的分析方法看到:積分法求解動態(tài)電路,以電容電壓和電感電流為狀態(tài)變量建立電路的狀態(tài)方程,根據(jù)狀態(tài)方程求出狀態(tài)變量的解析表達(dá)式;用ODE函數(shù)求解微分方程組,對求解動態(tài)電路帶來了極大方便,并給出了解的直觀圖形;利用Matlab語言直接進(jìn)行拉氏變換求解動態(tài)電路,大大提高了計(jì)算效率;而利用Matlab的Simulink功能得到了一種全新的求解暫態(tài)電路的思路。 Matlab的編程效率高、語言簡練、方便。運(yùn)用Matlab可使電路的分析運(yùn)算變得方便和快捷。運(yùn)用Matlab語言編程和Simulink仿真的方法對復(fù)雜電路進(jìn)行分析和計(jì)算,不僅可以節(jié)約計(jì)算時(shí)間、方便地調(diào)試電路參數(shù),還可以通過圖形非常直觀地觀察到其響應(yīng)的過渡過程[10]。所以Matlab在電路理論學(xué)科研究與工程實(shí)踐中都具有很好的應(yīng)用價(jià)值。

參考文獻(xiàn):

  [1] 張洪寶.Matlab在動態(tài)電路分析中的應(yīng)用[J]. 魯東大學(xué)學(xué)報(bào), 2009(2):144—147.

  [2] 王光亮.用Matlab編程實(shí)現(xiàn)動態(tài)電路仿真[J].江西電力職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(3):8-10.

  [3]楊紅權(quán),辜承林.Matlab符號運(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]于潤偉.Matlab基礎(chǔ)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003.10.

  [7]張穎,甘正佳,金維香.基于Matlab的暫態(tài)電路分析與計(jì)算[J]. 長沙電力學(xué)院學(xué)報(bào),2002(3):44-47.

  [8]王群, 耿云玲. Simulink在電路分析中應(yīng)用[J].電力自動化設(shè)備, 2007(4):71-75.

  [9]陳懷琛.M at lab及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2002.

  [10]黃忠霖,黃京.Matlab符號運(yùn)算及其應(yīng)用[M].北京:國防工業(yè)出版社,2004.


本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第11期第59頁,歡迎您寫論文時(shí)引用,并注明出處。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉