В данном примере модель sf_boiler
демонстрирует приложение данных фиксированной точки.
Когда вы моделируете модель, вы получаете эти результаты:
Чтобы исследовать модель, выполните эти шаги:
Дважды кликните блок подсистемы модели Котельной установка.
Подсистема появляется.
Подсистема модели Котельной установка моделирует температурную реакцию бойлера к периодам нагревания или охлаждения, продиктованного блоком Stateflow®. В зависимости от булева значения, прибывающего от Диспетчера, температурный шаг (+1 для нагревания, –0.1 для охлаждения) добавляется к предыдущей температуре бойлера. Получившаяся температура бойлера отправляется в цифровой блок подсистемы термометра.
В подсистеме модели Котельной установка дважды кликните цифровой блок подсистемы термометра.
Подсистема появляется.
Цифровая подсистема термометра производит 8-битное представление фиксированной точки входной температуры с блоками, описанными в разделах, которые следуют.
Блок датчика преобразовывает входную температуру бойлера (T) в промежуточное аналоговое напряжение вывод V с полиномом первого порядка, который дает этот вывод:
V = 0,05 × T + 0.75
Дважды кликните блок ADC, чтобы показать это содержимое:
Подсистема ADC оцифровывает аналоговое напряжение от блока датчика путем умножения аналогового напряжения на 256/5, округления его на его целочисленный пол и ограничения его максимумом 255 (самое большое 8-битное целочисленное значение без знака). Используя значение для вывода V от блока датчика, новая цифровая закодированная температура, выведенная блоком ADC, Tdigital, дана этим уравнением:
Tdigital = (256/5) × V = (256 × 0.05/5) × T + (256/5) × 0.75
Линейный блок преобразования фиксированной точки сообщает остальной части модели, что Tdigital является номером фиксированной точки с наклонным значением 5/256/0.05 и значением прерывания –0.75/0.05. Контроллер Скорострельного оружия блока Stateflow получает этот вывод и интерпретирует его как номер фиксированной точки через данные Stateflow temp
, который ограничен по объему как Input from Simulink и установлен как 8-битные данные фиксированной точки без знака с теми же значениями для S и набора B в Линейном блоке преобразования фиксированной точки.
Значения для S и B определяются от общего выражения для номера фиксированной точки:
V = SQ + B
Поэтому
Q = (V – B)/S = (1/S) × V + (–1/S) × B
Поскольку Tdigital является теперь номером фиксированной точки, это - теперь квантованный целочисленный Q фиксированной точки. Это означает, что Tdigital = Q его фиксированной точки, которая дает это отношение:
(1/S) × V + (–1/S) × B = (256 × 0.05/5) × T + (256/5) × 0.75
Поскольку T является реальным значением для температуры среды, вышеупомянутое уравнение подразумевает эти отношения:
V = T
и
1/S = (256 × 0.05)/5
S = 5 / (256 × 0.05) = 0.390625
и
(–1/S) × B = (256/5) × 0.75
B = – (256/5) × 0.75 × 5 / (256 × 0.05) = –0.75/0.05 = 15
Установкой T, цифровой, чтобы быть данными фиксированной точки как выводом Линейного блока преобразования фиксированной точки и входом Контроллера Скорострельного оружия блока Stateflow, диаграмма Stateflow интерпретирует и обрабатывает эти данные автоматически в 8-битной среде без потребности в любых явных преобразованиях.