Need to shift a PWM signal (square wave) in simulink

32 visualizaciones (últimos 30 días)
Thomas Lundy
Thomas Lundy el 9 de Ag. de 2023
Respondida: Suman Sahu el 21 de Ag. de 2023
I have a system where I have three PWM signals that I need at 0 degrees, 120 and 240, I have attempted several methods without any success. I've seen similar systems use the transport delay block but when I use this it distorts the signal. Additionally the discrete variable time delay has made the system very slow when using it to the point that my simulation won't run. Is there another option?
Thanks for any help

Respuestas (1)

Suman Sahu
Suman Sahu el 21 de Ag. de 2023
Hi Thomas,
You have three PWM signals and you want to phase shift the signals by 0, 120 and 240 degrees respectively. You have tried using the ‘Transport Delay’ block and the ‘Discrete Variable Time Delay’ blocks. Since the ‘Discrete Variable Time Delay’ block has made the system slow, you can try increasing the sample time or reducing the delay time to achieve a better balance between accuracy and simulation speed. Additionally, you can try experimenting with different solvers to improve the simulation speed.
You can try using the ‘Propagation Delay’ block. The first input to the block is the signal to be delayed or phase shifted, and the second input is the delay signal where you can pass the delay time (in seconds) through a constant block. The delay time corresponding to the phase shift in degrees can be calculated based on the time period of your signals.
Please refer to the following documentations to learn more about the ‘Propagation Delay’ block:


Más información sobre Nonlinear Operators en Help Center y File Exchange.




Community Treasure Hunt

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

Start Hunting!

Translated by