Lupao

Members
  • Posts

    7
  • Joined

  • Last visited

core_pfieldgroups_99

  • Nome
    Paolo

Lupao's Achievements

Newbie

Newbie (1/3)

10

Reputation

  1. non trovo questo blocco....qualcuno sa se esiste e come si chiama??
  2. è possibile importare in simulink una funzione creata in m-files???
  3. è possibile in matlab creare dei segnali tempodiscreti in m-file e importarli sul simulink?? mi spiego meglio. ho creato una funzione che crea i passi tempodiscreti della velocità di una ruota. sono semplici segnali a gradino(+/-1) e vorrei poter portare questi valori su un lavoro in simulink come segnali di ingresso.è possibile farlo??
  4. Lupao

    S-function

    i file che si richiamano sno diversi. il problema non è che non so lavorare su di essi, ma che non conosco completamente le S-function?come si specificano? su quali dati e come lavorano??
  5. Lupao

    S-function

    se vuoi ti mando tutto in allegato. cmq nel workspace non compare la variabile d'uscita e cmq visto che il programma non è stato fatto da me non so come andarle a settare all'interno!??!
  6. Lupao

    S-function

    il programma è un blocchetto simulink che rappresenta un laserscanner. ho già settato tutti i paramentri al'interno del m file ma quando mando il run mi da un errore sull'uscita, dicendomi che l'uscita deve essere un vettore di lunghezza 181. io non so di che lungezza è il mio vettore di uscita!!!! cmq ecco m-file: function [sys,x0,str,ts] = ViewerPoseScanToMap(t,x,u,flag,Ns,Dmax,ScanAngle) %-------------------------------------------------------------------------% %-------------------------------------------------------------------------% %-------------------------------------------------------------------------% %Pseudo-code % Viewer % %-------------------------------------------------------------------------% %-------------------------------------------------------------------------% %-------------------------------------------------------------------------% %%%%%%%%%%%%%%%%%% % Initialization % %%%%%%%%%%%%%%%%%% x0 = zeros(1,181); str = []; ts = [0 0]; sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 181; sizes.NumOutputs = 181; sizes.NumInputs = 0; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); flag='0'; flag='2'; switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(Ns); %%%%%%%%%% % Update % %%%%%%%%%% case 2, sys=MdlUpdate(x,u,Ns,Dmax,ScanAngle); end % %============================================================================= % mdlInitializeSizes % Return the sizes, initial conditions, and sample times for the S-function. %============================================================================= % function [sys,x0,str,ts]=mdlInitializeSizes(Ns) sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 3+Ns; sizes.NumOutputs = 181; sizes.NumInputs = 3+Ns; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes); fig1 = figure('Units','normalized',... 'Color', [0.8, 0.8, 0.8],... 'MenuBar', 'none',... 'Name', 'Viewer',... 'NumberTitle', 'off',... 'Position', [0.2, 0.1, 0.6, 0.8],... 'DoubleBuffer', 'on',... 'Resize', 'off'); ax1 = axes; set(fig1, 'UserData', [ax1]); x0 = zeros(1,3+Ns); str = []; ts = [-1 0]; % %============================================================================= % mdlUpdate % Handle discrete state updates, sample time hits, and major time step % requirements. %============================================================================= % function sys=MdlUpdate(x,u,Ns,Dmax,ScanAngle) u=u/1000; ud1 = get(gcf, 'Userdata'); j = 0; for i = 1 : Ns if(u(i+3)<Dmax) theta = u(3)+((i/Ns-1)*ScanAngle)+(ScanAngle/2); xwall(j+1)= u(1) + u(i+3)*cos(theta); ywall(j+1)= u(2) + u(i+3)*sin(theta); j=j+1; else if(j>0) plot(ud1(1),xwall, ywall,'.k'); set(ud1(1),'xlimmode', 'manual',... 'xlim', [-40, 40],... 'ylimmode', 'manual',... 'ylim', [-40, 40],... 'NextPlot', 'Add'); xwall=[]; ywall=[]; j=0; end; end; end; if(j>0) plot(ud1(1),xwall, ywall,'.k'); set(ud1(1),'xlimmode', 'manual',... 'xlim', [-20, 20],... 'ylimmode', 'manual',... 'ylim', [-20, 20],... 'NextPlot', 'Add'); end; pose=[x(1),x(2),x(3)]; Robot = Vehicle(pose); plot(ud1(1), Robot.x, Robot.y, 'r'); set(ud1(1),'xlimmode', 'manual',... 'xlim', [-20, 20],... 'ylimmode', 'manual',... 'ylim', [-20, 20],... 'NextPlot', 'replacechildren'); sys=u;
  7. sto avendo grossi problemi con matlab. mi hanno dato un programma già fatto per provarlo. questo programma è in simulink e lavora tramite una S-fnction. io non ho mai lavorato con queste e non riesco a settare i parametri e far partire il programma. qualcuno sa darmi qualche info in più su queste S-function??