continuous integrator vs discrete-time integrator

41 views (last 30 days)
I'm trying to convert the simulink model with continuous system to discrete system.
I replaced integrator block with discrete-time integrator block.
However the results showed different values and I can not figure out what is the problem of different results.
In the figure, x1 always return 0 regardless of the input constant.

Accepted Answer

Guy Rouleau
Guy Rouleau on 3 Jul 2013
What you observe is expected. Different blocks... different results ;-)
Use Scope blocks to understand the evolution.
As you probably know, the continuous version of this set of equation is marginally stable... which means it will oscillates forever. If you connect a Scope to the continuous version, this is what you will observe.
For the discrete, by defaul, the sample time of the DTI is 1s. This makes the system unstable. By default, the simulation stop time of a model is 10 seconds. With a scope, you will see that after going up and down you are very lucky that the values on your display are 1 and 0. If you simulate a bit longer, you will see that the oscillation slowly diverges.

More Answers (3)

Pankaj on 26 Feb 2014
I think you are using forward euler as the integration type in the discrete integrator.
Try using Trapezoidal Integration type in the settings of Discrete Integrator block, you will see same results.
Moreover, this does raise a question of the usage of forward Euler and backward euler integration type? when trying to convert a continuous system to a discrete system.
Please reply if someone has answers?
  1 Comment
Radhakrishna Kothamasu
Radhakrishna Kothamasu on 3 Feb 2016
Yes, I believe so. Euler approximations are to convert a continuous signal flow to discrete one. Each of the Forward, Backword and Traphezoidal methods have it's own advantages and disadvantages. Safe approximation normally is Trapezoidal method. correct me if I am wrong.

Sign in to comment.

Komal Garlapati
Komal Garlapati on 21 Apr 2016
By default, the sample time of discrete time integrator block is 1 second. It will accumulate the data sampled at the intervals of one second. It misses a lot of data, if your step time is low. To get the same results from the discrete integrator and continuous integrator blocks, give the sample time of the discrete time integrator same as the one you mentioned in the Simulation>Model Configuration Parameters>Solver>Relative tolerance.

Janakiraman S
Janakiraman S on 8 Nov 2016
Edited: Janakiraman S on 8 Nov 2016

Community Treasure Hunt

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

Start Hunting!