Сгенерируйте и разверните приложение MATLAB для модели

В этом примере показано, как использовать simulink.compiler.genapp функция для генерации приложения MATLAB для модели, которая может быть развернута. Обычно, когда модель Simulink функционально завершена, она часто используется, чтобы запустить несколько симуляций с различными значениями входных параметров и параметров. Чтобы попробовать симуляции для вашей модели с различными входными и значениями параметров, можно сгенерировать MATLAB App.Вы также можете развернуть это сгенерированное приложение для использования вне MATLAB.

Этот пример иллюстрирует использование simulink.compiler.genapp функция для генерации стартового приложения для модели f14, использование сгенерированного приложения для настройки параметров модели и симуляции его и настройка приложения в MATLAB App Designer.

Откройте модель

The simulink.compiler.example.AppGeneration команда загружает пример проекта в путь. Этот проект содержит все файлы, необходимые для этого примера, включая модель. Откройте модель f14.

simulink.compiler.example.AppGeneration;
open_system(f14)

Сгенерируйте приложение MATLAB для модели

Используйте simulink.compiler.genapp функция, чтобы сгенерировать приложение для f14 модель. Выполнение simulink.compiler.genapp функция с именем модели в качестве аргумента генерирует Приложение с именем f14app. Simulink Compiler использует шаблон по умолчанию, чтобы сгенерировать приложение. Сгенерированное приложение предоставляет возможность настраивать параметры и моделировать модель, для которой сгенерировано приложение. Сгенерированное приложение также предоставляет график результатов симуляции. Все файлы сгенерированы в f14app директория.

simulink.compiler.genapp('f14', 'AppName', 'f14app');

После генерации приложения Нажатия кнопки Simulate, чтобы симулировать приложение.

Наряду с приложением генерируются следующие программные продукты:

  • f14app.mlapp file -- Этот файл содержит код для сгенерированного приложения. Откройте этот файл в App Designer для редактирования.

  • Файлы, начинающиеся с default префикс - функции, возвращающие значения по умолчанию, используемые приложением, такие как, имя модели, соотношение сторон изображения модели, файл изображения модели и входное имя MAT-файла.

  • Моделируйте изображение, (f14app_image.svg ) -- Изображение модели Simulink.

  • Входные параметры, используемые в симуляции (f14app_inputs.mat ) -- MAT файл, содержащий все входы, которые используются в симуляции модели.

  • Файл меток приложений setLabels.m -- Файл, задающий содержимое метки.

  • Логотип Simulink по умолчанию (SimulinkLogo.png ) - Файл, используемый в качестве заполнителя для изображения модели.

  • pragma.m directives file - Файл, используемый Simulink Compiler для генерации развертываемого приложения.

  • Набор функций MATLAB как M-файлы -- Файлы, которые приложение использует для управления пользовательским интерфейсом приложения.

Скомпилируйте и разверните сгенерированное приложение

Для компиляции и развертывания приложения можно использовать MATLAB App Designer. Можно также использовать deploytool. Дополнительные сведения о компиляции и развертывании с помощью App Designer см. в разделе Разработка приложений с использованием App Designer, Веб-приложений и Application Compiler.

В этом примере мы компилируем приложение с mcc команда, за которой следует имя приложения.

mcc -m f14App

Настройка сгенерированного приложения

Вы также можете настроить сгенерированный приложение. Чтобы настроить приложение, используйте Дизайнера приложений. Сгенерированное приложение f14 является обобщенным, но позволяет подгонять его в App Designer. В этом разделе мы собираемся заменить одну ось в сгенерированном приложении двумя осями. Откройте сгенерированное приложение в дизайнере приложений.

appdesigner('f14app');

Идея индивидуальной настройки состоит в том, чтобы заменить компонент Axes двумя компонентами Axes. Чтобы получить два компонента Axes, используйте сетку с двумя строками и одним столбцом и поместите эти два компонента в камеры сетки (настраиваемое приложение f14customapp включен как часть этого примера для вашей ссылки). Вы можете следовать:

  1. В Design View выберите и удалите компонент Axes по умолчанию.

  2. Перейдите в Component Library в левой части окна. Из Component Library перетащите компонент Grid Размещения под раздел Containers вместо удаленных Компонентов Axes. В Component Browser справа на вкладке «Проверка» в Размещение «Сетка» обновите ColumnWidth и RowHeight свойства для '1x'и '1x,1x', соответственно. Это обновляет сетку так, чтобы она имела две вертикальные камеры. Перетащите мышью два Компонентов Axes из общего сечения в Component Library и поместите их в две сетки камер.

  3. Внешний вход ссылается на UIAxes (исходный компонент Axes) необходимо обновить до UIAxes2. Если вы сначала добавили верхнюю ось, UIAxes относится к Logged Signals и UIAxes2 на External Inputs. Можно проверить путем переключения на Design View и проверки того, какая ось получает особое внимание при выборе компонента в Component Browser.

  4. Теперь найдите и замените эти вхождения в представлении кода. Использование Find & Replace диалоговое окно, замените UIAxes на UIAxes2 или сложения. Когда вы завершите замену, добавьте следующий код линии к cbkSimulate(app, event) функция. После линии для UIAxes: app. SimulationHelper.UserInterface.clearGridAndLegend(app.UIAxes2).

  5. Сохраните приложение .

Используйте Измененное Приложение, чтобы Симулировать Модель

Теперь, когда вы изменили приложение, чтобы показать две оси, вы можете использовать это приложение, чтобы симулировать модель. Затем можно скомпилировать и развернуть приложение. Чтобы симулировать приложение, нажмите Загрузить Входной MAT-файл и выберите u.mat файл для присоединения внешнего входного сигнала к входному порту 1 f14 модель. Это активирует External Input выпадающий список и отображения загруженного сигнала, Signal.RandomStickPosition в поле списка под выпадающий список. Выберите загруженный сигнал для отображения в нижнем компоненте Axes. Нажмите Simulate. После завершения симуляции обновляются два компонента Axes. Можно наблюдать эффект загруженного входного сигнала на записанных сигналах в верхней Оси.