《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 接口電路仿真的算法分析及實現
接口電路仿真的算法分析及實現
摘要: 系統仿真是近30年才發展起來的一門新興學科,它通過對所研究系統的認識和了解,抽取其中的基本要素,建立與現實系統相對應的仿真模型,并通過系統模型實驗去研究一個已經存在的或者正在設計的系統的過程。
Abstract:
Key words :

1 引言

  系統仿真" title="仿真">仿真是近30年才發展起來的一門新興學科,它通過對所研究系統的認識和了解,抽取其中的基本要素,建立與現實系統相對應的仿真模型,并通過系統模型實驗去研究一個已經存在的或者正在設計的系統的過程。Matlab是一種功能強大的的仿真工具,它包括眾多的功能各異的工具箱、以矩陣和數組為基本單位的編程語言,為數學計算和試驗數據分析提供了極大的便利。Siumlink是MATLAB的一個共生產品,包括豐富的模塊資源和工具箱資源,具有相對獨立的功能和使用方法,提供了建模、分析和仿真各種動態系統的交互環境,建立仿真模型后可以很容易地通過改變仿真參數,得到不同參數的仿真結果。結合MATLAB 和Simulin的特點,可以實現各種電路的仿真。

  在構建仿真電路時,有些可以直接調用Simulink模塊,有些用Simulink模塊難以實現的,可以通過編寫Simulink 支持的S函數來完成。對于比較復雜的仿真電路,可以采用Simulink模塊調用和編程混合的方式實現。本文所實現的A/D" title="A/D">A/D轉換電路" title="轉換電路">轉換電路的仿真就是采用 Simulink模塊調用和MATLAB編程混合的方式。

  2 A/D轉換電路的仿真

  2.1A/D轉換電路的的仿真

  模/數(A/D)轉換電路的任務是將連續變換的模擬信號轉換為離散的數字信號,以便于數字系統進行處理,模/數轉換一般要完成采樣、量化和編碼等幾個過程。

  采樣是在連續變化的模擬量上按一定的規律(周期地)取出其中的某一些瞬時值來代表這個連續的模擬量。為了保證采樣信號不丟失的信息,即采樣后的離散信號能代替或能恢復原來的連續信號,采樣必須遵循采樣定理,即對信號采樣時,采樣頻率必須大于或等于信號最高頻率的兩倍。

  量化就是將f(nT)的所有值映射到數字量所表示的狀態上。實際上,在量化過程中是將樣本的幅值范圍分為若干個量化層,每一個量化層對應一個量化輸出,所有落于該量化層內的樣本都統一取該量化輸出值。量化層的數目與量化后編碼的位數有關。

  2.1.1 采樣功能的實現

  A/D轉換就是一個量化的過程,它把采樣后的模擬信號轉換成數字量。在實際工作中,A/D轉換首先要選定一個合適的編碼方案,然后根據編碼的位數確定量化層,從而確定采樣頻率。實現仿真電路的關鍵是采樣模塊的構建,由于Simulink的模塊難以構建采樣功能,采樣模塊主要是通過編寫Simulink支持的S函數實現的。S函數有固定的程序格式,S函數的實現包括初始化、連續狀態微分、計算輸出和仿真終止。可以用MATLAB語言可以編寫S函數,也可以使用C 語言、C++和Fortran 等語言編寫。S函數使用一種特殊調用規則來實現用戶與Simulink的內部解法器進行交互,并且這種交互可以適用于不同性質的系統。S函數模塊存放在 Functions&Tables模塊庫中,通過此模塊可以創建包含S函數的Simulink模塊。S函數文件名區域要填寫S函數的文件名。S函數參數區填入S函數所需要的參數。

  本系統假定輸入的模擬信號周期為2,編寫了4個S函數,分別為sf_ad4、sf_ad8、sf_ad16、sf_ad32,對應的采樣時間分別為 0.5、0.25、0.125、0.0625,即采樣頻率分別是信號最高頻率的四倍、八倍、十六倍和三十二倍。下面以sf_ad32函數為例,說明其算法及實現程序。

  首先,設模擬信號是周期為2的Sine波,且用連續的時間函數f(t)表示,采樣就是周期地取f(t)的瞬時值。根據采樣定理,對每個周期的模擬信號采樣32次,則采樣的時間就為0.0625(2/32)的倍數。完成一個周期的采樣時間為0.0625*n(0<=32,n 為整數),延時為0。采樣后將相應值輸出,但信號在量值上仍然是連續的,需將f(nT)的所有值映射到數字量所表示的狀態上,這種過程為量化。在量化過程中是將樣本的幅值范圍分為若干個量化層,每一個量化層對應一個量化輸出,所有落在該量化層內的樣本都統一取該量化輸出值。本實例中,采用4位編碼,則有 24=16個量化層。在編碼過程中采用從1000到0111的編碼,來輸出相應的量化值。其源代碼如下:

  function[sys,x0,str,ts]=sf_ad32(t,x,u,flag)
  switch flag,
   case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
   ………
   case 9,
    sys=[];
   otherwise
    error([unhandle flag=,num2str(flag)]);
  end
   function[sys,x0,str,ts]=mdlInitializeSizes
  sizes=simsizes;
  sizes.NumContStates=0;
  sizes.NumDiscStates=0;
  sizes.NumOutputs=1;
  sizes.NumInputs=1;
  sizes.DiRFeedthrough=1;
  sizes.NumSampleTimes=32;
  sys=simsizes(sizes);
  x0=[];
  str=[];
  ts=[
   0.0625 0
   0.125 0
   0.0625*3 0
   0.25 0
   ………
   0.0625*31 0
   2 0 ];
  function sys="mdlUpdate"(t,x,u)
  sys=x;
  function sys="mdlOutput"(t,x,u)
  sys=u;

  其中,sys依照flag的值返回不同的結果,x0為初始狀態值,str用于設置輸出矢量為一個空矩陣,ts采用兩列的矩陣來設置采樣時間和延遲,sf_ad4是S函數的函數名,t為目前仿真中的實現時間,x為狀態矢量,可為空,u為輸入矢量,flag為S函數行為標示。

  sf_ad8、sf_ad16、sf_ad32的S函數類似于sf_ad4,不同的就是采樣時間的個數和ts的采樣時間和延遲矩陣。調用S函數時首先將所需的S函數模塊拖入調用模塊(Simulink->User-Defined Functions->S-Function)并設置S函數的參數,參數設置對話框如圖1所示。

圖1 S函數的調用


  2.1.2 A/D轉換仿真電路的構建

  A/D轉換仿真電路由“模擬信號發生器”模塊、“選擇采樣函數1~4”模塊、“結果顯示”模塊和“A/D轉換電路”子系統組成,如圖2所示。

  “選擇采樣函數1~4”模塊是選擇采樣頻率,構建過程為:在Matlab的命令窗口中輸入命令Simulink打開Simnlink Library Browser子窗口,選中左邊目錄欄中的Simulink庫后單擊子目錄Sources,右邊的子窗口顯示相應的Sources庫中的模塊集,選中 Constant常數模塊并拖入所建的仿真模塊中(簡單表述為Simulink->Sources->Constant,后文同此),雙擊此模塊出現參數設置框,輸入所要選擇函數對應的編號1~4。“模擬信號發生器”模塊和“結果顯示”模塊通過直接調用模擬信號發生器和示波器構建。“A/D轉換電路”子系統內部主要是由1個選擇開關和四個S函數組成。“采樣電路”子系統的構建首先是調用一般的子系統(Simulink->Ports&Subsystems->Subsystem),然后雙擊此子系統,在子系統的內部生成1個選擇開關,拖入四個S函數,把選擇開關與四個S函數相連。

圖2 “A/D轉換”仿真系統的主界面


  2.1.3 A/D轉換電路的仿真結果

  運行仿真電路時,由“模擬信號發生器”模塊產生各種模擬輸入信號,通過“選擇采樣函數1~4”模塊選定采樣頻率,結果在“結果顯示”模塊顯示。
選擇采樣函數為4,則A/D轉換的采樣時間為0.0625,選定輸入信號分別為正弦波和隨機波。運行此仿真系統后的結果如圖3、圖4所示。

 

 圖3 輸入信號為正弦波的運行結果 圖4 輸入信號為隨機波的運行結果

  3 結束語

  本文作者創新點:由于Simulink的模塊庫中,缺少各種可編程接口芯片模塊,將Simulink 和MATLAB編程混合應用到A/D、D/A轉換電路的仿真,結果表明仿真效果良好。這種方法可以應用于多種控制電路、通信電路等系統的仿真中。仿真電路的工作過程類似于真實的硬件,而且更便宜、更靈活,也很容易進行恢復,避免了操作錯誤造成的損失,按每個單位一年減少五千元計算,具有明顯的經濟效益和社會效益。

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产成人精品综合网站 | 亚洲福利视频网址 | 在线中文字幕视频 | 男人使劲桶女人下面动态图片 | 九九99在线视频 | 成人免费在线视频 | 国产一区二区三区播放 | 国产日本欧美高清免费区 | 放一个特别黄的录像 | 最新亚洲情黄在线网站无广告 | 亚洲日韩欧美视频 | 日韩男女做性高清在线观看 | 特级a毛片 | 国产午夜不卡在线观看视频666 | 日本免费一区二区三区在线看 | 日韩a在线观看 | 免费看黄的网站在线看 | 视频一区中文字幕 | 免费视频色 | 欧美日韩亚洲m码色帝国 | 免费黄色的视频 | ww亚洲ww在线观看国产 | 黄色一级免费片 | 狠狠色视频 | 亚洲图片欧美视频 | 视频在线观看你懂的 | 26uuu另类欧美亚洲日本 | 看黄网址在线观看 | 日本亚洲欧美美色 | 人人揉人人添人人捏人人看 | 天天插天天摸 | 中日韩欧美视频 | 亚洲手机国产精品 | 开心激情五月婷婷 | 天天噜噜色 | 美女下面粉嫩粉嫩冒白浆高清 | 日韩一区二区免费看 | 久久国产精品佐山爱 | 欧美人禽zozk伦交 | 怡红院免费手机在线观看 | aaa在线视频 |