Этот пример показывает, как реализовать векторный алгоритм управления (FOC) для синхронной машины с постоянными магнитами (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]