После создания модели можно использовать целевой файл системы быстрого моделирования (RSim) для характеристики поведения модели. Исполняемая программа, являющаяся результатом процесса построения, предназначена для выполнения на компьютере разработчика не в реальном времени. Исполняемая программа оптимизирована для моделирования моделей гибридных динамических систем, включая модели, использующие решатели с переменным шагом и обнаружение пересечения нулей. Скорость генерируемого кода делает целевой файл системы RSim идеальным для построения программ для пакетного или Монте-Карло моделирования.
Используйте целевой объект RSim для создания исполняемого файла, который работает быстро, автономно. Можно повторить моделирование с различными наборами данных в интерактивном или программном режиме с помощью сценариев, не перестраивая модель. Это может ускорить характеристику и настройку поведения модели и тестирование генерации кода.
Использование параметров командной строки:
Определите значения параметров и входные сигналы в одном или нескольких MAT-файлах, которые можно загрузить и перезагрузить в начале моделирования, не перестраивая модель.
Перенаправьте данные регистрации в один или несколько MAT-файлов, которые затем можно проанализировать и сравнить.
Управление временем моделирования.
Укажите параметры внешнего режима.
Примечание
Чтобы запустить исполняемый файл RSim, настройте компьютер на выполнение MATLAB ® и обеспечьте доступ к папкам установки MATLAB и Simulink ®. Чтобы развернуть автономный исполняемый файл хоста (т.е. без установленных MATLAB и Simulink), рассмотрите возможность использования целевого объекта Host-Based Shared Library (ert_shrlib). "
Преимущества быстрого моделирования различны. Более крупные модели позволяют повысить скорость до 10 раз быстрее, чем стандартные модели Simulink. Некоторые модели могут не показать заметного улучшения скорости моделирования. Чтобы определить разницу скоростей для модели, проведите время стандартного моделирования Simulink и сравните результаты с быстрым моделированием. Кроме того, протестируйте моделирование модели в режиме моделирования Rapid Accelerator.
Как и на других этапах конструирования на основе модели, характеристика и настройка поведения модели является итеративным процессом, как показано на общей схеме рабочего процесса на рисунке. Задачи в рабочем процессе:
Настройте блоки ввода, которые предоставляют входные исходные данные для быстрого моделирования.
Настройте модель для быстрого моделирования.

Первым шагом к настройке быстрого моделирования является определение требований к моделированию.
| Вопрос... | Дополнительные сведения см. в разделе... |
|---|---|
| Как долго вы хотите выполнять моделирование? | Настройка и построение модели для быстрого моделирования |
| Существуют ли требования к решателю? Предполагается ли использовать тот же решатель, для которого модель настроена для быстрого моделирования? | Настройка и построение модели для быстрого моделирования |
| Требуется ли быстрое моделирование для гибкого пользовательского интерфейса кода? Или вам нужно сохранить настройки класса хранения? | Настройка и построение модели для быстрого моделирования |
| Будет ли выполняться моделирование с несколькими наборами данных? | Настройка входных данных быстрого моделирования |
| Будут ли входные данные состоять из глобальных параметров, сигналов или и того, и другого? | Настройка входных данных быстрого моделирования |
| Какой тип исходных блоков предоставляет входные данные модели - Из файла (From File), Inport (Inport), Из рабочей области (From Workspace)? | Настройка входных данных быстрого моделирования |
Будет ли вектор параметров модели () использоваться в качестве входных данных? | Создание MAT-файла, содержащего структуру параметров модели |
| Каков тип данных входных параметров и сигналов? | Настройка входных данных быстрого моделирования |
| Будут ли исходные данные состоять из одной или нескольких переменных? | Настройка входных данных быстрого моделирования |
| Включают ли входные данные настраиваемые параметры? | Создание MAT-файла, содержащего структуру параметров модели |
| Нужно ли получать доступ к настраиваемой информации о параметрах - типам данных контрольной суммы модели и параметров, идентификаторам и сложности? | Создание MAT-файла, содержащего структуру параметров модели |
| Потребуется ли изменять время остановки моделирования для прогонов моделирования? | Настройка и построение модели для быстрого моделирования и переопределение времени остановки моделирования модели |
| Установить ограничение по времени для моделирования? Рекомендуется установить ограничение по времени, если модель часто пересекает ноль и имеет небольшой размер шага. | Установка времени синхронизации для быстрого моделирования |
| Необходимо ли сохранять выходные данные каждого прогона моделирования? | Укажите имя нового выходного файла для моделирования и укажите новые имена выходных файлов для блоков в файл |
| Предполагается ли выполнение моделирования в интерактивном или пакетном режиме? | Сценарии для пакетного моделирования и моделирования Монте-Карло |
Блоки ввода можно использовать в качестве источника входных данных для быстрого моделирования. Для этого настройте блоки так, чтобы они могли импортировать данные из внешних MAT-файлов. По умолчанию блок Inport наследует параметры из нижестоящих блоков. В большинстве случаев для импорта данных из внешнего MAT-файла необходимо явно задать следующие параметры блока в соответствии с исходными данными в MAT-файле.
Главная > Данные интерполяции
Атрибуты сигнала > Размеры порта
Атрибуты сигнала > Тип данных
Атрибуты сигнала > Тип сигнала
Если у вас нет контроля над содержимым модели, возможно, потребуется изменить данные в MAT-файле в соответствии с ожиданиями модели для ввода. Характеристики и характеристики входных данных блока Inport, который получает данные, должны совпадать.
Дополнительные сведения о настройке этих параметров и создании MAT-файла для использования с блоком Inport см. в разделе Создание MAT-файла для блока Inport. Описание предыдущих параметров блока см. в описании блока Inport.
После определения требований к быстрому моделированию настройте модель для быстрого моделирования.
Задайте для параметра конфигурации модели System target file значение rsim.tlc (Цель быстрого моделирования).
Щелкните RSim Target, чтобы просмотреть панель RSim Target.

Установите целевые параметры конфигурации RSim для требований быстрого моделирования.
| Если хочешь... | Тогда... |
|---|---|
| Создание кода, позволяющего исполняемому файлу RSim загружать параметры из MAT-файла | Выберите Включить исполняемый файл RSim для загрузки параметров из MAT-файла (по умолчанию). |
| Пусть целевой объект выбирает решатель на основе решателя, уже настроенного для модели | Задайте для параметра «Решатель» значение |
| Явное указание целевому объекту использовать решатель с фиксированным шагом | Задайте для параметра «Решатель» значение Use fixed-step solvers. В диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Решатель (Solver) укажите решатель с фиксированным шагом. |
| Явное указание целевому объекту использовать решатель с переменным шагом | Задайте для параметра «Решатель» значение |
Принудительно использовать классы хранения для Auto для гибкого интерфейса пользовательского кода | Выберите Принудительно использовать классы хранения для AUTO (по умолчанию). |
Сохранение параметров класса хранения, таких как ExportedGlobal или ImportedExtern, из-за требований приложения | Снимите флажок Принудительно использовать классы хранения для AUTO. |
Настройка параметров импорта и экспорта данных. На панели Импорт/экспорт данных (Data Import/Export) в разделе Сохранить в рабочей области (Save to Workspace) выберите параметры Время (Time), Состояния (States), Выходные данные (Outputs) и Конечные состояния (Final States). По умолчанию генератор кода сохраняет результаты регистрации моделирования в файл с именем . Дополнительные сведения см. в разделе Экспорт данных моделирования.model.mat
Если используется связь во внешнем режиме, настройте интерфейс с помощью панели «Создание кода» > «Интерфейс». Дополнительные сведения см. в разделе Моделирование внешнего режима для настройки параметров и мониторинга сигналов.
Нажмите Ctrl + B. Генератор кода создает высокооптимизированную исполняемую программу, которую можно запускать на компьютере разработчика с различными данными без перестроения.
Дополнительные сведения о компиляторах, совместимых с продуктом Simulink Coder™, см. в разделах Выбор и настройка компиляторов C или C++ и Makefiles и Make Options.
Формат и настройка входных данных для быстрого моделирования зависят от требований пользователя.
| Если источник входных данных... | Тогда... |
|---|---|
Вектор глобальных параметров модели () | Используйте rsimgetrtp чтобы получить векторное содержимое и затем сохранить его в MAT-файле. |
| Вектор глобальных параметров модели и требуется сопоставление между вектором и настраиваемыми параметрами | Позвоните в rsimgetrtp чтобы получить глобальную структуру параметров и затем сохранить ее в MAT-файле. |
| Предоставляется блоком «Из файла» | Создайте MAT-файл, который может быть считан блоком «Из файла». |
| Предоставляется блоком Inport | Создайте MAT-файл, который соответствует одному из трех форматов файлов данных, доступных для чтения блоком Inport. |
| Предоставляется блоком «Из рабочей области» | Создайте структурные переменные в рабочем пространстве MATLAB. |
Целевой объект RSim требует, чтобы MAT-файлы, используемые в качестве входных данных для блоков From File и Inport, содержали данные. grt target вставляет данные MAT-файла непосредственно в созданный код, который затем компилируется и связывается как исполняемый файл. Напротив, RSim позволяет заменять наборы данных для каждого последующего моделирования. MAT-файл, содержащий данные блока Из файла (From File) или Inport (Inport), должен присутствовать, если в модели существует блок Из файла (From File) или Inport (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-файл. Формат данных в MAT-файле должен соответствовать формату данных, ожидаемому этим блоком. Например, при использовании матрицы в качестве входных данных для MAT-файла размер матрицы не может отличаться от размера матрицы для исполняемого файла.
Чтобы создать MAT-файл для блока «Из файла»:
Для данных формата массива в рабочей области создайте матрицу, состоящую из двух или более строк. Первая строка должна содержать монотонно увеличивающиеся моменты времени. Другие строки содержат точки данных, соответствующие моменту времени в этом столбце. Время и точки данных должны быть данными типа 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-файл в качестве входных данных для быстрого моделирования.
В качестве источника входных данных для блока Inport можно использовать MAT-файл.
Формат данных в MAT-файле должен соответствовать одному из трех форматов на основе столбцов, перечисленных в следующей таблице. В таблице перечислены форматы в порядке от наименее гибких до наиболее гибких.
| Формат | Описание |
|---|---|
| Единая матрица времени/данных |
Пример см. в разделе Единичная матрица времени/данных в следующей процедуре, шаг 4. Дополнительные сведения см. в разделе Загрузка массивов данных на входы корневого уровня. |
| Структура сигналов и времени |
Пример см. в разделе Структура сигнала и времени в следующей процедуре, шаг 4. Дополнительные сведения об этом формате см. в разделе Загрузка структур данных на входы корневого уровня. |
| Структура для каждого порта |
Пример см. в разделе Структура портов в следующей процедуре, шаг 4. Дополнительные сведения см. в разделе Загрузка структур данных на входы корневого уровня. |
Поддерживаемые форматы и следующая процедура показаны на rtwdemo_rsim_i.
Чтобы создать MAT-файл для блока Inport:
Выберите один из предыдущих форматов файлов данных.
Обновление настроек и спецификаций параметров блока ввода в соответствии со спецификациями данных, поставляемых MAT-файлом.
По умолчанию блок Inport наследует параметры из нижестоящих блоков. Чтобы импортировать данные из внешнего MAT-файла, явно задайте следующие параметры в соответствии с исходными данными в MAT-файле.
Главная > Данные интерполяции
Атрибуты сигнала > Размеры порта
Атрибуты сигнала > Тип данных
Атрибуты сигнала > Тип сигнала
Если выбран формат структуры для переменных рабочей области и 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 для создания новых сигналов и новых структур параметров, а также для сохранения данных и выполнения пакетных прогонов с помощью команды bang (!).
Дополнительные сведения о выполнении моделирования и доступных параметрах командной строки см. в разделе Запуск быстрого моделирования. Пример пакетного сценария быстрого моделирования см. в примере Запуск пакетного моделирования без повторной компиляции сгенерированного кода.
Используя цель RSim, можно построить модель один раз и выполнить несколько моделирований для изучения эффектов различных настроек параметров и входных сигналов. Можно запустить моделирование непосредственно из командной строки операционной системы, перенаправить команду из командной строки MATLAB с помощью символа bang (!) или выполнить команды из сценария.
В командной строке операционной системы используйте
rtwdemo_rsimtf
В командной строке MATLAB используйте
!rtwdemo_rsimtfВ следующей таблице перечислены способы использования параметров целевой командной строки RSim для управления моделированием.
| Кому... | Использовать... |
|---|---|
| Считывание входных данных блока From File из MAT-файла, отличного от MAT-файла, использованного для предыдущего моделирования |
|
| Печать сводки параметров исполняемых целевых объектов RSim | |
| Считывание входных данных блока Inport из MAT-файла |
|
Тайм-аут после n тактовое время секунд, где n является положительным целым значением |
|
Запись данных регистрации MAT-файла в файл |
|
Считывание вектора параметров из файла |
|
| Переопределение порта TCP по умолчанию (17725) для внешнего режима |
|
| Запись данных регистрации MAT-файла в MAT-файл, отличный от MAT-файла, использованного для предыдущего моделирования |
|
Запускать моделирование до значения времени достигнуто |
|
| Запуск в подробном режиме |
|
| Дождитесь запуска модели модулем Simulink во внешнем режиме |
|
В следующих разделах используется 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 должна включать/bin и/bin/( $ 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
На
платформе Apple Macintosh OS X для запуска целевых исполняемых файлов 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)На следующем рисунке показан результирующий график.

Блоки From File требуют ввода данных типа 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-файла для блока ввода.
Чтобы указать MAT-файл после моделирования, укажите исполняемый файл с помощью -i и имя MAT-файла, содержащего входные данные. Например:
Открытие модели rtwdemo_rsim_i.
Проверьте параметры Inport block. Следующие параметры и спецификации параметров блока ввода, заданные для переменных рабочей области, должны соответствовать настройкам в MAT-файле, как указано в разделе Настройка входов для предоставления исходных данных моделирования.
Главная > Данные интерполяции
Атрибуты сигнала > Размеры порта
Атрибуты сигнала > Тип данных
Атрибуты сигнала > Тип сигнала
Создайте модель.
Настройте входные сигналы. Например:
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-файла для блока ввода. Следующий пример определяет структуру сигнала и времени в рабочей области и называет ее 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-файла. nn - элемент массива ячеек, содержащий определенные входные данные, которые необходимо использовать для моделирования.
В следующем примере выполняется преобразование 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Если в диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Импорт/экспорт данных (Data Import/Export) указан один или несколько параметров Сохранить в рабочую область (Save to Workspace) - Время (Time), Состояния (States), Выходы (Outputs) или Конечные состояния (Final States), - по умолчанию сохраняются результаты регистрации моделирования в файле. model.mat. Например, пример модели rtwdemo_rsimtf обычно сохраняет данные в rtwdemo_rsimtf.mat, следующим образом:
!rtwdemo_rsimtf created rtwdemo_rsimtf.mat
Можно указать новое имя выходного файла для регистрации данных с помощью -o при запуске исполняемого файла.
!rtwdemo_rsimtf -o rsim1.matВ этом случае выполняется набор параметров, предоставляемых во время генерации кода, включая параметры данных блока «Из файла».
Точно так же, как можно задать новое имя системного выходного файла, можно также предоставить новые имена выходных файлов для данных, сохраненных из одного или нескольких блоков В файл. Для этого укажите исходное имя файла во время создания кода с новым именем, как показано в следующем примере:
!rtwdemo_rsimtf -t rtwdemo_rsimtf_data.mat=mynewrsimdata.matВ этом случае предположим, что исходная модель записала данные в выходной файл rtwdemo_rsimtf_data.mat. Указание нового имени файла вынуждает RSim записывать данные в файл mynewrsimdata.mat. С помощью этого метода можно избежать перезаписи существующего прогона моделирования.
Целевой файл системы RSim был разработан для выполнения пакетного моделирования с максимально высокой скоростью. Использование решателей с переменным шагом или фиксированным шагом с этим системным целевым файлом и настраиваемой структурой данных параметров независимо от того, задано ли для параметра Поведение по умолчанию значение Tunable или в Inlined, можно создать несколько наборов параметров. Наборы данных можно запустить с помощью созданной исполняемой программы (.exe в Windows). Каждый вызов исполняемой программы позволяет указать имя файла для использования в результатах.
В этом примере поведение параметра по умолчанию имеет значение Inlined. Модель объявляет переменные рабочей области настраиваемыми параметрами. Использование целевого файла системы RSim с параметрами по умолчанию, для которых установлено значение Tunableи без явного объявления перестраиваемых параметров см. раздел Выполнение пакетного моделирования без перекомпиляции сгенерированного кода.
Открыть пример модели
Открыть пример модели rtwdemo_rsim_param_tuning.
open_system('rtwdemo_rsim_param_tuning');

В этой модели используется цель RSim и rsimgetrtp функция, позволяющая передавать новые данные исполняемому файлу не в реальном времени без необходимости повторной компиляции модели Simulink. Эта функция позволяет получить карту настраиваемых параметров, объявленных в модели, и сохранить ее в MAT-файле. Затем можно создать собственный графический интерфейс MATLAB или автономный графический интерфейс (независимо от MATLAB) для чтения и записи MAT-файла и повторного запуска исполняемого файла для создания новых выходных файлов.
В модели дважды щелкните кнопки последовательно, чтобы запустить пример.
Для просмотра кода, используемого для создания графического интерфейса MATLAB и автономного графического интерфейса, дважды нажмите кнопку View MATLAB programs.
Дополнительные сведения см. в разделе Ускорение, уточнение и тестирование гибридной динамической системы на хост-компьютере с помощью целевого файла системы RSim.
Мишень RSim имеет следующие ограничения:
Не поддерживает алгебраические циклы.
Не поддерживает интерпретируемые функциональные блоки MATLAB.
Не поддерживает неинлинговый язык MATLAB или S-функции Fortran.
Если сборка RSim включает ссылочные модели (с помощью блоков модели), настройте эти модели, чтобы использовать решатели с фиксированным шагом для создания кода для них. Верхняя модель, однако, может использовать решатель с переменным шагом, если блоки в ссылочных моделях являются дискретными.
В некоторых случаях изменение параметров блока может привести к структурным изменениям модели, которые изменят контрольную сумму модели. Примером такого изменения является изменение количества задержек при моделировании DSP. В таких случаях необходимо повторно создать код модели.