converting M-file into a block function in simulink-2
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I use a block "Level-2 M-file S-Function", M-file name = duong_truyen, I get a error: "Eroor due to multiple causes --> Too many input arguments.-->Error evaluating the initialization for M-S-Function 'duong_truyen'.Too many input arguments.The following is the MATLAB call stack (file names and line numbers) that produced this error:"
function [] = duong_truyen()
%--------------------------------
open('demo_layout.fig');
set(gcf,'name','Duong Truyen');
set(gcf,'NumberTitle','off');
%--------------------------------
% Lay vi tri truc toa do
placeHolderName = 'wrapAx';
thisAx = findobj('Tag',placeHolderName);
thisPos = get(thisAx,'position'); % lay vi tri cua thisAx
delete(thisAx);
%--------------------------------
wrapDial = dial('refVal',0,... % Val_ diemef
'refOrientation',90*pi/180,... % Orientation _ su dinh huong
'valRangePerRotation',360, ... % pham vi quay
'Min',0,... % nho nhat
'Max',359,... % lon nhat
'doWrap',1,... % wrap _ bao phu
'Value',0,... % gia tri
'Position',thisPos,... % vi tri = thisPos
'VerticalAlignment','bottom',... % duowng thang dung = day, phan
'Tag','wrapDial',... % Tag = wrapDial
'CallBack',@wrap_cb,... % goi ham "wrap_cb"
'titleStr','Keo kim quay',... % chuoi dau de (tit) = 'Wrapping' on
'titlePos','top',... % vi tri tit = dinh
'tickVals', [0 90 180 270],... % gia tri duowng tick
'tickStrs',{'N' 'E' 'S' 'W'}); % chuoi ghi o duowng tick
%--------------------------------
% Thiet lap mau.
faceColour = get(wrapDial.panelHndl,'facecolor'); set(findobj('Tag','wrapText'),'BackgroundColor',faceColour,'ForegroundColor','r');
set(findobj('Tag','wrapText'),'string','0');
%--------------------------------
% Co lai kich thuoc mat dong ho.
set(wrapDial,'dialRadius',0.55);
%--------------------------------
% Lam kim quay tuy bien.
x = [0 .55 .4 NaN .55 .4];
y = [0 0 .14 NaN 0 -.14];
set(wrapDial.linePointerHndl,'xdata',x,'ydata',y);
set(wrapDial.linePointerHndl,'color','r');
%--------------------------------
% Di chuyen ticklabel roi xa mat dong ho.
set(wrapDial,'tickLabelRadius',0.69);
%--------------------------------
% Thay doi font ticklabel.
set(wrapDial.tickLabelHndls,'fontname','Courier');
set(wrapDial.tickLabelHndls,'fontWeight','Bold');
set(wrapDial.tickLabelHndls,'fontSize',16);
%--------------------------------
%--------------------------------
function [] = wrap_cb()
% wrap_cb.m--Callback for "wrap" dial.
%--------------------------------------
wrapDial = dial.find_dial('wrapDial','-1');
dialVal = round(get(wrapDial,'Value'));
set(findobj('Tag','wrapText'),'string',sprintf('%d',dialVal));
0 commentaires
Réponse acceptée
Kaustubha Govind
le 23 Août 2012
You have not written an S-function, but just a MATLAB function in a format that Simulink will not understand. Please go through the documentation for MATLAB S-functions and look at some of the demos to understand how to right S-functions.
3 commentaires
Kaustubha Govind
le 24 Août 2012
duc1 duc2: Sorry, I'm really having trouble figuring how to answer better to help you understand. I've pointed you to the right documentation, but it's not clear whether you've been reading any of it because you've been asking the exact same question over and over again.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Simulink Functions dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!