После того, как вы создадите модель, можно использовать быструю симуляцию (RSim) системный конечный файл, чтобы охарактеризовать поведение модели. Исполняемая программа, которая следует из процесса сборки, для выполнения нев реальном времени на вашем компьютере разработчика. Исполняемая программа высоко оптимизирована для имитационных моделей гибридных динамических систем, включая модели, которые используют решатели переменного шага и обнаружение пересечения нулем. Скорость сгенерированного кода делает системный идеал конечного файла RSim для технических заданий на строительство для пакета или симуляций Монте-Карло.
Используйте цель RSim, чтобы сгенерировать исполняемый файл, который запускает быстрые, автономные симуляции. Можно повторить симуляции с переменными наборами данных, в интерактивном режиме или программно со скриптами, не восстанавливая модель. Это может ускорить характеристику и настройку поведения модели и тестирование генерации кода.
Используя параметры командной строки:
Задайте значения параметров и входные сигналы в одном или нескольких MAT-файлах, которые можно загрузить и перезагрузить в начале симуляций, не восстанавливая модель.
Перенаправьте данные о регистрации к одному или нескольким MAT-файлам, которые можно затем анализировать и сравнить.
Управляйте временем симуляции.
Задайте опции режима external mode.
Чтобы запустить исполняемый файл RSim, сконфигурируйте свой компьютер, чтобы запустить MATLAB® и иметь MATLAB и доступные папки установки Simulink®. Чтобы развернуть автономный исполняемый файл хоста (т.е. без MATLAB и установленного Simulink), рассмотрите использование Основанной на хосте Разделяемой цели Библиотеки (ert_shrlib)."
Преимущество, которое вы получаете от быстрой симуляции, отличается. Большие симуляции достигают улучшений скорости до 10 раз быстрее, чем стандартные симуляции Simulink. Некоторые модели не могут показать значимое улучшение скорости симуляции. Определить различие в скорости для вашей модели, время ваша стандартная симуляция Simulink и сравнить результаты с быстрой симуляцией. Кроме того, протестируйте симуляцию модели в Быстром режиме симуляции Акселератора.
Как другие этапы Модельно-ориентированного проектирования, характеристики и настройки поведения модели итеративный процесс, как показано в общей схеме рабочего процесса в фигуре. Задачи в рабочем процессе:
Сконфигурируйте блоки Inport, которые обеспечивают входные исходные данные для быстрых симуляций.
Сконфигурируйте модель для быстрой симуляции.
Первый шаг к подготовке быстрой симуляции должен идентифицировать ваши требования симуляции.
Вопрос... | Для получения дополнительной информации смотрите... |
---|---|
Сколько времени вы хотите, чтобы симуляции запустились? | Сконфигурируйте и создайте модель для быстрой симуляции |
Есть ли требования решателя? Вы ожидаете использовать тот же решатель, для которого модель сконфигурирована для ваших быстрых симуляций? | Сконфигурируйте и создайте модель для быстрой симуляции |
Ваши быстрые симуляции должны разместить гибкое взаимодействие через интерфейс пользовательского кода? Или, ваши симуляции должны сохранить настройки класса памяти? | Сконфигурируйте и создайте модель для быстрой симуляции |
Вы будете запускать симуляции с несколькими наборами данных? | Настройте быстрые входные данные симуляции |
Входные данные будут состоять из глобальных параметров, сигналов или обоих? | Настройте быстрые входные данные симуляции |
Какие исходные блоки предоставляют входным данным модели — Из Файла, Inport, Из Рабочей области? | Настройте быстрые входные данные симуляции |
Параметр действительно ли модели векторизует ( ) использоваться в качестве входных данных? | Создайте MAT-файл, который включает структуру параметра модели |
Каков тип данных входных параметров и сигналов? | Настройте быстрые входные данные симуляции |
Исходные данные будут состоять из одной переменной или нескольких переменных? | Настройте быстрые входные данные симуляции |
Входные данные включают настраиваемые параметры? | Создайте MAT-файл, который включает структуру параметра модели |
Необходимо ли получить доступ к информации о настраиваемом параметре — образцовая контрольная сумма и типы данных параметров, идентификаторы и сложность? | Создайте MAT-файл, который включает структуру параметра модели |
У вас будет потребность отличаться время остановки симуляции для выполнений симуляции? | Сконфигурируйте и Создайте Модель для Быстрой Симуляции andOverride Время остановки Симуляции модели |
Вы хотите установить ограничение по времени для симуляции? Рассмотрите установку ограничения по времени, если ваша модель испытывает частые нулевые пересечения и имеет небольшой размер незначительного шага. | Установите ограничение по времени часов для быстрой симуляции |
Необходимо ли сохранить вывод каждой запущенной симуляции? | Задайте новое имя выходного файла для симуляции и задайте новые имена выходного файла для к блокам файла |
Вы ожидаете запускать симуляции в интерактивном режиме или в пакетном режиме? | Скрипты для пакета и симуляций Монте-Карло |
Можно использовать блоки Inport в качестве источника входных данных для быстрых симуляций. Для этого сконфигурируйте блоки так, чтобы они могли импортировать данные из внешних MAT-файлов. По умолчанию блок Inport наследовал установки параметров от нисходящих блоков. В большинстве случаев, чтобы импортировать данные из внешнего MAT-файла, необходимо явным образом установить следующие параметры, чтобы совпадать с исходными данными в MAT-файле.
Main> Interpolate data
Signal Attributes> Port dimensions
Signal Attributes> Data type
Signal Attributes> Signal type
Если вы не управляете образцовым содержимым, вы можете должны быть изменить данные в MAT-файле, чтобы соответствовать тому, что модель ожидает для входа. Характеристики входных данных и спецификации блока Inport, который получает данные, должны соответствовать.
Для получения дополнительной информации при корректировке этих параметров и при создании MAT-файла для использования с блоком Inport, смотрите, Создают MAT-файл для Блока Inport. Для описаний предыдущих параметров блоков см. описание блока Inport.
После того, как вы идентифицируете свои быстрые требования симуляции, конфигурируете модель для быстрой симуляции.
Откройте диалоговое окно Configuration Parameters.
Перейдите к панели Code Generation.
На панели Code Generation нажмите Browse. Системный Браузер Конечного файла открывается.
Выберите rsim.tlc
(Rapid Simulation Target) и нажмите OK.
На панели Code Generation генератор кода заполняет Make command и поля make-файла Шаблона с настройками по умолчанию и добавляет панель RSim Target под Code Generation.
Нажмите RSim Target, чтобы просмотреть панель RSim Target.
Установите целевые параметры конфигурации RSim на свои быстрые требования симуляции.
Если вы хотите... | Затем... |
---|---|
Сгенерируйте код, который позволяет исполняемому файлу RSim загружать параметры из MAT-файла | Выберите Enable RSim executable to load parameters from a MAT-file (значение по умолчанию). |
Позвольте цели выбрать решатель на основе решателя, уже сконфигурированного для модели | Установите Solver selection на |
Явным образом дайте цели команду использовать решатель фиксированного шага | Установите Solver selection на Use fixed-step solvers . В диалоговом окне Configuration Parameters, на панели Solver, задают решатель фиксированного шага. |
Явным образом дайте цели команду использовать решатель переменного шага | Установите Solver selection на |
Обеспечьте классы памяти к Auto для гибкого взаимодействия через интерфейс пользовательского кода | Выберите Force storage classes to AUTO (значение по умолчанию). |
Сохраните настройки класса памяти, такие как ExportedGlobal или ImportedExtern , из-за требований к приложению | Очистите Force storage classes to AUTO. |
Настройте импорт данных и экспортируйте опции. На панели Data Import/Export, в разделе Save to Workspace, выбирают Time, States, Outputs и опции Final States, как они применяются. По умолчанию генератор кода сохраняет результаты журналирования симуляции в файл с именем
. Для получения дополнительной информации смотрите Данные моделирования Экспорта (Simulink).model.mat
Если вы используете коммуникацию режима external mode, настройте интерфейс, с помощью Code Generation> панель Interface. Смотрите Целевую Хостом Связь с Симуляцией Режима external mode для деталей.
Нажмите Ctrl+B. Генератор кода создает высоко оптимизированную исполняемую программу, что можно работать компьютере разработчика с переменными данными без восстановления.
Для получения дополнительной информации о компиляторах, которые совместимы с продуктом Simulink Coder™, смотрите Выбор и Сконфигурируйте C или Make-файлы Компилятора и Шаблона C++ и Сделайте Опции.
Формат и настройка входных данных для быстрой симуляции зависят от ваших требований.
Если источник входных данных... | Затем... |
---|---|
Глобальный вектор параметра модели ( ) | Используйте функцию rsimgetrtp , чтобы получить векторное содержимое и затем сохранить его в MAT-файл. |
Глобальный вектор параметра модели и вы хотите отображение между вектором и настраиваемыми параметрами | Вызовите функцию rsimgetrtp , чтобы получить глобальную структуру параметра и затем сохранить его в MAT-файл. |
Если блоком From File | Создайте MAT-файл, который может считать блок From File. |
Если блоком Inport | Создайте MAT-файл, который придерживается одного из трех форматов файла данных, которые может считать блок Inport. |
Если блоком From Workspace | Создайте переменные структуры в рабочем пространстве MATLAB. |
Цель RSim требует, чтобы MAT-файлы, используемые в качестве входа для От блоков File и Inport, содержали данные. Цель grt
вставляет данные о MAT-файле непосредственно в сгенерированный код, который затем скомпилирован и соединен как исполняемый файл. Напротив, RSim позволяет вам заменять наборы данных для каждой последовательной симуляции. MAT-файл, содержащий данные о блоке From File или Inport, должен присутствовать, если блок From File или блок Inport существуют в вашей модели.
Создать MAT-файл, который включает образцовую глобальную структуру параметра (
),model_P
Получите структуру путем вызова функционального rsimgetrtp
.
Сохраните структуру параметра в MAT-файл.
Если вы хотите запустить симуляции по переменным наборам данных, рассмотрите преобразование структуры параметра к массиву ячеек и сохранению изменений параметра к одному MAT-файлу.
Получите Структуру Параметра для Модели. Получите глобальную структуру параметра (
) для модели путем вызова функционального model_P
rsimgetrtp
.
param_struct = rsimgetrtp('model')
Аргумент | Описание |
---|---|
| Модель, для которой вы запускаете быстрые симуляции. |
Функция rsimgetrtp
обеспечивает действие схемы обновления для заданной модели и возвращает структуру, которая содержит следующие поля.
Поле | Описание |
---|---|
modelChecksum | Четырехэлементный вектор, который кодирует структуру модели. Генератор кода использует контрольную сумму, чтобы проверять, изменилась ли структура модели, поскольку исполняемый файл RSim был сгенерирован. Если вы удаляете или добавляете блок, и затем генерируете новый model вектор _P , новая контрольная сумма больше не совпадает с исходной контрольной суммой. Исполняемый файл RSim обнаруживает эту несовместимость в векторах параметра и выходах, чтобы не возвращать неправильные результаты симуляции. Если образцовая структура изменяется, необходимо регенерировать код для модели. |
parameters | Структура, которая содержит глобальные параметры модели. |
Структура параметра содержит следующую информацию.
Поле | Описание |
---|---|
dataTypeName | Имя типа данных параметров, например, double |
dataTypeID | Внутренний идентификатор типа данных используется генератором кода |
complex | Значение 0, если действительный; 1, если комплекс |
dtTransIdx | Внутренний индекс данных используется генератором кода |
значения | Вектор значений параметров сопоставлен с этой структурой |
карта | Это поле содержит информацию об отображении, которая коррелирует 'значения' к настраиваемым параметрам модели. Эта информация об отображении, в сочетании с rsimsetrtpparam , полезна для создания последующих rtP структур, не компилируя блок-схему. |
Генератор кода сообщает о настраиваемом параметре фиксированной точки согласно своей хранимой сумме. Например, значение параметров sfix(16)
1.4
с масштабированием 2^-8
имеет значение 358
как int16
.
В следующем примере rsimgetrtp
возвращает структуру параметра для модели rtwdemo_rsimtf
в качестве примера к param_struct
.
param_struct = rsimgetrtp('rtwdemo_rsimtf')
param_struct = modelChecksum: [1.7165e+009 3.0726e+009 2.6061e+009 2.3064e+009] parameters: [1x1 struct]
Сохраните Структуру Параметра в MAT-файл. После того, как вы издаете приказ к rsimgetrtp
, сохраняете возвращаемое значение вызова функции к MAT-файлу. Используя параметр командной строки, можно затем указать что MAT-файл, как введено для быстрых симуляций.
Следующий пример сохраняет структуру параметра, возвращенную для rtwdemo_rsimtf
в MAT-файл myrsimdemo.mat
.
save myrsimdemo.mat param_struct;
Для получения информации об использовании параметров командной строки, чтобы задать требуемые файлы, смотрите Выполнение Быстрые Симуляции.
Преобразуйте Структуру Параметра для Выполнения Симуляций на Переменных Наборах данных. Чтобы использовать быстрые симуляции, чтобы протестировать изменения в определенных параметрах, можно преобразовать структуру параметра модели в массив ячеек. Можно затем получить доступ к определенному набору параметра при помощи оператор, чтобы задать индекс для определенного набора параметра в файле.
Преобразовывать структуру в массив ячеек:
Используйте функциональный rsimgetrtp
, чтобы получить структуру, содержащую информацию о параметре для модели rtwdemo_rsimtf
в качестве примера. Сохраните структуру в переменной param_struct
.
param_struct = rsimgetrtp('rtwdemo_rsimtf');
Поле parameters
структуры является подструктурой, которая содержит информацию о параметре. Поле values
подструктуры parameters
содержит числовые значения параметров, которые можно настроить во время подписания кода симуляции.
Используйте функциональный rsimsetrtpparam
, чтобы расширить структуру так, чтобы это содержало больше наборов параметра. В этом случае создайте еще два набора параметра (для в общей сложности трех наборов).
param_struct = rsimsetrtpparam(param_struct,3);
Функция преобразовывает поле parameters
в массив ячеек с тремя элементами. Каждый элемент содержит информацию для одного набора параметра. По умолчанию функция создает вторые и третьи элементы массива ячеек путем копирования первого элемента. Поэтому все наборы параметра используют те же значения параметров.
Задайте новые значения для параметров во вторых и третьих наборах параметра.
param_struct.parameters{2}.values = [-150 -5000 0 4950]; param_struct.parameters{3}.values = [-170 -5500 0 5100];
Сохраните структуру, содержащую информацию о наборе параметра к MAT-файлу.
save rtwdemo_rsimtf.mat param_struct;
Также можно изменить параметры блоков в модели и использовать rsimgetrtp
, чтобы создать несколько наборов параметра:
Используйте функциональный rsimgetrtp
, чтобы получить структуру, содержащую информацию о параметре для модели rtwdemo_rsimtf
в качестве примера. Сохраните структуру в переменной param_struct
.
param_struct = rsimgetrtp('rtwdemo_rsimtf');
Используйте функциональный rsimsetrtpparam
, чтобы расширить структуру так, чтобы это содержало больше наборов параметра. В этом случае создайте еще два набора параметра (для в общей сложности трех наборов).
param_struct = rsimsetrtpparam(param_struct,3);
Функция преобразовывает поле parameters
в массив ячеек с тремя элементами. Каждый элемент содержит информацию для одного набора параметра. По умолчанию функция создает вторые и третьи элементы массива ячеек путем копирования первого элемента. Поэтому все наборы параметра используют те же значения параметров.
Измените значения переменных рабочей области или параметров блоков. Например, измените значение переменной w
от 70
до 72
.
w = 72;
Используйте rimsgetrtp
, чтобы получить другую структуру, содержащую информацию о параметре. Сохраните структуру во временной переменной rtp_temp
.
rtp_temp = rsimgetrtp('rtwdemo_rsimtf');
Присвойте значение поля parameters
rtp_temp
к структуре param_struct
как второй набор параметра.
param_struct.parameters{2} = rtp_temp.parameters;
Измените значение переменной w
от 72
до 75
.
w = 75;
Используйте rimsgetrtp
, чтобы получить другую структуру, содержащую информацию о параметре. Затем присвойте значение поля parameters
к param_struct
как третий набор параметра.
rtp_temp = rsimgetrtp('rtwdemo_rsimtf');
param_struct.parameters{3} = rtp_temp.parameters;
Сохраните структуру, содержащую информацию о наборе параметра к MAT-файлу.
save rtwdemo_rsimtf.mat param_struct;
Для получения дополнительной информации о том, как задать каждый набор параметра, когда вы запускаете симуляции, смотрите Параметры блоков Изменения для Симуляции RSim.
Можно использовать MAT-файл в качестве источника входных данных для блока From File. Формат данных в MAT-файле должен совпадать с форматом данных, ожидаемым тем блоком. Например, если вы используете матрицу в качестве входа для файла MAT, это не может отличаться от матричного размера для исполняемого файла.
Создать MAT-файл для блока From File:
Для данных о формате массивов, в рабочей области создают матрицу, которая состоит из двух или больше строк. Первая строка должна содержать монотонно увеличивающиеся моменты времени. Другие строки содержат точки данных, которые соответствуют моменту времени в том столбце. Моменты времени и точки данных должны быть данными типа double
.
Например:
t=[0:0.1:2*pi]'; Ina1=[2*sin(t) 2*cos(t)]; Ina2=sin(2*t); Ina3=[0.5*sin(3*t) 0.5*cos(3*t)]; var_matrix=[t Ina1 Ina2 Ina3]';
Для других поддерживаемых типов данных, таких как int16
или фиксированная точка, точки данных времени должны иметь тип double
, так же, как для данных о формате массивов. Однако выборочные данные могут иметь любую размерность.
Для получения дополнительной информации о подготовке входных данных см. описание блока Из Файла.
Сохраните матрицу в MAT-файл.
Следующий пример сохраняет матричный var_matrix
в MAT-файл myrsimdemo.mat
в формате Версии 7.3.
save '-v7.3' myrsimdemo.mat var_matrix;
Используя параметр командной строки, можно затем указать что MAT-файл, как введено для быстрых симуляций.
Можно использовать MAT-файл в качестве источника входных данных для блока Inport.
Формат данных в MAT-файле должен придерживаться одного из трех основанных на столбце форматов, перечисленных в следующей таблице. Таблица приводит форматы по порядку от наименее гибкого до самого гибкого.
Формат | Описание |
---|---|
Одно время/матрица данных |
Для примера смотрите Одно время/матрицу данных в следующей процедуре, шаге 4. Для получения дополнительной информации смотрите Массивы данных Загрузки к Входным параметрам Корневого Уровня (Simulink). |
Структура сигнала-и-разовая |
Для примера смотрите структуру Сигнала-и-разовую в следующей процедуре, шаге 4. Для получения дополнительной информации об этом формате смотрите Структуры данных Загрузки к Входным параметрам Корневого Уровня (Simulink). |
На структуру порта |
Для примера смотрите На структуру порта в следующей процедуре, шаге 4. Для получения дополнительной информации смотрите Структуры данных Загрузки к Входным параметрам Корневого Уровня (Simulink). |
Поддерживаемые форматы и следующая процедура проиллюстрированы в rtwdemo_rsim_i
.
Создать MAT-файл для блока Inport:
Выберите один из предыдущих форматов файла данных.
Обновите настройки параметров блоков Inport и спецификации, чтобы совпадать со спецификациями данных, которые будут предоставлены MAT-файлом.
По умолчанию блок Inport наследовал установки параметров от нисходящих блоков. Чтобы импортировать данные из внешнего MAT-файла, явным образом установите следующие параметры, чтобы совпадать с исходными данными в MAT-файле.
Main> Interpolate data
Signal Attributes> Port dimensions
Signal Attributes> Data type
Signal Attributes> Signal type
Если вы принимаете решение использовать формат структуры для переменных рабочей области, и поле time
пусто, необходимо очистить Interpolate data или изменить поле так, чтобы это было установлено в непустое значение. Интерполяция требует данных времени.
Для описаний предыдущих параметров блоков см. описание блока Inport.
Создайте исполняемую программу RSim для модели. Процесс сборки создает и вычисляет структурную контрольную сумму для модели и встраивает ее в сгенерированный исполняемый файл. Цель RSim использует контрольную сумму, чтобы проверить, что данные, передаваемые в модель, сопоставимы с тем, что ожидает образцовый исполняемый файл.
Создайте MAT-файл, который обеспечивает исходные данные для быстрых симуляций. Можно создать MAT-файл из переменной рабочей области. Используя спецификации в предыдущей таблице сравнения формата, создайте переменные рабочей области для своих симуляций.
Пример каждого формата следует:
Одно время/матрица данных
t=[0:0.1:2*pi]'; Ina1=[2*sin(t) 2*cos(t)]; Ina2=sin(2*t); Ina3=[0.5*sin(3*t) 0.5*cos(3*t)]; var_matrix=[t Ina1 Ina2 Ina3];
Структура сигнала-и-разовая
t=[0:0.1:2*pi]'; var_single_struct.time=t; var_single_struct.signals(1).values(:,1)=2*sin(t); var_single_struct.signals(1).values(:,2)=2*cos(t); var_single_struct.signals(2).values=sin(2*t); var_single_struct.signals(3).values(:,1)=0.5*sin(3*t); var_single_struct.signals(3).values(:,2)=0.5*cos(3*t); v=[var_single_struct.signals(1).values... var_single_struct.signals(2).values... var_single_struct.signals(3).values];
На структуру порта
t=[0:0.1:2*pi]'; Inb1.time=t; Inb1.signals.values(:,1)=2*sin(t); Inb1.signals.values(:,2)=2*cos(t); t=[0:0.2:2*pi]'; Inb2.time=t; Inb2.signals.values(:,1)=sin(2*t); t=[0:0.1:2*pi]'; Inb3.time=t; Inb3.signals.values(:,1)=0.5*sin(3*t); Inb3.signals.values(:,2)=0.5*cos(3*t);
Сохраните переменные рабочей области в MAT-файл.
Одно время/матрица данных
Следующий пример сохраняет переменную var_matrix
рабочей области в MAT-файл rsim_i_matrix.mat
.
save rsim_i_matrix.mat var_matrix;
Структура сигнала-и-разовая
Следующий пример сохраняет переменную var_single_struct
структуры рабочей области в MAT-файл rsim_i_single_struct.mat
.
save rsim_i_single_struct.mat var_single_struct;
На структуру порта
Чтобы заказать данные при сохранении переменных на структуру порта в один MAT-файл, используйте команду save
опция -append
. Обязательно добавьте данные в порядке, что модель ожидает его.
Следующий пример сохраняет переменные Inb1
рабочей области, Inb2
и Inb3
к MAT-файлу rsim_i_multi_struct.mat
.
save rsim_i_multi_struct.mat Inb1; save rsim_i_multi_struct.mat Inb2 -append; save rsim_i_multi_struct.mat Inb3 -append;
Команда save
не сохраняет порядок, в котором вы задаете свои переменные рабочей области в командной строке при сохранении данных к MAT-файлу. Например, если вы задаете переменные v1
, v2
и v3
, в том порядке, порядком переменных в MAT-файле мог быть v2 v1 v3
.
Используя параметр командной строки, можно затем задать MAT-файлы, как введено для быстрых симуляций.
Цель RSim для пакетных симуляций, по которым параметры и входные сигналы отличаются для нескольких симуляций. Новые имена выходного файла позволяют вам запускать новые симуляции, не перезаписывая предшествующие результаты симуляции. Можно настроить ряд симуляций, чтобы запуститься путем создания файла .bat
для использования на платформе Microsoft® Windows®.
Создайте файл для платформы Windows с текстовым редактором и выполните ее путем ввода имени файла, например, mybatch
, где именем текстового файла является mybatch.bat
.
rtwdemo_rsimtf -f rtwdemo_rsimtf.mat=run1.mat -o results1.mat -tf 10.0 rtwdemo_rsimtf -f rtwdemo_rsimtf.mat=run2.mat -o results2.mat -tf 10.0 rtwdemo_rsimtf -f rtwdemo_rsimtf.mat=run3.mat -o results3.mat -tf 10.0 rtwdemo_rsimtf -f rtwdemo_rsimtf.mat=run4.mat -o results4.mat -tf 10.0
В этом случае обработайте выполнение симуляций в пакетном режиме с помощью четырех наборов входных данных в файлах run1.mat
, run2.mat
, и так далее. Исполняемый файл RSim сохраняет данные к файлам, заданным с опцией -o
.
Имена переменных, содержащие результаты симуляции в каждом из файлов, идентичны. Поэтому загружая последовательные наборы данных, не переименовывая данные, если это находится в результатах рабочего пространства MATLAB в перезаписи предшествующей переменной рабочей области с новыми данными. Чтобы постараться не перезаписывать, можно скопировать результат в новую переменную MATLAB прежде, чем загрузить следующий набор данных.
Можно также записать скрипты MATLAB, чтобы создать новые сигналы и новые структуры параметра, а также сохранить данные и выполнить пакетные выполнения с помощью команды удара (!
).
Для получения дополнительной информации на рабочих симуляциях и доступных параметрах командной строки, смотрите Выполнение Быстрые Симуляции. Для примера быстрого сценария пакетной обработки симуляции смотрите Симуляции Пакета Выполнения в качестве примера, Не Перекомпилировав Сгенерированный код.
Используя цель RSim, можно создать модель однажды и запустить несколько симуляций, чтобы изучить эффекты переменных установок параметров и входных сигналов. Можно запустить симуляцию непосредственно из командной строки операционной системы, перенаправить команду из командной строки MATLAB при помощи символа удара (!) или выполнить команды из скрипта.
Из командной строки операционной системы использовать
rtwdemo_rsimtf
Из командной строки MATLAB использовать
!rtwdemo_rsimtf
В следующей таблице перечислены способы, которыми можно использовать целевые параметры командной строки RSim, чтобы управлять симуляцией.
К... | Использование... |
---|---|
Считайте входные данные для блока From File от MAT-файла кроме MAT-файла, используемого для предыдущей симуляции |
|
Распечатайте сводные данные опций для исполняемых целей RSim |
|
Считайте входные данные для блока Inport от MAT-файла |
|
Испытайте таймаут после секунд времени часов n , где n является положительным целочисленным значением |
|
Запишите данные о регистрации MAT-файла, чтобы зарегистрировать
|
|
Считайте вектор параметра из файла
|
|
Замените порт TCP по умолчанию (17725) для режима external mode |
|
Запишите данные о регистрации MAT-файла в MAT-файл кроме MAT-файла, используемого для предыдущей симуляции |
|
Запустите симуляцию до временной стоимости достигнут | |
Запуститесь в многословном режиме |
|
Ожидайте механизма Simulink, чтобы запустить модель в режиме external mode |
|
Следующие разделы используют модель rtwdemo_rsimtf
в качестве примера в примерах, чтобы проиллюстрировать некоторые из этих параметров командной строки. В каждом случае пример принимает, что вы уже сделали следующее:
Созданный или измененный на рабочую папку.
Открытый модель в качестве примера.
Скопированный файл данных
в вашу рабочую папку. Можно выполнить эту операцию с помощью команды:matlabroot/toolbox/rtw/rtwdemos/rsimdemos/rsim_tfdata.mat
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos',... 'rsimdemos','rsim_tfdata.mat'),pwd);
Следующие требования применяются и к зафиксированным и переменным исполняемым файлам шага.
Необходимо запустить исполняемый файл RSim на компьютере, сконфигурированном, чтобы запустить MATLAB. Кроме того, файл RSim.exe
должен смочь получить доступ к MATLAB и папкам установки Simulink на этой машине. Чтобы получить тот доступ, ваша переменная окружения PATH должна включать / интервал и / интервал/($ARCH), где ($ARCH) представляет вашу архитектуру операционной системы. Например, для персонального компьютера, работающего на платформе Windows, ($ARCH), “win64”, тогда как для машины Linux, ($ARCH) “glnxa64”.
На платформах GNU® Linux®, чтобы запустить исполняемый файл RSim, задают переменную окружения LD_LIBRARY_PATH, чтобы обеспечить путь к папке установки MATLAB, можно следующим образом:
% setenv LD_LIBRARY_PATH /matlab/sys/os/glnx64:$LD_LIBRARY_PATH
На платформе OS X Apple Macintosh, чтобы запустить RSim предназначаются для исполняемых файлов, необходимо задать переменную окружения DYLD_LIBRARY_PATH
, чтобы включать папки bin/mac
и sys/os/mac
под папкой установки MATLAB. Например, если ваша установка MATLAB находится под /MATLAB
, добавьте /MATLAB/bin/mac
и /MATLAB/sys/os/mac
к определению для DYLD_LIBRARY_PATH
.
Если модель испытывает частые нулевые пересечения, и размер незначительного шага модели является небольшим, рассмотрите установку ограничения по времени для быстрой симуляции. Чтобы установить ограничение по времени, задайте опцию -L
с положительным целочисленным значением. Аварийные прекращения работы симуляции после выполнения для заданной суммы показывают время (не время симуляции). Например,
!rtwdemo_rsimtf -L 20
На основе ваших часов, после исполняемых выполнений в течение 20 секунд, останавливается программа. Вы видите сообщение, подобное одному из следующего:
На платформе Microsoft Windows,
Exiting program, time limit exceeded Logging available data ...
На платформе Open Group UNIX®,
** Received SIGALRM (Alarm) signal @ Fri Jul 25 15:43:23 2003 ** Exiting model 'vdp' @ Fri Jul 25 15:43:23 2003
Вы ничего не должны делать к своей модели или к ее настройке, чтобы использовать эту опцию.
По умолчанию быстрая симуляция запускается, пока время симуляции не достигает, время задало диалоговое окно Configuration Parameters на панели Solver. Можно заменить время остановки симуляции модели при помощи опции -tf
. Например, следующие выполнения симуляции до времени достигают 6,0 секунд.
!rtwdemo_rsimtf -tf 6.0
RSim предназначаются для остановок и логарифмических выходных данных, использующих правила регистрации данных MAT-файла.
Если модель включает блок From File, конец симуляции отрегулирован установкой времени остановки, заданной в диалоговом окне Configuration Parameters на панели Solver, или с целевой опцией RSim -tf
. Значения во временном векторе блока проигнорированы. Однако, если время симуляции превышает конечные точки времени и матрицы сигнала (если итоговое время больше, чем итоговая временная стоимость матрицы данных), данные сигнала экстраполируется к итоговой временной стоимости.
Чтобы считать вектор параметра модели в быструю симуляцию, необходимо сначала создать MAT-файл, который включает структуру параметра, как описано в, Создают MAT-файл, Который Включает Структуру Параметра модели. Можно затем задать MAT-файл в командной строке с опцией -p
.
Например:
Создайте исполняемый файл RSim для модели rtwdemo_rsimtf
в качестве примера.
Измените параметры в своей модели и сохраните структуру параметра.
param_struct = rsimgetrtp('rtwdemo_rsimtf'); save myrsimdata.mat param_struct
Запустите исполняемый файл с новым набором параметра.
!rtwdemo_rsimtf -p myrsimdata.mat
** Starting model 'rtwdemo_rsimtf' @ Tue Dec 27 12:30:16 2005 ** created rtwdemo_rsimtf.mat **
Загрузите переменные рабочей области и постройте результаты симуляции путем ввода следующих команд:
load myrsimdata.mat
plot(rt_yout)
Если источник входных данных вашей модели является блоком From File, можно питать блок входными данными во время симуляции из одного MAT-файла, или можно изменить MAT-файл от одной симуляции до следующего. Каждый MAT-файл должен придерживаться формата, описанного в, Создают MAT-файл для От Блока Файла.
Чтобы изменить MAT-файл после начальной симуляции, вы задаете исполняемый файл с опцией -f
и параметром
, как показано в следующем примере.oldfile.mat=newfile.mat
Установите некоторые параметры в рабочем пространстве MATLAB. Например:
w = 100; theta = 0.5;
Создайте исполняемый файл RSim для модели rtwdemo_rsimtf
в качестве примера.
Запустите исполняемый файл.
!rtwdemo_rsimtf
Исполняемый файл RSim запускает набор симуляций и создает выходные MAT-файлы, содержащие определенный результат симуляции.
Загрузите переменные рабочей области и постройте результаты симуляции путем ввода следующих команд:
load rtwdemo_rsimtf.mat
plot(rt_yout)
Получившийся график показывает результаты симуляции на основе входных данных по умолчанию.
Создайте новый файл данных, newfrom.mat
, который включает следующие данные:
t=[0:.001:1]; u=sin(100*t.*t); tu=[t;u]; save newfrom.mat tu;
Запустите быструю симуляцию с новыми данными при помощи опции -f
, чтобы заменить исходный файл, rsim_tfdata.mat
, с newfrom.mat
.
!rtwdemo_rsimtf -f rsim_tfdata.mat=newfrom.mat
Загрузите данные и постройте новые результаты путем ввода следующих команд:
load rtwdemo_rsimtf.mat
plot(rt_yout)
Следующие данные показывают получившийся график.
Из Файла блоки требуют входных данных типа double
. Если необходимо импортировать данные сигнала типа данных кроме double
, используйте блок Inport (см., Создают MAT-файл для Блока Inport), или блок From Workspace с данными, заданными как структура.
Данные о рабочей области должны быть в формате:
variable.time variable.signals.values
Если у вас есть больше чем один сигнал, используйте следующий формат:
variable.time variable.signals(1).values variable.signals(2).values
Если источник входных данных вашей модели является блоком Inport, можно питать блок входными данными во время симуляции из одного MAT-файла, или можно изменить MAT-файл от одной симуляции до следующего. Каждый MAT-файл должен придерживаться одного из этих трех форматов, описанных в, Создают MAT-файл для Блока Inport.
Чтобы задать MAT-файл после симуляции, вы задаете исполняемый файл с опцией -i
и именем MAT-файла, который содержит входные данные. Например:
Откройте модель rtwdemo_rsim_i
.
Проверяйте настройки параметров блоков Inport. Следующие установки параметров данных о блоке Inport и спецификации, которые вы задаете для переменных рабочей области, должны совпадать с настройками в MAT-файле, как обозначено в Конфигурируют Inports, чтобы Обеспечить Исходные данные Симуляции:
Main> Interpolate data
Signal Attributes> Port dimensions
Signal Attributes> Data type
Signal Attributes> Signal type
Создайте модель.
Настройте входные сигналы. Например:
t=[0:0.01:2*pi]'; s1=[2*sin(t) 2*cos(t)]; s2=sin(2*t); s3=[0.5*sin(3*t) 0.5*cos(3*t)]; plot(t, [s1 s2 s3])
Подготовьтесь MAT-файл при помощи одних из трех доступных форматов файлов, описанных в, Создают MAT-файл для Блока Inport. Следующий пример задает структуру сигнала-и-разовую в рабочей области и называет ее var_single_struct
.
t=[0:0.1:2*pi]'; var_single_struct.time=t; var_single_struct.signals(1).values(:,1)=2*sin(t); var_single_struct.signals(1).values(:,2)=2*cos(t); var_single_struct.signals(2).values=sin(2*t); var_single_struct.signals(3).values(:,1)=0.5*sin(3*t); var_single_struct.signals(3).values(:,2)=0.5*cos(3*t); v=[var_single_struct.signals(1).values... var_single_struct.signals(2).values... var_single_struct.signals(3).values];
Сохраните переменную var_single_struct
рабочей области в MAT-файл rsim_i_single_struct
.
save rsim_i_single_struct.mat var_single_struct;
Запустите быструю симуляцию с входными данными при помощи опции -i
. Загрузите и постройте результаты.
!rtwdemo_rsim_i -i rsim_i_single_struct.mat
** Starting model 'rtwdemo_rsim_i' @ Tue Aug 19 10:26:53 2014 *** rsim_i_single_struct.mat is successfully loaded! *** ** created rtwdemo_rsim_i.mat ** ** Execution time = 0.02024185130718954s
Загрузите и постройте результаты.
load rtwdemo_rsim_i.mat
plot(rt_tout, rt_yout);
Как описано в Создают MAT-файл, Который Включает Структуру Параметра модели, после того, как вы изменяете один или несколько параметров в Диаграмме Simulink, можно извлечь вектор параметра, model
_P
, для целой модели. Можно затем сохранить вектор параметра, наряду с образцовой контрольной суммой, к MAT-файлу. Этот MAT-файл может быть считан непосредственно автономным исполняемым файлом RSim, позволив вам заменить целый вектор параметра или отдельные значения параметров, для рабочих исследований изменений значений параметров, представляющих коэффициенты, новые данные для входных сигналов, и так далее.
RSim может считать MAT-файл и заменить целый model
структура _P
каждый раз, когда вы изменяете один или несколько параметров, не перекомпилировав целую модель.
Например, примите, что вы изменили один или несколько параметров в своей модели, сгенерировал новый model
вектор _P
и сохраненный model
_P
к новому MAT-файлу под названием mymatfile.mat
. Чтобы запустить ту же модель rtwdemo_rsimtf
и использовать эти новые значения параметров, используйте опцию -p
, как показано в следующем примере:
!rtwdemo_rsimtf -p mymatfile.mat load rtwdemo_rsimtf plot(rt_yout)
Если вы преобразовали структуру параметра в массив ячеек для рабочих симуляций на переменных наборах данных, как описано в Преобразовании Структура Параметра для Выполнения Симуляций на Переменных Наборах данных, необходимо добавить суффикс
в спецификацию MAT-файла. @n
n
является элементом массива ячеек, который содержит определенный вход, который вы хотите использовать для симуляции.
Следующий пример преобразовывает param_struct
в массив ячеек, изменяет значения параметров, сохраняет изменения в MAT-файле mymatfile.mat
, и затем запускает исполняемый файл с помощью значений параметров во втором элементе массива ячеек, как введено.
param_struct = rsimgetrtp('rtwdemo_rsimtf');
param_struct = rsimsetrtpparam(param_struct,2);
param_struct.parameters{1}
ans = dataTypeName: 'double' dataTypeId: 0 complex: 0 dtTransIdx: 0 values: [-140 -4900 0 4900] map: [] structParamInfo: []
param_struct.parameters{2}.values=[-150 -5000 0 4950]; save mymatfile.mat param_struct; !rtwdemo_rsimtf -p mymatfile.mat@2 -o rsim2.mat
Если вы задали один или несколько опций Save to Workspace — Time, States, Outputs, или Final States — в диалоговом окне Configuration Parameters, на панели Data Import/Export, значение по умолчанию должно сохранить результаты журналирования симуляции в файл model
.mat
. Например, модель rtwdemo_rsimtf
в качестве примера обычно сохраняет данные к rtwdemo_rsimtf.mat
, можно следующим образом:
!rtwdemo_rsimtf created rtwdemo_rsimtf.mat
Можно задать новое имя выходного файла для регистрации данных при помощи опции -o
, когда вы запускаете исполняемый файл.
!rtwdemo_rsimtf -o rsim1.mat
В этом случае набор параметров, обеспеченных во время генерации кода, включая параметры данных о блоке From File, запущен.
Почти таким же способом, когда можно задать новое системное имя выходного файла, можно также обеспечить новые имена выходного файла для данных, сохраненных от одного или нескольких До блоков Файла. Для этого задайте исходное имя файла во время генерации кода с новым именем, как показано в следующем примере:
!rtwdemo_rsimtf -t rtwdemo_rsimtf_data.mat=mynewrsimdata.mat
В этом случае примите, что исходная модель записала данные к выходному файлу rtwdemo_rsimtf_data.mat
. Определение нового имени файла обеспечивает RSim, чтобы записать в файл mynewrsimdata.mat
. С этим методом можно постараться не перезаписывать существующую запущенную симуляцию.
Цель RSim была разработана, чтобы позволить вам запустить пакетные симуляции на самой быстрой скорости. Используя переменный шаг или решатели фиксированного шага с RSim, объединенным с использованием структуры данных настраиваемого параметра, устанавливаете ли вы поведение параметра По умолчанию на Tunable
или на Inlined
, можно создать несколько наборов параметра, чтобы запустить с файлом независимого исполняемого файла цели RSim (.exe на Windows) сгенерированный Simulink Coder использования. Каждый вызов исполняемого файла позволяет спецификации имени файла использовать для результатов.
В данном примере поведение параметра По умолчанию установлено в Inlined
. Модель объявляет переменные рабочей области как настраиваемые параметры. Чтобы использовать RSim с набором поведения параметра По умолчанию к Tunable
, и явным образом не объявляя настраиваемые параметры, смотрите Симуляции Пакета Выполнения, Не Перекомпилировав Сгенерированный код.
Открытая модель в качестве примера
Откройте модель rtwdemo_rsim_param_tuning
в качестве примера.
open_system('rtwdemo_rsim_param_tuning');
Эта модель использует цель RSim и функцию rsimgetrtp
, чтобы позволить не оперативному исполняемому файлу быть переданным новые данные без потребности перекомпилировать модель Simulink. Эта функция позволяет вам получать карту настраиваемых параметров, объявленных в модели и сохранять его в MAT-файле. Можно затем создать собственный графический интерфейс пользователя MATLAB или автономный графический интерфейс пользователя (независимый от MATLAB), чтобы считать и записать MAT-файл и повторно выполнить исполняемый файл, чтобы произвести новые выходные файлы.
Дважды кликните кнопки в верхнем правом углу последовательно, чтобы запустить пример.
Рассмотреть код раньше создавало и графический интерфейс пользователя MATLAB и автономный графический интерфейс пользователя, дважды кликало кнопку программ MATLAB Представления.
Для получения дополнительной информации можно также обратиться к разделу "Rapid Simulation Target" в документации Simulink Coder.
Цель RSim имеет следующие ограничения:
Не поддерживает алгебраические циклы.
Не поддерживает Интерпретированные блоки MATLAB function.
Не поддерживает невстроенные S-функции языка MATLAB или Фортрана.
Если сборка RSim включает модели, на которые ссылаются (при помощи блоков Model), настройте эти модели, чтобы использовать решатели фиксированного шага, чтобы сгенерировать код для них. Топ-модель, однако, может использовать решатель переменного шага, пока блоки в моделях, на которые ссылаются, дискретны.
В определенных случаях, изменяя параметры блоков может привести к структурным изменениям к вашей модели, которые изменяют образцовую контрольную сумму. Пример такого изменения изменяет количество задержек симуляции DSP. В таких случаях необходимо регенерировать код для модели.