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

32 次查看(过去 30 天)
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

回答(1 个)

Suman Sahu
Suman Sahu 2023-8-21
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:


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




Community Treasure Hunt

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

Start Hunting!

Translated by