0

enter image description here

I have applied PWM across a DC motor. The voltage measured across the motor is shown above.

I want to count the ripples present in the data. The ripples exist at a different frequency than the PWM frequency. I would like to figure out a way to count the ripples directly from this data or to remove/filter out the PWM cycle completely.

The PWM frequency remains constant at 120 Hz always. The ripple frequency changes based on the duty ratio i.e desired motor speed.

  • When you say that the PWM frequency is 120Hz, do you mean that every 120th of a second you send a new duty cycle? did you try filtering above 120Hz with a low pass? Or filtering around 120Hz with a band pass? (if the low pass removes what you're looking for in your data) – NokiYola Feb 07 '23 at 10:09
  • 120 Hz is the frequency of the entire PWM signal i.e one ON duration and one OFF duration. Yes, I tried a bandpass filter at 120 Hz, and I thought I could directly subtract that from original signal. But since a square wave consists of a fundamental sinusoid along with odd harmonics of that. So, that bandpass just returns the fundamental sinusoid. If I try a bandpass with a broader range so as to include those harmonics as well, that will start interfering with the ripple data frequencies that I am interested in. So, I think only a non-filter solution can work in this case. – Nitin Singh Feb 07 '23 at 10:31
  • I said bandpass but I meant bandstop. The idea was to kill the main few harmonics of the square wave in order to remove most of its influence. Otherwise if you happen to know the cyclic duty and its amplitude you might be able to simply substract the PWM signal from your measurements. – NokiYola Feb 07 '23 at 13:41
  • Would this help you? https://dsp.stackexchange.com/questions/52717/how-to-create-a-harmonic-mask-from-fundamental-frequency/52728#52728 – Dan Boschen Feb 07 '23 at 13:58

0 Answers0