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

1 次查看(过去 30 天)
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).
I appreciate your help
I have attached the mdl file for more information.

采纳的回答

Purushottama Rao
Purushottama Rao 2015-8-18
编辑:Purushottama Rao 2015-8-18
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

更多回答(2 个)

vahid
vahid 2015-8-18
Here is my mdl file (that I forgot to attach)
  2 个评论
vahid
vahid 2015-8-18
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
vahid 2015-8-18
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.

类别

Help CenterFile Exchange 中查找有关 Simulink 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by