Сгенерируйте код для модели платформы Стюарта

Предупреждение

Эта тема обращается к программному обеспечению Simscape™ Multibody™ First Generation. Библиотека первого поколения будет скоро удержана от использования. Чтобы избежать проблем совместимости, создайте любые новые модели и преобразуйте любые существующие модели с помощью блоков второго поколения — доступные путем ввода команды smlib в командной строке MATLAB®.

Учебный обзор

Этот пример показывает, как сгенерировать код для моделей Simscape Multibody с помощью программного обеспечения Simulink Coder™ и Simulink®. Пример касается трех сценариев генерации кода. Вы:

  • Преобразуйте подсистему объекта Simscape Multibody в Блок s-function Simulink. Блок s-function использует сгенерированный код, чтобы включить симуляцию в вычислительных системах без активной лицензии Simscape Multibody.

  • Сошлитесь на модель объекта управления Simscape Multibody как на Подсистему Simulink с помощью блока Model Simulink. Блок Model использует сгенерированный код, чтобы включить инкрементное построение моделей и более быструю симуляцию в Режиме Accelerator Simulink.

  • Преобразуйте модель Simscape Multibody вместе с объектом и подсистемами контроллера в код независимого исполняемого файла. Исполняемый код запускается вне MATLAB и окружений Simulink, чтобы включить быструю симуляцию с минимальными требованиями к программному обеспечению.

Пример основан на модели mech_stewart_codegen в качестве примера, включенной в вашу установку Simscape Multibody. Модель включает подсистему объекта Simscape Multibody и подсистему контроллера Simulink. Сценарий модели - ссылки использует дополнительную модель, mech_stewart_codegen_plant, включая подсистему объекта Simscape Multibody только.

Прежде чем вы начнете

Чтобы продолжиться, у вас должна быть активная установка Simulink Coder. Для получения дополнительной информации о генерации кода для моделей Simscape Multibody см. Генерирующийся Код.

Генерация кода подсистемы

Чтобы преобразовать подсистему Simscape Multibody в код, необходимо гарантировать, что все физические соединения содержатся в самой подсистеме. Связи, включающие физические порты коннектора моделирования или порты системы координат тела, не могут продолжить контуры подсистемы. В этом примере блок-схема объекта полностью заключена в подсистему объекта (mech_stewart_codegen) или в отдельную модель (mech_stewart_codegen_plant).

Сгенерируйте блок s-function

Используйте программное обеспечение Simulink Coder, чтобы сгенерировать Блок s-function для подсистемы объекта модели mech_stewart_codegen. Блок представляет подсистему объекта, использующую автоматически сгенерированный код C, сохраненный во вспомогательных двоичных файлах. Можно использовать блок, чтобы представлять подсистему объекта в вычислительных системах без активных лицензий Simscape Multibody.

  1. В подсказке команды MATLAB введите mech_stewart_codegen.

    Программное обеспечение MATLAB открывает модель в качестве примера включение объекта платформы Стюарта и подсистемы ПИД-регулятора. Сохраните модель под другим именем в удобной папке.

  2. Щелкните правой кнопкой по подсистеме Объекта и выберите C/C++ Code> Generate S-Function.

    Программное обеспечение Simulink загружает окно Generate S-Function for Subsystem. Окно перечисляет параметры подсистемы с и предоставляет возможность делать их настраиваемыми. Только параметры Simulink могут быть настраиваемыми.

  3. Нажмите кнопку Build.

    Программное обеспечение Simulink открывает новое окно модели с Блоком s-function под названием Объект. Код S-функции появляется в исходных и заголовочных файлах, написанных в C, которые сохранены в текущей папке MATLAB.

  4. Сократите исходный блок подсистемы Объекта от модели и замените его на новый Блок s-function.

    Попытайтесь моделировать модель. Симуляция запускается с Блоком s-function, представляющим подсистему объекта через сгенерированный код, сохраненный в текущей папке MATLAB.

Сгенерируйте код для модели - ссылки

Используйте программное обеспечение Simulink Coder, чтобы сгенерировать код для подсистемы объекта Стюарта, включающей модель mech_stewart_codegen_plant. Можно затем использовать сгенерированный код, чтобы сослаться на модель объекта управления как на подсистему в отдельной модели. Используйте модель - ссылку для инкрементно частей компиляций образцового шага за один раз. Закройте свою предыдущую модель прежде, чем попробовать следующие шаги.

  1. В подсказке команды MATLAB введите mech_stewart_codegen.

    Программное обеспечение MATLAB открывает модель в качестве примера включение объекта платформы Стюарта и подсистемы ПИД-регулятора. Сохраните модель под другим именем в удобной папке.

  2. От библиотеки Simulink Ports & Subsystems перетащите блок Model.

    Модель, на которую ссылаются, еще не задана, и блок не имеет никаких портов.

  3. В диалоговом окне блока Model, установленном параметр Model name на mech_stewart_codegen_plant и установленный параметр Simulation mode на Accelerator.

    Блок представляет порты, соответствующие входным параметрам объекта (Сила) и выходные параметры (Pos, Vel, Верхняя часть).

  4. Сократите Модель объекта управления и замените ее на блок Model.

    Попытайтесь моделировать модель. Симуляция запускается с блоком Model, представляющим подсистему объекта через сгенерированный код, сохраненный в текущей папке MATLAB.

Сгенерируйте исполняемый код для полной модели

Используйте программное обеспечение Simulink Coder, чтобы сгенерировать файл независимого исполняемого файла, который можно использовать, чтобы моделировать модель mech_stewart_codegen вне MATLAB и окружений Simulink. Закройте предыдущую модель прежде, чем попробовать следующие шаги.

  1. В подсказке команды MATLAB введите mech_stewart_codegen.

    Программное обеспечение MATLAB открывает модель в качестве примера включение объекта платформы Стюарта и подсистемы ПИД-регулятора. Сохраните модель под другим именем в удобной папке.

  2. Из панели меню Simulink выберите Code> C/C++ Code> Build Model

    Программное обеспечение Simulink Coder генерирует код независимого исполняемого файла, представляющий целую модель mech_stewart_code_gen.

  3. В подсказке команды MATLAB войти

    !mech_stewart_codegen

    Программное обеспечение MATLAB моделирует модель путем выполнения исполняемого кода. Данные о симуляции модели, включая времена симуляции, объединенные состояния, и любые данные выходного порта, хранятся в файле MATLAB под названием mech_stewart_codegen.m и сохраненный в текущей папке.

  4. В подсказке команды MATLAB введите load mech_stewart_codegen.

    MATLAB загружает данные моделирования в вашу рабочую область. Переменная rt_out содержит времена симуляции, переменная rt_xout состояния механического устройства объекта и переменная rt_yout выходные параметры от выходных портов объекта.