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...