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

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

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

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

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

C:
cd C:\ProgramData\MATLAB\SupportPackages\<release>\toolbox\slrealtime\target\supportpackage\qnx710

Чтобы задать переменные окружения Windows, необходимые для использования компилятора QNX Neutrino из командной строки, запустите пакетный файл qnxsdp-env.bat. В командной строке Windows введите:

qnxsdp-env.bat

Убедитесь, что qcc компилятор готов к использованию. В командной строке Windows введите:

which qcc

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

C:/ProgramData/MATLAB/SupportPackages/<release>/toolbox/slrealtime/target/supportpackage/qnx710/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'))

Пример файла 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\

Пример имеет исходные файлы FMU в папке source. Этот пример использует файлы: fmuTemplate.c, fmuTemplate.h, vanDerPol.c

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

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

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

cd C:\work\my_fmu_work\sources

Чтобы сгенерировать файл SO общего объекта QNX Neutrino, пример компилирует источники с помощью -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 Neutrino не поддерживает длинные имена файлов Windows (для примера, пути с пробелами) для коммутатора поиска библиотеки -I. Чтобы обойти это ограничение, можно установить MATLAB® в пути без пространств (для примера, C:\MATLAB) или можно использовать путь DOS 8.3 в команде компилятора. Чтобы получить имена папок 8.3, можно использовать dir /x команда в cmd Windows окно.

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

cd ..
zip -r vanDerPol.fmu *

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

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

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

См. также

Похожие темы

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