Скомпилируйте исходный код для функциональных модулей макета

Когда вы создаете модель, которая включает блоки FMU, необходимо скомпилировать исходный код FMU при помощи компилятора QNX® Neutrino® qcc или q++. Этот компилятор создает общий объект файлы SO, которые вы включаете в FMU. Этот процесс убеждается, что FMU содержит код, чтобы работать на целевом компьютере Simulink® Real-Time™. Для получения дополнительной информации смотрите, Применяют Функциональные Модули Макета при помощи Simulink Real-Time.

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

Пакет поддержки для целевого компьютера включает Нейтрино QNX компилятор C/C++ qcc или q++. Перед использованием компилятора, чтобы сгенерировать файл FMU, сконфигурируйте переменные окружения компилятора.

  1. Откройте Windows cmd окно и папки изменения к корневой папке для Целевого Пакета Поддержки Simulink Real-Time. Если вы изменили папку по умолчанию для пакетов поддержки MATLAB, настройте эту команду, чтобы совпадать с вашим пользовательским местоположением. В командной строке Windows введите:

    C:
    cd C:\ProgramData\MATLAB\SupportPackages\<release>\toolbox\slrealtime\target\supportpackage\qnx700
  2. Чтобы установить переменные окружения Windows, которые требуются, чтобы использовать компилятор Нейтрино QNX из командной строки, запустите пакетный файл qnxsdp-env.bat. В командной строке Windows введите:

    qnxsdp-env.bat
  3. Убедитесь, что qcc компилятор готов использовать. В подсказке Windows введите:

    which qcc

    Команда возвращается:

    C:/ProgramData/MATLAB/SupportPackages/<release>/toolbox/slrealtime/target/supportpackage/qnx700/host/win64/x86_64/usr/bin/qcc.EXE

Создайте файл FMU

Файл FMU содержит иерархию файлов и папок. Набор их обеспечивается в этом примере. Пример показывает, как создать файл общего объекта для одного исходного файла, который соединяется в приложении реального времени, которое работает на целевом компьютере.

Чтобы просмотреть файлы для этого примера, в командном окне MATLAB, введите:

cd(fullfile(matlabroot, 'toolbox', 'slrealtime', ...
'examples', 'slrt_ex_fmu_work'))

Чтобы открыть модель для этого примера, в командном окне MATLAB, введите:

open_system(fullfile(matlabroot, 'toolbox', 'slrealtime', ...
'examples', 'slrt_ex_vanderpol'))
  1. Пример файл FMU vanDerPol_slrt.fmu содержит этот набор папок:

    C:\work\my_fmu_work\
    C:\work\my_fmu_work\binaries\
    C:\work\my_fmu_work\binaries\slrt_x64
    C:\work\my_fmu_work\binaries\win64
    C:\work\my_fmu_work\documentation
    C:\work\my_fmu_work\resources
    C:\work\my_fmu_work\sources\
  2. Пример имеет исходные файлы FMU в исходной папке. Этот пример использует файлы: fmuTemplate.c, fmuTemplate.h, vanDerPol.c

  3. Пример имеет файл динамически подключаемой библиотеки от исходных файлов, который был создан при помощи компилятора Оконного. Этот файл находится в win64 папке. Этот пример использует файл: vanDerPol.dll

  4. Скомпилировать источники в примере при помощи qcc, скопируйте файлы для FMU от папки matlab/slrealtime/examples/slrt_ex_fmu_work к папке C:\work\my_fmu_work.

  5. В Windows cmd окно, измените текущую папку, чтобы быть местоположением ваших исходных файлов. В командной строке Windows введите:

    cd C:\work\my_fmu_work\sources
  6. Чтобы сгенерировать общий объект Нейтрино QNX файл SO, пример компилирует источники при помощи -Vgcc_ntox86_64 флаг. В командной строке Windows введите:

    qcc -Vgcc_ntox86_64 -shared -o ../binaries/slrt_x64/vanDerPol.so -fPIC -DFMI_COSIMULATION -IC:/PROGRA~1/MATLAB/R2020b_bash/rtw/c/src/rapid/fmu vanDerPol.c

    Примечание

    Компилятор Нейтрино QNX не поддерживает длинные имена файлов Windows (например, пути с пробелами) для переключателя -I поиска библиотеки. Чтобы работать вокруг этого ограничения, можно установить MATLAB® в пути без пробелов (например, C:\MATLAB) или можно использовать путь DOS 8.3 в команде компилятора. Чтобы получить эти 8,3 имен папок, можно использовать dir /x команда в Windows cmd окно.

  7. Чтобы сгенерировать функциональный модуль макета, файл FMU, который содержит файл общего объекта Нейтрино QNX, пример, архивирует папки и файлы. Используйте расширение FMU для архивного файла. В командной строке Windows введите:

    cd ..
    zip -r vanDerPol.fmu *

Реализуйте блок FMU в модели

Реализовывать vanDerPol блокируйтесь в модели Simulink при помощи FMU, задайте имя FMU для блока. Откройте модель slrt_ex_vanderpol, дважды кликните блок FMU vanDerPol, и выберите vanDerPol.fmu файл для FMU называет параметры блоков.

Создайте модель, загрузите приложение реального времени на целевом компьютере и запустите приложение реального времени.

Смотрите также

Похожие темы

Внешние веб-сайты