value that increase along with changing value by manual switch block simulink using embedded matlab function
    4 views (last 30 days)
  
       Show older comments
    
hi all
i just wanna ask,how we do the increasing value by changing manual switch in simulink??
for example: i have manual switch, with 2 constant block connect to it, first signal= 1 , second=0. i have calculation that everytime we change value in manual switch the system will add 10 to the current signal.
how we do it with embedded matlab function??
1 Comment
  Walter Roberson
      
      
 on 15 Jul 2011
				Duplicate is http://www.mathworks.com/matlabcentral/answers/11705-value-that-increase-along-with-changing-value-in-manual-switch-block-simulink
Accepted Answer
  Fangjun Jiang
      
      
 on 15 Jul 2011
        Do you have to use EML? If not, it could be done easily in Simulink using a trigger subsystem. Type "sldemo_counters" to open the demo model, connect your manual switch block output to the triggered subsystem. Inside the system, change the trigger from "risgin" to "either", change the constant from 1 to 10 then you got it.
More Answers (4)
  Walter Roberson
      
      
 on 15 Jul 2011
        Please do not open duplicate questions; it just ends up duplicating efforts.
You can edit your previous question if needed.
  Kaustubha Govind
    
      
 on 15 Jul 2011
        FWIW, here's an EML implementation:
function y = mycounter(u)
%#eml
  persistent count;
  persistent prevInput;
  firstInput = false;
    if isempty(count)
       count = 0;
    end
    if isempty(prevInput)
       prevInput = 0;
       firstInput = true;
    end
    if ~firstInput
     if (prevInput ~= u)
      count=count+1;
     end
    end
    prevInput = u;
    y = count;
end
2 Comments
  Fangjun Jiang
      
      
 on 15 Jul 2011
        Okay, feed the switch output signal to the triggered subsystem, still choose "either". Also, feed the switch output signal to an Inport of the the triggered subsystem, multiple it by 10, then feed it to an Integrator block. Did not verify. Should work. Try it yourself.
3 Comments
  Luhur
 on 15 Jul 2011
        4 Comments
  Fangjun Jiang
      
      
 on 15 Jul 2011
				If 1 then current value is increased by 10. Increased only once, or every time step as long as the switch output is 1?
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


