how to embed matlab function simulink
    2 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
How to call this code in simulink while running as one of it's blocks
% intialization global Iref; global Increment; global Pold; Pold=0; Iref=4; Increment = -1;
function y = MPPtrackIref(P)
global Pold; global Iref; global Increment; IrefH = 5; IrefL =0; DeltaI = .02
if (P < Pold) Increment = - Increment; end
Iref = Iref + Increment*DeltaI
end
Pold = P; y = Iref;
2 Commenti
  Walter Roberson
      
      
 il 9 Ott 2012
				Please read the guide to tags and retag this question; see http://www.mathworks.co.uk/matlabcentral/answers/43073-a-guide-to-tags
Risposta accettata
  Azzi Abdelmalek
      
      
 il 5 Ott 2012
        You don't need to use global variables, just use constant blocks and pass them through your matlab function
0 Commenti
Più risposte (4)
  Kaustubha Govind
    
      
 il 5 Ott 2012
        
      Modificato: Kaustubha Govind
    
      
 il 5 Ott 2012
  
      As explained in this previously asked question, it appears that you need to use global variables inside MATLAB Function blocks in conjunction with Data Store Memory blocks. If you really just mean to use those global variables as persistent memory, you should try:
function y = MPPtrackIref(P)
persistent Pold Iref Increment; 
if isempty(Pold)
   Pold=0; %initialized only once in the beginning
end
if isempty(Iref)
   Iref=4; %initialized only once in the beginning
end
if isempty(Increment)
   Increment = -1; %initialized only once in the beginning
end
IrefH = 5; IrefL =0; DeltaI = .02;
if (P < Pold) 
  Increment = - Increment; 
end
Iref = Iref + Increment*DeltaI;
end
Pold = P; 
y = Iref;
0 Commenti
  Julien
      
 il 5 Ott 2012
        Hi, You can use the ' Matlab function ' block (found inside user-defined function library )
But this simple function can also be defined with usual simulinks block (with boolean test and unit delay blocks).
Why do you need to define your constants as global variable ?
0 Commenti
  mado
 il 5 Ott 2012
        1 Commento
  Azzi Abdelmalek
      
      
 il 5 Ott 2012
				add a constant block and set a constant value to variable v (for example). in your m file or matlab command assign a value to your variable v
Vedere anche
Categorie
				Scopri di più su Interactive Model Editing in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!