Represent Simulink Integrator block as Matlab Function
    조회 수: 9 (최근 30일)
  
       이전 댓글 표시
    
Hi.
I need to implement the following behavior :

The Integrator and my_Integrator blocks have to be equivalent I/O.
How should I write the Matlab Function ?
Thanks for any reply.
채택된 답변
  Ryan G
    
 2012년 12월 4일
        As this looks like a homework problem, I can't answer directly. However I will point you in the direction of persistent variables.
댓글 수: 0
추가 답변 (4개)
  Azzi Abdelmalek
      
      
 2012년 12월 7일
        
      편집: Azzi Abdelmalek
      
      
 2012년 12월 8일
  
      I don't know why do you need this, maybe if you explain exactly what you need, there is better way
댓글 수: 9
  Azzi Abdelmalek
      
      
 2012년 12월 8일
				
      편집: Azzi Abdelmalek
      
      
 2012년 12월 8일
  
			Ok, I see, If T is constant, you must then set, in model configuration parameters your fixed step time to T, and also your step block sample time to T. In this case you don't need a clock.
function y = fcn(u)
persistent   uold yold
T=0.01;
if isempty(uold)
 uold=0;yold=0;
end
y = u*T+yold-(u-uold)*T/2
yold=y;uold=u;
  Guy Rouleau
    
 2012년 12월 5일
        This is not a good idea. The MATLAB function is not designed for this purpose.
댓글 수: 1
  Edward Rodriguez
 2020년 8월 10일
				Excuse me, so, What would be a good idea to implement numerical integration methods in blocks in Simulink?
  River Rock
 2012년 12월 5일
        
      편집: River Rock
 2012년 12월 6일
  
      댓글 수: 4
  Ryan G
    
 2012년 12월 5일
				What you have written is close it would be more like:
y(z) = yOld+u(z)/SampleTime
You cannot use the ODE solver in the MATLAB function block.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





