接口電路仿真的算法分析及實現
其中,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?!澳M信號發生器”模塊和“結果顯示”模塊通過直接調用模擬信號發生器和示波器構建?!癆/D轉換電路”子系統內部主要是由1個選擇開關和四個S函數組成。“采樣電路”子系統的構建首先是調用一般的子系統(Simulink->PortsSubsystems->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轉換電路的仿真,結果表明仿真效果良好。這種方法可以應用于多種控制電路、通信電路等系統的仿真中。仿真電路的工作過程類似于真實的硬件,而且更便宜、更靈活,也很容易進行恢復,避免了操作錯誤造成的損失,按每個單位一年減少五千元計算,具有明顯的經濟效益和社會效益。
評論