После того, как вы создадите модель, можно использовать быструю симуляцию (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.
После того, как вы идентифицируете свои быстрые требования симуляции, конфигурируете модель для быстрой симуляции.
Установите параметр конфигурации модели System target file на rsim.tlc
(Быстрая цель симуляции).
Нажмите 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 (Simulink Coder) для деталей.
Нажмите 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
Prsimgetrtp
.
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
, так же, как для данных о формате массивов. Однако выборочные данные могут иметь любую размерность.
Для получения дополнительной информации о подготовке входных данных см. описание блока From File.
Сохраните матрицу в 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, чтобы создать новые сигналы и новые структуры параметра, а также сохранить данные и выполнить пакетные запуски с помощью команды удара (!
).
Для получения дополнительной информации на рабочих симуляциях и доступных параметрах командной строки, смотрите Запуск Быстрые Симуляции. Для примера быстрого сценария пакетной обработки симуляции смотрите Симуляции Пакета Запуска в качестве примера, Не Перекомпилировав Сгенерированный код (Simulink Coder).
Используя цель 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 был спроектирован, чтобы позволить вам запустить пакетные симуляции на самой быстрой скорости. Используя переменный шаг или решатели фиксированного шага с тем системным конечным файлом и структурой данных настраиваемого параметра, устанавливаете ли вы поведение параметра По умолчанию на Tunable
или к Inlined
, можно создать несколько наборов параметра. Можно запустить наборы данных со сгенерированной исполняемой программой (.exe на Windows). Каждый вызов исполняемой программы позволяет спецификации имени файла использовать в результатах.
В данном примере поведение параметра По умолчанию установлено в Inlined
. Модель объявляет переменные рабочей области как настраиваемые параметры. Использовать системный конечный файл RSim с набором поведения параметра По умолчанию к Tunable
, и явным образом не объявляя настраиваемые параметры, смотрите Симуляции Пакета Запуска, Не Перекомпилировав Сгенерированный код (Simulink Coder).
Открытая модель в качестве примера
Откройте модель rtwdemo_rsim_param_tuning
в качестве примера.
open_system('rtwdemo_rsim_param_tuning');
Эта модель использует цель RSim и rsimgetrtp
функция, чтобы позволить не оперативному исполняемому файлу, который будет передан новые данные без потребности перекомпилировать модель Simulink. Эта функция позволяет вам получать карту настраиваемых параметров, объявленных в модели и сохранять его в MAT-файле. Можно затем создать собственный графический интерфейс пользователя MATLAB или автономный графический интерфейс пользователя (независимый от MATLAB), чтобы считать и записать MAT-файл и повторно выполнить исполняемый файл, чтобы произвести новые выходные файлы.
В модели дважды кликните кнопки последовательно, чтобы запустить пример.
Рассмотреть код раньше создавало графический интерфейс MATLAB и автономный графический интерфейс, дважды кликало кнопку программ MATLAB Представления.
Для получения дополнительной информации смотрите, Ускоряют, Совершенствовали, и Тестовая Гибридная Динамическая система на Хосте - компьютере при помощи Системного Конечного файла RSim (Simulink Coder).
Цель RSim имеет нижеследующие ограничения:
Не поддерживает алгебраические циклы.
Не поддерживает блоки Interpreted MATLAB Function.
Не поддерживает невстроенные S-функции языка MATLAB или Фортрана.
Если сборка RSim включает модели, на которые ссылаются (при помощи блоков Model), настройте эти модели, чтобы использовать решатели фиксированного шага, чтобы сгенерировать код для них. Топ-модель, однако, может использовать решатель переменного шага, пока блоки в моделях, на которые ссылаются, дискретны.
В определенных случаях, изменяя параметры блоков может привести к структурным изменениям к вашей модели, которые изменяют контрольную сумму модели. Пример такого изменения изменяет количество задержек симуляции DSP. В таких случаях необходимо регенерировать код для модели.