Discussion:
Saturation Block in Simulink (URGENT!)
(too old to reply)
Frank Sun
2005-08-09 22:32:29 UTC
Permalink
Hi, I am a summer student working at Jet Propulsion Lab, I am having
trouble figuring out why the integrator outputs different results for
the same input.

Here's the logic:

Input A branches -> Saturation Block -> Integrator ->OutputX

Input A also goes directly into another Integrator ->OutputY

Assuming Input A is an array of 10 values with a highest value of
100. If I set the limit of the saturation block to be 100, I get all
10 values unchanged, yet after integrations, OutputX doesn't equal
OutputY, which makes no sense.

However, if I put the limit to be something large, say 1000, then
OutputX = OutputY.

Anyone has an idea why the saturation limit affect my integrator so
much?

Thanks,
Frank
Brad Phelan
2005-08-10 07:57:01 UTC
Permalink
Post by Frank Sun
Hi, I am a summer student working at Jet Propulsion Lab, I am having
trouble figuring out why the integrator outputs different results for
the same input.
Input A branches -> Saturation Block -> Integrator ->OutputX
Input A also goes directly into another Integrator ->OutputY
Assuming Input A is an array of 10 values with a highest value of
100. If I set the limit of the saturation block to be 100, I get all
10 values unchanged, yet after integrations, OutputX doesn't equal
OutputY, which makes no sense.
However, if I put the limit to be something large, say 1000, then
OutputX = OutputY.
Anyone has an idea why the saturation limit affect my integrator so
much?
Thanks,
Frank
It could have something to do with the zero crossing detection in the
saturation block. Try turning off zero crossing detection in that block
and you *may* see what you want. The reason is that the sat block,
through zero crossing detection, can controll the time stepping around
regions of interest. However, and I am probably wrong, I would have
thought the time stepping is changed globally through the model and all
integrators would get the same time steps resulting in the same outputs.
Can anybody enlighten?

B
--
==========================================
Solutions For Matlab, Simulink & RTW
http://xtargets.com
__________________________________________
Kelvin Hales
2005-08-15 20:26:07 UTC
Permalink
Post by Frank Sun
Hi, I am a summer student working at Jet Propulsion Lab, I am having
trouble figuring out why the integrator outputs different results for
the same input.
Input A branches -> Saturation Block -> Integrator ->OutputX
Input A also goes directly into another Integrator ->OutputY
Assuming Input A is an array of 10 values with a highest value of
100. If I set the limit of the saturation block to be 100, I get all
10 values unchanged, yet after integrations, OutputX doesn't equal
OutputY, which makes no sense.
However, if I put the limit to be something large, say 1000, then
OutputX = OutputY.
Anyone has an idea why the saturation limit affect my integrator so
much?
Thanks,
Frank
Input A branches -> Saturation Block -> Integrator ->OutputX
the saturation block is limiting the derivative; i.e. the rate-of-change of the derivative signal
to the integrator. It is, therefore, irrelevant what is the absolute magnitude of the values of the
array A; what is relevant is the rate-of-change from value to value, which is, of course, a
function of the time-step between successive values of array A. Clearly, the rate-of-change of
signals from Input A is >100; but less than 1000.

Kelvin B. Hales
Kelvin Hales Associates Limited
Consulting Control Engineers
Web: www.khace.com

Loading...