The values of desired_speed and desired_trq are 1 & 99, the typedef is PERCENTAGE which of integer type,but while simulating it is showing fraction values, Is this something to do with the "PERCENTAGE " typedef ?

1 view (last 30 days)
datatype.PNG
data.PNG
typdef definition of PERCENTAGE in .m :
PERCENTAGE.WordType = 'uint16';
PERCENTAGE.DataTypeMode = 'Fixed-point: slope and bias scaling';
PERCENTAGE.Signed = 0;
PERCENTAGE.WordLength = 16;
PERCENTAGE.ScalingMethod = 'gain/offset';
PERCENTAGE.Gain = 2^15/100;
PERCENTAGE.DisplayMin = 0;
PERCENTAGE.DisplayMax = 199.9;
PERCENTAGE.DisplayPrecision = 8;
PERCENTAGE.Description = 'This is the percentage datatype';
PERCENTAGE.DisplayUnits = 'percent';

Accepted Answer

Mark McBroom
Mark McBroom on 5 Jan 2019
You have specified PERCENTABE to used fixed point data type. Simulink is showing you the floating point equivalent of the integer value after applying the specified slope and bias scaling.
  4 Comments
Manjunath Bhimalli
Manjunath Bhimalli on 8 Jan 2019
I am expecting integer 1 as 1.00000000 in fraction not as 1.0009765625 with the same 'DataTypeMode = Fixed-point: slope and bias scaling' is that possible?
Mark McBroom
Mark McBroom on 8 Jan 2019
With the gain you have selected, it is not possible to represent 1.000000
The LSB of the integer representation is bit = (1/2^15) * 100
327* bit = .9979
328*bit = 1.0010
You will need to select a different scale factor if you need to represent exactly 1.0000000

Sign in to comment.

More Answers (0)

Categories

Find more on Test Model Components in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!