| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Simulink |
| Contents | Index |
| Learn more about Simulink |
Continuous

The Derivative block approximates the derivative of its input by computing
![]()
where du is the change in input value and dt is the change in time since the previous simulation time step. The block accepts one input and generates one output. The initial output for the block is zero.
The accuracy of the results depends on the size of the time steps taken in the simulation. Smaller steps allow a smoother and more accurate output curve from this block. Unlike blocks that have continuous states, the solver does not take smaller steps when the input changes rapidly.
When the input is a discrete signal, the continuous derivative of the input is an impulse when the value of the input changes. Otherwise, it is 0. You can obtain the discrete derivative of a discrete signal using
![]()
and taking the z-transform.
![]()
See Circuit Model in the Simulink User's Guide for an example of choosing the best-form mathematical model to avoid using Derivative blocks in your models.
Using linmod to linearize a model that contains a Derivative block can be troublesome. Before linearizing your model, replace each Derivative block with a block that avoids the problems. In the Library Browser, go to the Simulink Extras library and open the Linearization sublibrary. For each instance of the Derivative block in your model, use the Switched derivative for linearization block.
For more information, see the linmod reference page and Linearizing Models in the Simulink documentation.
To improve linearization, you can also try to incorporate the derivative term in other blocks. For example, if you have a Derivative block in series with a Transfer Fcn block, try using a single Transfer Fcn block of the form
![]()
For example, you can replace the blocks on the left of this figure by using the block on the right.
![]()
The Derivative block accepts and outputs a real signal of type double.

Specify the time constant N to approximate the linearization of your system.
Default: inf
The default value inf corresponds to a linearization of 0.
The exact linearization of the Derivative block
is difficult, because the dynamic equation for the block is
,
which you cannot represent as a state-space system. However, you can
approximate the linearization by adding a pole to the Derivative to
create a transfer function
.
The addition of a pole filters the signal before differentiating it,
which removes the effect of noise.
A best practice is to change the value to
,
where
is
the break frequency for the filter.
See Block-Specific Parameters for the command-line information.
Direct Feedthrough | Yes |
Sample Time | Continuous |
Scalar Expansion | N/A |
States | 2*[1+(number of input elements)] |
Dimensionalized | Yes |
Zero-Crossing Detection | No |
![]() | Demux | Detect Change | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |