Variable Frequency Ruining Signal in Simulink

3 次查看(过去 30 天)
I have a Simulink model. In some conditions i need to increase/decrease the frequency of the system by using ramps. Im using a Rate limiter to achieve this. Although when i try to change the frequency, actual frequency of signal gets more faster than my input. After frequency meets the desired level (when rate limiter gives constant value) signal turns to normal. I prepared an example to show my problem visually:
Here i used an sin block and changed its frequency from 1 to 2 (sec. 15). Slew rate of the Rate Limiter is set to 1. This is the scope:
Signal turns to normal frequency after about 6 seconds.This problem may be about solver options. My simulation operates on ode1 solver with 1e-4 step size. Is there any way to overcome this problem preferably without changing the step size ?

回答(1 个)

Fangjun Jiang
Fangjun Jiang 2024-4-24
编辑:Fangjun Jiang 2024-4-24
Interesting but I think I got the explaination. Everything is correct. You thought something was wrong probably because you mis-read it.
Take a look at the output of the Rate Limiter. Also take a look at the curve of the signal prior to sin().
The curve of the signal prior to sin() shows three phases. The first phase (0 to 15 second) is linear, the slope is 2*pi, corresponding to 1Hz. The third phase (after about 21 second) is also linear, the slope is 4*pi, corresponding to 2Hz.
The second phase is non-linear, due to the multiplying of both increasing inputs. The average slope is more than 8*pi. If you treat it as the input of a constant frequency sine wave, the effective frequency is indeed faster (higher than 4 Hz).
Move the Rate Limiter to right after the Step input (replacing the Constant 1 block), you will see more interesting effect.

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by