value that increase along with changing value by manual switch block simulink using embedded matlab function
Ältere Kommentare anzeigen
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 Kommentar
Walter Roberson
am 15 Jul. 2011
Duplicate is http://www.mathworks.com/matlabcentral/answers/11705-value-that-increase-along-with-changing-value-in-manual-switch-block-simulink
Akzeptierte Antwort
Weitere Antworten (4)
Walter Roberson
am 15 Jul. 2011
1 Stimme
Please do not open duplicate questions; it just ends up duplicating efforts.
You can edit your previous question if needed.
1 Kommentar
Luhur
am 15 Jul. 2011
Kaustubha Govind
am 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 Kommentare
Luhur
am 15 Jul. 2011
Walter Roberson
am 15 Jul. 2011
FWIW means "For What It Is Worth".
Fangjun Jiang
am 15 Jul. 2011
1 Stimme
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 Kommentare
Luhur
am 15 Jul. 2011
Fangjun Jiang
am 15 Jul. 2011
Then change the sample time of the Integrator block to be -1.
Luhur
am 16 Jul. 2011
Luhur
am 15 Jul. 2011
0 Stimmen
4 Kommentare
Fangjun Jiang
am 15 Jul. 2011
It certainly can be done. It is different though. Your original intention was to increase the counter by 10 every rising or falling edge of your switch output. This one, how do you increase if the switch output is 1? Increase 10 at every time step? Or there is something else trigger the increase?
Luhur
am 15 Jul. 2011
Fangjun Jiang
am 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?
Luhur
am 15 Jul. 2011
Kategorien
Mehr zu Simulink finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!