simulink中的mux與的demux

2021-09-25 04:05:37 字數 2131 閱讀 3279

4 總結

對mux與demux的好奇。

source.m中輸出兩個訊號:xd=cos(t);與 yd=sin(t);,source.m檔案**如下:

%function [sys,x0,str,ts] = spacemodel(t,x,u,flag)

function [sys,x0,str,ts] = source(t,x,u,flag)

switch flag,

case 0,

[sys,x0,str,ts]=mdlinitializesizes;

case 3,

sys=mdloutputs(t,x,u);

case

sys=;

otherwise

error(['unhandled flag = ',num2str(flag)]);

endfunction [sys,x0,str,ts]=mdlinitializesizes

sizes = simsizes;

sizes.numcontstates = 0;

sizes.numdiscstates = 0;

sizes.numoutputs = 2;

sizes.numinputs = 0;

sizes.dirfeedthrough = 0;

sizes.numsampletimes = 1;

sys = simsizes(sizes);

x0 = ;

str = ;

ts = [0 0];

function sys=mdloutputs(t,x,u)

xd=cos(t);

yd=sin(t);

sys(1)=xd;

sys(2)=yd;

%sys(3)=xd;

% sys(4)=yd;

**構建如圖:

執行上述**,得到波形如圖(從左到右分別為scope1,scope2,scope3):

現象:scope1中為xd,yd的波形;

scope2中為xd的波形;

scope3中為yd的波形。

結論:demux可以將訊號按照先後順序分離(具體順序為:在m函式中先出現的訊號在第一位,後出現的為第二位,以此類推)。

構建**圖如下:

執行**,得到scope4波形吐下:

結論:scope4波形同scope1,則mux具有將訊號組合起來的作用。

3.1 mux的使用順序問題

構建**如圖

scope4波形如圖:

此時,已經無法從scope4中看到順序問題,先從scope4-to workspace中看。回到matlab工作區,觀察到出現scope4變數如圖:

檢視scope4的具體內容:

觀察到scope4的順序為:

xd;yd;xd;yd()從左往右看)與**中,從上到下的順序相同。

demux 按順序將訊號分離。

mux 按順序將訊號束在一起(資料不發生耦合,像是一根電纜內部包含了許許多多的訊號線)。

關於simulin中的向量mux模組應用和其它

1.首先說一下mux模組的訊號編號規則,如下圖 反正就是按照從上往下的規則去排序。2.當乙個示波器接入多個訊號時,分不清示波器上哪條對應哪個訊號時 a,你可以把訊號分開來用示波器去測 b,或者一般情況是,按照黃紫藍的順序排列,對應輸入訊號1,訊號2,訊號3.3.在封裝子系統之後,注意在編輯引數介面,...

如何在Simulink中新增自己的庫?

1.在maltab安裝路徑某個地方建立乙個資料夾。比如說在e matlabr2009a toolbox 路徑下面建立了乙個資料夾mylib,也就是e matlabr2009a toolbox mylib 2.把你的庫檔案 mdl 檔案 放到這個資料夾下面 3.在這個資料夾下面建立乙個 slblock...

simulink的相關東西

m ary 表示,產生的值在0到m 1之間 sample time 當 時間設定為t時,產生的資料量為t sample time samples per frame 以幀為單位輸出時,每一幀資料的資料量。舉例 當如上圖,sample time為0.01時,時間設定為100s時,此時,產生的資料量為1...