Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Simulink help for getting a frequency I can use as an input

  1. Mar 20, 2015 #1
    Ok, say I have a sine wave block that has a frequency of 60Hz. What can I do to get that frequency as a number so I can use it as an input to another block? I've tried various things such as a "sign" block that counts when it switches from positive to negative and then a counter that resets after a second. That doesn't work. It counts up and resets, but it doesn't just tell me what the frequency of the signal is. I want something that will just say "hey, the frequency of the input signal is this." so I can feed it into another block.

    Essentially I am trying to get a frequency I can feed into a PID so I can control a variable frequency to keep it at a steady 60 Hz.

    I am actually trying to control the frequency of a Double fed induction generator that doesn't have a steady output voltage frequency. We can control the rotor frequency as a means of controlling the stator output frequency, but I am trying to do this automatically with a PID controller. I'm feeding the stator voltage into a controller that can run simulink models, but I can't get it to just say what the stator frequency is. I can't find anything is simulink that will just give me a block that has the frequency of the input signal that I can feed into something else. Any suggestions?
  2. jcsd
  3. Mar 20, 2015 #2
    You can use PLL block in Simulink to find the frequency of the signal. Both single and three-phase PLLs are available in Simulink.
  4. Mar 21, 2015 #3
    I had looked at the PLL block, but I couldn't find a way to hook it up to anything that actually gave me the frequency. Say for example, I just hook up a sinewave block set to 60Hz to the PLL, what do I need to run the Frequency output to for it to say "60"? I tried just hooking it up to a display but it would only give me a 1 I think. What do I need to do with the PLL to actually get it to output the frequency being fed in?
  5. Mar 23, 2015 #4


    User Avatar
    Gold Member

    unless you have the DSP toolbox, there is not a drop in block.

    have you had a signals and systems class?
    You want to extract frequency information, which implies a DFT, FFT, or continuous Fourier transform function.
    Either use the FFT block from the DSP toolbox, or use the s-block to write your own function and implement the Fourier transform or fft or dft.
    or you can use individual blocks to implement the for-mentioned functions. Then you can save the pattern as a subsystem and use it in the future.
    Last edited: Mar 23, 2015
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook