MATLAB: Does Simulink generate a sine wave as a triangle wave

sine wavetriangle wave

Hey community, i am new to Simulink. I wanted to generate a sine wave : sin(15*2*pi*t). But I always get a triangle wave even the amplitude is incorrect.
(see pictures)
Is there something I'm doing wrong?
thank you!

Best Answer

This is definitely a sampling issue. You need to run the model at a faster rate to adequately capture the generated signal.
What's the time step size in your model? Go to the model configuration parameters and check the sample time options in the Solver pane.
Based on the Nyquist criterion, you need to sample the signal AT LEAST at twice its frequency. In your case, that is 30 Hz, or 1/30 sec sample time. To be safe, you should use an even smaller sample time.
EDIT: If you see your model has an "auto" step size, this depends on your version. If you're using one of the newest versions, Simulink can actually try use your block's frequency to decide a better sample time. However, the traditional value for a while before that has been (1/50) of the total simulation time, which is probably too large given your parameters.
- Sebastian