當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]   1 引言  系統(tǒng)仿真是近30年才發(fā)展起來的一門新興學(xué)科,它通過對(duì)所研究系統(tǒng)的認(rèn)識(shí)和了解,抽取其中的基本要素,建立與現(xiàn)實(shí)系統(tǒng)相對(duì)應(yīng)的仿真模型,并通過系統(tǒng)模型實(shí)驗(yàn)去研究一個(gè)已經(jīng)存在的或者正在設(shè)計(jì)的系統(tǒng)的

 

  1  引言

  系統(tǒng)仿真是近30年才發(fā)展起來的一門新興學(xué)科,它通過對(duì)所研究系統(tǒng)的認(rèn)識(shí)和了解,抽取其中的基本要素,建立與現(xiàn)實(shí)系統(tǒng)相對(duì)應(yīng)的仿真模型,并通過系統(tǒng)模型實(shí)驗(yàn)去研究一個(gè)已經(jīng)存在的或者正在設(shè)計(jì)的系統(tǒng)的過程。Matlab是一種功能強(qiáng)大的的仿真工具,它包括眾多的功能各異的工具箱、以矩陣和數(shù)組為基本單位的編程語言,為數(shù)學(xué)計(jì)算和試驗(yàn)數(shù)據(jù)分析提供了極大的便利。Siumlink是MATLAB的一個(gè)共生產(chǎn)品,包括豐富的模塊資源和工具箱資源,具有相對(duì)獨(dú)立的功能和使用方法,提供了建模、分析和仿真各種動(dòng)態(tài)系統(tǒng)的交互環(huán)境,建立仿真模型后可以很容易地通過改變仿真參數(shù),得到不同參數(shù)的仿真結(jié)果。結(jié)合MATLAB 和Simulin的特點(diǎn),可以實(shí)現(xiàn)各種電路的仿真。

  在構(gòu)建仿真電路時(shí),有些可以直接調(diào)用Simulink模塊,有些用Simulink模塊難以實(shí)現(xiàn)的,可以通過編寫Simulink 支持的S函數(shù)來完成。對(duì)于比較復(fù)雜的仿真電路,可以采用Simulink模塊調(diào)用和編程混合的方式實(shí)現(xiàn)。本文所實(shí)現(xiàn)的A/D轉(zhuǎn)換電路的仿真就是采用 Simulink模塊調(diào)用和MATLAB編程混合的方式。

  2  A/D轉(zhuǎn)換電路的仿真

  2.1  A/D轉(zhuǎn)換電路的的仿真

  模/數(shù)(A/D)轉(zhuǎn)換電路的任務(wù)是將連續(xù)變換的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào),以便于數(shù)字系統(tǒng)進(jìn)行處理,模/數(shù)轉(zhuǎn)換一般要完成采樣、量化和編碼等幾個(gè)過程。

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

  量化就是將f(nT)的所有值映射到數(shù)字量所表示的狀態(tài)上。實(shí)際上,在量化過程中是將樣本的幅值范圍分為若干個(gè)量化層,每一個(gè)量化層對(duì)應(yīng)一個(gè)量化輸出,所有落于該量化層內(nèi)的樣本都統(tǒng)一取該量化輸出值。量化層的數(shù)目與量化后編碼的位數(shù)有關(guān)。

  2.1.1 采樣功能的實(shí)現(xiàn)

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

  本系統(tǒng)假定輸入的模擬信號(hào)周期為2,編寫了4個(gè)S函數(shù),分別為sf_ad4、sf_ad8、sf_ad16、sf_ad32,對(duì)應(yīng)的采樣時(shí)間分別為 0.5、0.25、0.125、0.0625,即采樣頻率分別是信號(hào)最高頻率的四倍、八倍、十六倍和三十二倍。下面以sf_ad32函數(shù)為例,說明其算法及實(shí)現(xiàn)程序。

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

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的值返回不同的結(jié)果,x0為初始狀態(tài)值,str用于設(shè)置輸出矢量為一個(gè)空矩陣,ts采用兩列的矩陣來設(shè)置采樣時(shí)間和延遲,sf_ad4是S函數(shù)的函數(shù)名,t為目前仿真中的實(shí)現(xiàn)時(shí)間,x為狀態(tài)矢量,可為空,u為輸入矢量,flag為S函數(shù)行為標(biāo)示。

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

圖1 S函數(shù)的調(diào)用

  2.1.2 A/D轉(zhuǎn)換仿真電路的構(gòu)建

  A/D轉(zhuǎn)換仿真電路由“模擬信號(hào)發(fā)生器”模塊、“選擇采樣函數(shù)1~4”模塊、“結(jié)果顯示”模塊和“A/D轉(zhuǎn)換電路”子系統(tǒng)組成,如圖2所示。

  “選擇采樣函數(shù)1~4”模塊是選擇采樣頻率,構(gòu)建過程為:在Matlab的命令窗口中輸入命令Simulink打開Simnlink Library Browser子窗口,選中左邊目錄欄中的Simulink庫后單擊子目錄Sources,右邊的子窗口顯示相應(yīng)的Sources庫中的模塊集,選中 Constant常數(shù)模塊并拖入所建的仿真模塊中(簡(jiǎn)單表述為Simulink->Sources->Constant,后文同此),雙擊此模塊出現(xiàn)參數(shù)設(shè)置框,輸入所要選擇函數(shù)對(duì)應(yīng)的編號(hào)1~4。“模擬信號(hào)發(fā)生器”模塊和“結(jié)果顯示”模塊通過直接調(diào)用模擬信號(hào)發(fā)生器和示波器構(gòu)建。“A/D轉(zhuǎn)換電路”子系統(tǒng)內(nèi)部主要是由1個(gè)選擇開關(guān)和四個(gè)S函數(shù)組成?!安蓸与娐贰弊酉到y(tǒng)的構(gòu)建首先是調(diào)用一般的子系統(tǒng)(Simulink->Ports&Subsystems->Subsystem),然后雙擊此子系統(tǒng),在子系統(tǒng)的內(nèi)部生成1個(gè)選擇開關(guān),拖入四個(gè)S函數(shù),把選擇開關(guān)與四個(gè)S函數(shù)相連。

       

圖2 “A/D轉(zhuǎn)換”仿真系統(tǒng)的主界面

  2.1.3 A/D轉(zhuǎn)換電路的仿真結(jié)果

  運(yùn)行仿真電路時(shí),由“模擬信號(hào)發(fā)生器”模塊產(chǎn)生各種模擬輸入信號(hào),通過“選擇采樣函數(shù)1~4”模塊選定采樣頻率,結(jié)果在“結(jié)果顯示”模塊顯示。
選擇采樣函數(shù)為4,則A/D轉(zhuǎn)換的采樣時(shí)間為0.0625,選定輸入信號(hào)分別為正弦波和隨機(jī)波。運(yùn)行此仿真系統(tǒng)后的結(jié)果如圖3、圖4所示。


                    
圖3 輸入信號(hào)為正弦波的運(yùn)行結(jié)果     圖4 輸入信號(hào)為隨機(jī)波的運(yùn)行結(jié)果

  3  結(jié)束語

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉