differentiating twice in simulink
23 views (last 30 days)
Show older comments
I tried to use derivative block twice where the input is a sine wave and it does not give the output I expected. Why is that and how can I make an system that differentiate the input signal twice? I would like to create a feedforward controller that differentiate twice the input signal by using a differentiator block. Can I get some suggestions on how to do that ? In the second picture I attached, the input signal is supposed to be desired theta but since double derivative block does not work in simulink, I had to find double derivative of the input analytically first and then integrate twice to get the input again.
1 Comment
Sam Chak
on 3 Nov 2023
I seldom use the derivative block. If you already know the theta function (sine wave) beforehand, then you can definitely obtain the analytical 2nd-order derivative of the sine wave. Is this true?
Accepted Answer
Angelo Yeo
on 6 Nov 2023
Edited: Angelo Yeo
on 6 Nov 2023
I need your model for further investigation because the issue is not reproducible in my end. However, I believe the fact that the initial output value for the Derivative block is always 0 should have something to do with your issue (see here)
If you closely look at the output of first derivative, the initial output is set to be 0. This is a designed behavior. This will lead to sharp slope of the first derivative at its initial point, which leads to a spike in the second derivative.

6 Comments
Angelo Yeo
on 8 Nov 2023
Well, you can use the IC block in order to set the initial condition no matter what the original initial condition is. However setting the initial condition does not guarantee the exact result as analytic solution. Be aware that Simulink runs based on numerical calculations.
More Answers (0)
See Also
Categories
Find more on Prepare Model Inputs and Outputs in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

