Making Pulse sequence with if commands in Embeded MATLAB Function in simulink

6 views (last 30 days)
vahid on 18 Aug 2015
Answered: vahid on 18 Aug 2015
Hello. I have written a code which makes a pulse pattern. It has a repetitive sawtooth time input that ensures the pulse pattern to be periodic. Times of pulse transitions are given to Matlab function as inputs and the pulse pattern is made using two condition if (if a<b && b<c which b is the instantaneous time of the pulse and a,c are the start and end of pulse segment.) Here is a snapshot of my code:
Here is a snapshot of my simulink blocks:
and finally, here is my output:
Now my question is: I do not expect that (for example) the third segment of the output pulse has the value of 0.03, I expect it as 0.01. because in the matlab function, on the third case, my output should be u4-u3, which u4=0.035 and u3=0.025, then, my output should be 0.01 (not 0.03).

Purushottama Rao on 18 Aug 2015
Edited: Purushottama Rao on 18 Aug 2015
When U1 is between u4 and u5, y=u5-u4=0.065-0.035
That is why you have 0.03 magnitude at your output

vahid on 18 Aug 2015
Here is my mdl file (that I forgot to attach)
Purushottama Rao on 18 Aug 2015
Attach the model using 'Attch file' option. Or can you give your sawtooth wavefrom??
vahid on 18 Aug 2015
Hello Mr Purushottama Rao, thanks for your comment, I have attached the model a comment before your comment. Here is my sawtooth signal that is a periodic one with T=0.1 s and min value of 0 and peak value of 0.1, in order to represent a periodic time (clock) function.

vahid on 18 Aug 2015
Sorry sir, you are right. I considered the 0.1 output as a single if state, while actually it was two consecutive if statestates. I really appreciate your help.

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!