How to generate Pulse Frequency Modulated (PFM) waveform?

36 views (last 30 days)
There are a lot of ways to generate PWM in simulink, also there is a built in PWM Generator block. But there are no direct resources availabe for generating variable frequency PWM. How can the variable frequency PWM be generated with the condition that "an update to frequency must be done at the completion of previous cycle".
This Programmable Pulse Generator is capable of varying the frequency of PWM, but it do not meet the above stated condition as updated are done instantly and do not wait for the cycle to complete which produces glitches in the application where it is used.
If someone knows how can the frequency of sawtooth/triangular..etc waveforms be changed in rum time, please share it too as it can provide a foundation for generation of variable frequency PWM.
Thank you!
  6 Comments
Sohail Ahmed
Sohail Ahmed on 28 Sep 2021
So I want to generate flexible PFM to regulate the output of resonant converters. Since the output voltage of resonant converters is regulated by changing the frequency of switching waveforms. I hope you got my point.\
Regards,
Sohail
Mathieu NOE
Mathieu NOE on 29 Sep 2021
hello again
so as usually the carrier is a sawtooth signal, I was thinking of using a counter where the slope (= increment) can vary so the frequency of the carrier will be proportionnal to this increment
have you tried something like taht already ?

Sign in to comment.

Accepted Answer

Mathieu NOE
Mathieu NOE on 29 Sep 2021
hello again
so I created this simulation (see attachement) where the counter output is modulated by the frequency input
the frequency is a number around 1 (1 = nominal frequency)
if frequency is equal to 1 , the counter will increase up to Nmax specified (here 256) at the rate of the simulation (here 1000 iterations per second )
you can modulate that frequency to make it faster or slower . the upper trace is the counter output showing the sawtooth waveform, the lower trace is a copy of the "real" frequency value used at each counter cycle start (no modification of frequency inside one cycle is allowed)
maybe you can further build your solution on this little demo
all the best
Done with R2020b
  5 Comments
Mathieu NOE
Mathieu NOE on 30 Sep 2021
hello
FYI, changing Nmax will affet the cycle duration of the triangle waveform but also it's amplitude , so if you want to keep the amplitude constant (as a regular sawtooth wave form generator) I would only use the freq input (my 2 cents)
Sohail Ahmed
Sohail Ahmed on 30 Sep 2021
The amplitude does not matter since I will compare sawtooth waveform with a constant value of half the value of Nmax to generate PWM.

Sign in to comment.

More Answers (0)

Communities

More Answers in the  Power Electronics Control

Community Treasure Hunt

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

Start Hunting!