В этом примере показано, как реализовать алгоритм полевого управления для синхронной машины с постоянными магнитами (PMSM). В примере показана как реализация с плавающей запятой с одинарной точностью, так и реализация с плавающей запятой с половинной точностью. Когда алгоритм содержит большие или неизвестные динамические диапазоны (например, интеграторы в контурах обратной связи) или когда алгоритм использует операции, которые трудно спроектировать в фиксированной точке (например, atan2), может быть выгодно использовать представления с плавающей запятой. Тип данных половинной точности занимает только 16 бит памяти, но его представление с плавающей запятой позволяет обрабатывать более широкие динамические диапазоны, чем целочисленные или фиксированные типы данных одинакового размера.
Загрузите данные, необходимые для моделирования модели.
focModelData
Откройте окно ex_foc_current модель. Эта модель использует один и тот же исходный блок для двух версий ориентированного на поле алгоритма управления. В первой версии используются типы данных с одинарной точностью, а во второй - с полукреционом.
model = 'ex_foc_current.slx';
open_system(model)

Моделирование модели. Из объема можно видеть, что отклик реализации с одинарной точностью идентичен отклику реализации с половинной точностью.
sim(model)
ans =
Simulink.SimulationOutput:
logTestBench: [1x1 Simulink.SimulationData.Dataset]
SimulationMetadata: [1x1 Simulink.SimulationMetadata]
ErrorMessage: [0x0 char]

