云南師范大學物理與電子信息學院 張雙紅 王 靜
調諧振蕩電路的模擬仿真
云南師范大學物理與電子信息學院 張雙紅 王 靜
利用MATLAB軟件的GUI設計功能建立一參數可調的用戶界面,模擬調諧振蕩電路的波形和相軌跡,使得教學演示變得十分直觀,是課堂教學的有效輔助。
MATLAB;調諧振蕩電路
正弦波振蕩器在量測、自動控制、無線電通訊及遙控等許多領域有著廣泛的應用。在無線電的發送和接收機中,經常用高頻正弦信號作為音頻信號的”載波”,對信號進行”調制”變換,以便于進行遠距離的傳輸。振蕩電路的調諧則是通過改變振蕩器中的電感L和電容C等參數來改變振蕩器的頻率,使其與所接收頻率接近,并與要接收的信號發生諧振,從而達到接收信號的目的[1]。
隨著計算機技術的發展,使用MATLAB GUI仿真技術來演示一些電路的實驗波形及其他的實驗現象已經成為了教學及科學研究的熱點。通過GUI界面設計實驗仿真,能做出默認參數可調的用戶實驗平臺,使實驗現象的變化更直觀。實驗現象的直觀,便可避免實驗電路搭建,以及硬件原因所造成的波形失真等情況。模擬操作也因GUI的界面設計變的簡便,方便教師演示不同參數的波形和相軌跡。
由于在控制系統分析中多采用微分方程描述系統,因此微分方程的求解對于系統的分析至關重要,當常微分方程式能夠解析求解時,可用MATLAB的符號工具箱中的找到精確解,在微分方程難以解析的情況下,可以求微分方程的數值解,所以本文利用MATLAB的微分方程求解函數直接給出動態系統的導數描述[2]。
首先利用VanderPol方程來分析調諧振蕩電路:

如圖1所示。

圖1 調諧振蕩電路
分析調諧振蕩電路,可以知道電壓v滿足方程:


即Vanderpol方程,它是一個非線性方程,設其初始條件為:


將它轉化為一階常微分方程組,即狀態方程。選擇狀態變量,則可以寫出VanderPol方程的狀態方程形式,即:

GUI(Graphical User Interface)指圖形用戶界面,用戶可以通過這樣的界面,利用鼠標和鍵盤的操作,來調用后臺的程序實現自己需要的某些功能。這是一種提高程序易用、交互性的計算機編程方法[1]。
MATLAB GUI的前臺由一系列交互組件組成,主要包括按鈕(pushbotton)、文本標簽(static text)、編輯文本框(Edit text)、滑動條(Slider)、下拉菜單(Pop-Up Menu)、列表框(List Box)、雙位按鈕(Toggle Button)、單選按鈕(Radio Button)、框架(Frame)、復選框(Check Box)等。用戶通過某種方式激活這些控件,通常會引起動作或發生改變。MATLAB通過回調函數把內核代碼和這些交互組件的鼠標和鍵盤事件關聯起來(即使用鼠標激活回調函數來完成后臺程序功能)。

圖2 用戶界面設計圖
3.1 GUI的界面設計
電流環磁場分布模擬的MATLAB GUI界面設計如圖2所示,它包括:
(1)建立兩個坐標軸(axes)對象,用來顯示振蕩波形圖和相軌跡;
(2)建立2個按鈕,分別繪制波形圖、相軌跡和結束程序;
(3)建立兩個可編輯文本框,用來輸入初始條件的默認值,以及方程中μ的取值;
(4)建立兩個靜態文本標簽,標注相應控件(y0的取值和μ的取值)的提示。
3.2 回調函數編寫
在gui設計中,通過回調函數的編寫來實現控件功能的實現。對于本例,回調程序的程序代碼如下:
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 程序仿真結果
運行GUI,當初始條件y0為[0;0.3],μ取值為0.06時,振蕩波形圖和相軌跡如圖3所示。

圖3 y0=[0;0.3],μ=0.06的波形圖和相軌跡
當初始條件y0為[0;0.3],μ取值為0時,振蕩波形圖和相軌跡如圖4所示,當μ的取值變小時,此時的振蕩波形為正弦波形。
當初始條件y0為[0;0.3],μ取值為1時,振蕩波形圖和相軌跡如圖5所示,當μ的取值增大時,波形出現了嚴重的失真。
通過上面的演示,可以直觀得觀察到,μ的取值增大的時候波形逐漸的開始失真,當μ=1時(即電壓為0.1V),波形嚴重失真。當μ的取值變小時,振蕩波形逐漸的變得像正弦波,當取值為0時,振蕩波形就變為了正弦波。

圖4 y0=[0;0.3],μ=0的波形圖和相軌跡

圖5 y0=[0;0.3],μ=1的波形圖和相軌跡
利用MATLAB軟件的數學工具可解VanderPol方程,并利用GUI功能設計一交互式的用戶界面。用戶可以任意輸入參數直觀快捷得得到調諧振蕩電路的振蕩波形和相軌跡,是對課堂教學的有效輔助。
[1]陳懷琛,吳大正,高西全編著.MATLAB及在電子信息課程中的應用[M].電子工業出版社,2006.
[2]于德高.振蕩電路(上)[J].家庭電子,2002(03).
[3]張肅文,陸兆熊.高頻電子線路[M].第三版.高等教育出版社,1993.
張雙紅(1993—),男,云南師范大學物理與電子信息學院2011級本科生,電子信息技術與科學專業。
王靜(1979—),女,云南師范大學物理與電子信息學院講師,碩士,主要從事物理教育研究。