信號源模塊(源模塊沒有輸入信號只輸出信號,產生特定信號)

Step模塊:可輸出階躍信號,階躍信號的階躍時間,階躍前後的值由參數對話框中的參數決定

  1. step time:信號產生階躍變化的時刻
  2. initial value:信號階躍時刻前的值
  3. final value:信號階躍時刻之後的值
  4. sample time:模塊採樣時間
  5. interpret vector parameters as 1-D:是否將進行/列矩陣看作多維數據
  6. Enable zero-crossing detection:過零檢測

週期信號模塊(Repeating Sequence):可方便地產生週期波形,將仿真產生的波形形狀顯示在模塊圖標上

clock模塊:可用於輸出仿真時間,也可作為一些函數的時間輸入以產生不同的信號源

正弦信號發生模塊(Sine Wave):模塊框圖上能反映模塊的連續性或離散性的正弦圖案


  1. sine type:正弦波類型Time based和Sample based
  2. Time(t):時間序列源選擇。Use simulation time表示使用解算器的時間;Use external signal表示使用外部輸入信號作為時間源(會增加一個端口)
  3. interpret vector parameters as1-D:當正弦波產生公式相關的參數填入向量時,勾選是否將輸出作為多維輸出信號(Time(t)選擇為use external
    signal時,參數無效)

From Workspace模塊:將保存在Base Workspace,Model Workspace或Mask Workspace等處的變量作為信號導入Simulink

數據類型

  1. 時間序列Timerseries對象,可通過timerseries函數創建
  2. 二維矩陣,矩陣第一列為仿真採樣時間,其餘每列表示對應採樣時刻的信號值
  3. 結構體類型,可以包含仿真採樣時間序列作為其成員變量,也可不包含

Timeseries對象包括Name,Time,TimeInfo,Data和DataInfo

Time:存儲仿真採樣時間向量

Data:存儲對應仿真採樣時刻的信號量

格式:num = timeseries(data, time);eg:num = timeseries(cos([0:0.1:10]), [0 : 0.1 : 10])

From File模塊:可以導入硬盤上的mat文件到Simulink模型中作為輸入信號連接其他模塊進行仿真

信號接收模塊

Display模塊:顯示最新一個仿真時刻所連接信號線內傳遞的即時數值,不記錄整個仿真過程的值(可接收多維信號)

  1. 參數Decimation:模塊數值更新的頻率,所填數字表示每隔幾個採樣點更新依次模塊的數值顯示
  2. 參數Floating display:將顯示被鼠標選中的信號線的值。需先選中信號線再進行仿真

To Workspace模塊:在模型仿真結束時將仿真數據直接存儲到工作空間,輸出數據類型:timeseries,矩陣或structure

To File模塊:將模型仿真數據存儲到mat文件中(不僅可以保存一維信號到mat文件中,也能保存Bus信號
Stop Simulation模塊:一旦接收非零信號就停止模型仿真;當模型仿真過程中某個信號達到某個條件時停止必須用Stop Simulation模塊

查表模塊

查表:目標為一個填滿數據的表格或向量(1維)或矩陣(多維),根據對應維數的輸入能夠在表中定位一個對應的輸出

事先將正弦函數在一個週期的輸入按照一定的採樣間隔離散化,並將其對應的數值事先計算好,將二者共同構成一個一維查找表,存儲在ROM中(生成代碼時通常使用Simulink。Parameters對象定義查找表的Breakpoints和Table值),每次嵌入式計算中需要調整正弦函數時直接根據輸入換算到一個週期內,然後再取查表計算,效率提高

1-D Lookup Table模塊:最簡單的查找表模塊,能夠根據輸入在一維表中查找對應值輸出,仿真時根據輸入信號的值進行查表,將對應的表格值輸出,該模塊根據內部定義的查找表進行圖像繪製,表現在模塊框圖上

  1. Table and Breakpoints:用於設置查找表維數,每個維數的輸入及查找表的定義
  2. Table data:查找表的數值
  3. Breakpoints 1:查找表第一維輸入向量,需按照從小到大嚴格單調遞增

查表缺陷:當輸入的值並非正好落在查找表中提供的點上,需要使用插值算法(當輸入沒有落在查找表的breakpoint上但在其範圍內時使用內插算法;當輸入在breakpoints所表示的範圍外時則使用外插算法)

內插算法(Flat,Linear,Cubic spline)

  1. Flat-Flat插值:使用輸入值相鄰兩個breakpoint中較小的一個
  2. Linear:線性插值法
  3. Cubic spline:三次樣條插值方法

外插算法(Clip,Linear,Cubic spline)

  1. Clip-Clip插值:使用breakpoint端點值

n-D Lookup Table模塊:可修改n使用方法同上

其他常用模塊

數學函數模塊,隨機數序列模塊,傳遞函數模塊

數學函數模塊:根據所選擇的數學運算符號輸入端口個數會有變化,模塊圖標上會顯示當前提供的數學函數功能

部分不熟悉的數學運算功能

  • magnitude^2:幅值,絕對值的平方
  • conj:複數共軌計算
  • reciprocal:倒數計算
  • hypot:直角三角形斜邊長計算
  • mod:求模計算,2個輸入端口,u,v,對u求模為v的計算
  • transpose:矩陣轉置計算
  • hermitian:複數共軛轉置計算

隨機數模塊(Random Number):可以產生正態分佈的隨機信號,默認情況下隨機信號均值為0,方差為1.在信號處理仿真中可以作為噪聲信號源,給被濾波信號增加噪聲,以驗證濾波器的濾波性能。

  1. mean:產生隨機數序列的均值
  2. Variance:產生隨機數序列的方差
  3. Seed:用於產生隨機數序列的種子,可以是0或正整數,根據種子可以產生週期性的偽隨機數。保持參數不變,多次仿真,結果一樣

傳遞函數模塊(Transfer Fcn):描述一個線性系統在連續域傳遞函數的模塊,可以仿真一個單輸入單輸出(SISO)系統

  1. Numerator coefficients:傳遞函數的分子向量
  2. Denominator coefficients:傳遞函數的分母向量
  3. Absolute tolerance:誤差容限(-1表示繼承Configuration Parameter中的絕對誤差容限)
  4. State Name:狀態名

用户自定義模塊

讓用户或去調用MATLAB內建函數,或使用M語言/C語言根據Simulink運行原理編寫擁有自定義功能的模塊

Fcn模塊:只能調用MATLAB內建的數學計算函數,將這個數學運算函數運用於輸入信號再加以輸出計算值,是直接饋入的模塊

MATLAB Function模塊:支持M語言編寫模塊功能,可以將編寫的M語言生成C代碼,用於開發桌面應用和嵌入式應用的模塊;還可以調用MATLAB各種工具箱裏提供的內建函數,包括支持代碼生成和不支持代碼生成(在function頭的下一行增加%#codegen符號是為了使靜態代碼分析器CodeAnalyzer診斷代碼並提示用户對可能在代碼生成過程中導致錯誤的違規寫法進行修改)

關於persistent變量可實現累加功能,persistent變量是定義在某個函數內的變量類型,可在函數調用的不同次數間保持上一次退出該函數的值。只能被聲明他的函數內部識別,為了免除此變量被其他函數或命令行修改值而造成用户無法確保其值的困擾。聲明persistent變量時剛剛被創建,不具有初始值為[],調用persistent變量函數時 先判斷其變量是否為空,如果為空則初始值為0,非空則直接使用。

  • 其不能作為函數的輸入輸出參數
  • 不能同當前工作空間中已經存在的變量同名
  • 不能聲明在Common Window裏,必須在函數內聲明

MATALB Function模塊支持在M編輯器內部定義子函數並調用,當不支持遞歸調用,可以將MATLAB內建函數編寫的M函數生成C代碼

關於Scope模塊只能顯示線條圖像,還不支持3-D繪圖

S函數模塊(System function):用來描述一個模塊特徵及內涵的函數,支持M,C語言;可以通過其自定義一個模塊實現自定義的算法和其他行為。具有不同的等級。