exponenta event banner

Использование графического процессора для моделирования контроллера MPC в Simulink

В этом примере показано, как создать код CUDA и использовать графический процессор для вычисления оптимальных перемещений MPC в Simulink™.

Создание модели установки и проектирование контроллера MPC

Используйте двойной интегратор в качестве установки.

plant = tf(1,[1 0 0]);

Создайте объект MPC для завода со временем выборки 0,1 секунды и горизонтом прогнозирования и управления 10 и 3 шагами соответственно.

mpcobj = mpc(plant, 0.1, 10, 3);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Ограничьте управляемую переменную от -1 до 1.

mpcobj.MV = struct('Min',-1,'Max',1); 

Управление моделью установки в Simulink

Создание моделирования замкнутого контура Simulink с помощью блока контроллера MPC с помощью mpcobj объект, проходящий как пареметр, для управления установкой двойного интегратора. Для этого примера откройте уже существующий gpudemo Модель Simulink.

open_system('gpudemo')

Откройте диалоговое окно Параметры конфигурации (Configuration Parameters), щелкнув Настройки модели (Model Settings). Затем в разделе Создание кода выберите Создать код графического процессора.

Теперь модель можно запустить, щелкнув Выполнить (Run) или используя команду MATLAB sim. Перед запуском моделирования модель генерирует код CUDA из модели Simulink и компилирует его для получения исполняемого файла MEX. При моделировании модели вызывается этот файл, и моделирование выполняется на GPU.

sim('gpudemo')
-->Converting the "Model.Plant" property of "mpc" object to state-space.
-->Converting model to discrete time.
   Assuming no disturbance added to measured output channel #1.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

После моделирования графики двух областей показывают, что управляемая переменная не превышает предела, и выходной сигнал установки отслеживает опорный сигнал приблизительно через 3 секунды.

Здесь на GPU выполняется вся модель Simulink. Для развертывания только блока MPC на GPU можно создать модель, имеющую внутри только блок MPC. Обычно во встроенных модулях управления развернутая модель содержит блок контроллера плюс несколько блоков интерфейса для входных/выходных сигналов.

Связанные темы