云南師范大學(xué)物理與電子信息學(xué)院 張雙紅 王 靜
調(diào)諧振蕩電路的模擬仿真
云南師范大學(xué)物理與電子信息學(xué)院 張雙紅 王 靜
利用MATLAB軟件的GUI設(shè)計(jì)功能建立一參數(shù)可調(diào)的用戶界面,模擬調(diào)諧振蕩電路的波形和相軌跡,使得教學(xué)演示變得十分直觀,是課堂教學(xué)的有效輔助。
MATLAB;調(diào)諧振蕩電路
正弦波振蕩器在量測(cè)、自動(dòng)控制、無線電通訊及遙控等許多領(lǐng)域有著廣泛的應(yīng)用。在無線電的發(fā)送和接收機(jī)中,經(jīng)常用高頻正弦信號(hào)作為音頻信號(hào)的”載波”,對(duì)信號(hào)進(jìn)行”調(diào)制”變換,以便于進(jìn)行遠(yuǎn)距離的傳輸。振蕩電路的調(diào)諧則是通過改變振蕩器中的電感L和電容C等參數(shù)來改變振蕩器的頻率,使其與所接收頻率接近,并與要接收的信號(hào)發(fā)生諧振,從而達(dá)到接收信號(hào)的目的[1]。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,使用MATLAB GUI仿真技術(shù)來演示一些電路的實(shí)驗(yàn)波形及其他的實(shí)驗(yàn)現(xiàn)象已經(jīng)成為了教學(xué)及科學(xué)研究的熱點(diǎn)。通過GUI界面設(shè)計(jì)實(shí)驗(yàn)仿真,能做出默認(rèn)參數(shù)可調(diào)的用戶實(shí)驗(yàn)平臺(tái),使實(shí)驗(yàn)現(xiàn)象的變化更直觀。實(shí)驗(yàn)現(xiàn)象的直觀,便可避免實(shí)驗(yàn)電路搭建,以及硬件原因所造成的波形失真等情況。模擬操作也因GUI的界面設(shè)計(jì)變的簡便,方便教師演示不同參數(shù)的波形和相軌跡。
由于在控制系統(tǒng)分析中多采用微分方程描述系統(tǒng),因此微分方程的求解對(duì)于系統(tǒng)的分析至關(guān)重要,當(dāng)常微分方程式能夠解析求解時(shí),可用MATLAB的符號(hào)工具箱中的找到精確解,在微分方程難以解析的情況下,可以求微分方程的數(shù)值解,所以本文利用MATLAB的微分方程求解函數(shù)直接給出動(dòng)態(tài)系統(tǒng)的導(dǎo)數(shù)描述[2]。
首先利用VanderPol方程來分析調(diào)諧振蕩電路:
如圖1所示。
圖1 調(diào)諧振蕩電路
分析調(diào)諧振蕩電路,可以知道電壓v滿足方程:
即Vanderpol方程,它是一個(gè)非線性方程,設(shè)其初始條件為:
將它轉(zhuǎn)化為一階常微分方程組,即狀態(tài)方程。選擇狀態(tài)變量,則可以寫出VanderPol方程的狀態(tài)方程形式,即:
GUI(Graphical User Interface)指圖形用戶界面,用戶可以通過這樣的界面,利用鼠標(biāo)和鍵盤的操作,來調(diào)用后臺(tái)的程序?qū)崿F(xiàn)自己需要的某些功能。這是一種提高程序易用、交互性的計(jì)算機(jī)編程方法[1]。
MATLAB GUI的前臺(tái)由一系列交互組件組成,主要包括按鈕(pushbotton)、文本標(biāo)簽(static text)、編輯文本框(Edit text)、滑動(dòng)條(Slider)、下拉菜單(Pop-Up Menu)、列表框(List Box)、雙位按鈕(Toggle Button)、單選按鈕(Radio Button)、框架(Frame)、復(fù)選框(Check Box)等。用戶通過某種方式激活這些控件,通常會(huì)引起動(dòng)作或發(fā)生改變。MATLAB通過回調(diào)函數(shù)把內(nèi)核代碼和這些交互組件的鼠標(biāo)和鍵盤事件關(guān)聯(lián)起來(即使用鼠標(biāo)激活回調(diào)函數(shù)來完成后臺(tái)程序功能)。
圖2 用戶界面設(shè)計(jì)圖
3.1 GUI的界面設(shè)計(jì)
電流環(huán)磁場(chǎng)分布模擬的MATLAB GUI界面設(shè)計(jì)如圖2所示,它包括:
(1)建立兩個(gè)坐標(biāo)軸(axes)對(duì)象,用來顯示振蕩波形圖和相軌跡;
(2)建立2個(gè)按鈕,分別繪制波形圖、相軌跡和結(jié)束程序;
(3)建立兩個(gè)可編輯文本框,用來輸入初始條件的默認(rèn)值,以及方程中μ的取值;
(4)建立兩個(gè)靜態(tài)文本標(biāo)簽,標(biāo)注相應(yīng)控件(y0的取值和μ的取值)的提示。
3.2 回調(diào)函數(shù)編寫
在gui設(shè)計(jì)中,通過回調(diào)函數(shù)的編寫來實(shí)現(xiàn)控件功能的實(shí)現(xiàn)。對(duì)于本例,回調(diào)程序的程序代碼如下:
function vdp_p1_Callback(hObject, eventdata, handles)
y0=str2num(get(handles.y0_edit,'string'));
global x0
x0=str2num(get(handles.x0_edit,'string'));
t0=0;tf=60;
[t,y]=ode45(@vdp,[t0,tf],y0);
axes(handles.axes1)
plot(t,y);
xlabel(‘波形圖’)
axes(handles.axes2)
plot(y(:,2),y(:,1));
xlabel(‘相軌跡’)
function ydot=vdp(t,y)
global x0
ydot(1)=x0*(1-y(2)^2)*y(1)-y(2);
ydot(2)=y(1);
ydot=ydot';
3.3 程序仿真結(jié)果
運(yùn)行GUI,當(dāng)初始條件y0為[0;0.3],μ取值為0.06時(shí),振蕩波形圖和相軌跡如圖3所示。
圖3 y0=[0;0.3],μ=0.06的波形圖和相軌跡
當(dāng)初始條件y0為[0;0.3],μ取值為0時(shí),振蕩波形圖和相軌跡如圖4所示,當(dāng)μ的取值變小時(shí),此時(shí)的振蕩波形為正弦波形。
當(dāng)初始條件y0為[0;0.3],μ取值為1時(shí),振蕩波形圖和相軌跡如圖5所示,當(dāng)μ的取值增大時(shí),波形出現(xiàn)了嚴(yán)重的失真。
通過上面的演示,可以直觀得觀察到,μ的取值增大的時(shí)候波形逐漸的開始失真,當(dāng)μ=1時(shí)(即電壓為0.1V),波形嚴(yán)重失真。當(dāng)μ的取值變小時(shí),振蕩波形逐漸的變得像正弦波,當(dāng)取值為0時(shí),振蕩波形就變?yōu)榱苏也ā?/p>
圖4 y0=[0;0.3],μ=0的波形圖和相軌跡
圖5 y0=[0;0.3],μ=1的波形圖和相軌跡
利用MATLAB軟件的數(shù)學(xué)工具可解VanderPol方程,并利用GUI功能設(shè)計(jì)一交互式的用戶界面。用戶可以任意輸入?yún)?shù)直觀快捷得得到調(diào)諧振蕩電路的振蕩波形和相軌跡,是對(duì)課堂教學(xué)的有效輔助。
[1]陳懷琛,吳大正,高西全編著.MATLAB及在電子信息課程中的應(yīng)用[M].電子工業(yè)出版社,2006.
[2]于德高.振蕩電路(上)[J].家庭電子,2002(03).
[3]張肅文,陸兆熊.高頻電子線路[M].第三版.高等教育出版社,1993.
張雙紅(1993—),男,云南師范大學(xué)物理與電子信息學(xué)院2011級(jí)本科生,電子信息技術(shù)與科學(xué)專業(yè)。
王靜(1979—),女,云南師范大學(xué)物理與電子信息學(xué)院講師,碩士,主要從事物理教育研究。