MATLAB: Provide Duty Signal delay

MATLABpower_electronics_controlsimpowersystemssimulink

Hello,
I am trying to give three duty signal to a block. Such as D1+D2+D3=1. So what ever the combination of these duty is the total answer should be 1. I have used transport delay but it is not giving me accurate delay. You can see in screenshort.
My objective is to have variable duty (like it can be changed instaneously through a controller) and as soon as D1 end D2 should start which is then folled by D3=1-D1-D2
Can you please help me with this model. I am attaching model too. In screenshot the delay D3 is giving a slant which is not desireable. It should be like D1.

Best Answer

I would do something like this (.slx file is attached).
threedelay.png
So the signals will be generated by each Pulse Generator. At each period, signal 1 will not be delayed, signal 2 will be present as signal 1 dies, and signal 3 will be present as signal 2 dies.
In the model, I put these blocks as a subsystem and put a mask over it. I hope that helps. Anyway, please check the output signal and the implementation under the mask to see if this is suitable for you.