Why discrete time integrator in HDL coder simulink library behaves completely differently with different input sampling time?

3 views (last 30 days)
I use two constant blocks one with sampling freq of 2e-7(5 Mhz) and another with 4e-7 (2.5 Mhz) followed by two same discrete time integrators (Sample time:inherited). The first one outputs zero and the second one outputs a ramp (which is the correct result)... What am I missing here?
Why 2e-7 or 5 Mhz is not working with discrete time integrator???
  3 Comments
Omkar Sastry
Omkar Sastry on 17 Mar 2022
Edited: Omkar Sastry on 17 Mar 2022
Hi Adeel,
Could you please attach the other artifacts required to simulate the model (like definition for Controller.InternalSignals.DataType.PLL)? Thanks!

Sign in to comment.

Accepted Answer

Adeel Jamal
Adeel Jamal on 18 Mar 2022
Edited: Adeel Jamal on 18 Mar 2022
In my opinion, due to the low resolution of the fractional bit length, it rounds to zero in internal calculations of discrete time integrator.
  1 Comment
Omkar Sastry
Omkar Sastry on 21 Mar 2022
Edited: Omkar Sastry on 21 Mar 2022
Hi Adeel, yes this is exactly what is happening. The 'floor' rounding mode coupled with the type used drags the value to 0 for the K*T*u(n) calculation in the first block.

Sign in to comment.

More Answers (0)

Categories

Find more on Code Generation in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!