exponenta event banner

Введение в управление данными со ссылкой на модель

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

Более подробное обсуждение этой темы см. в разделе Подробный рабочий процесс для управления данными со ссылкой на модель.

ПРИМЕЧАНИЕ: В этом примере используется та же модель, что и в более подробном примере. В результате модель использует некоторые особенности, которые не описаны в данном вводном примере.

Примерные требования

В этом примере Simulink ® создает код в папке создания кода, созданной в текущей папке. Если вы не хотите (или не можете) создавать файлы в этом каталоге, необходимо изменить рабочий каталог.

Если планируется изменить примеры моделей:

1. Сохраните пример в исходном состоянии путем копирования следующих файлов из каталога установки MATLAB ® без изменения их имен в другой каталог:

toolbox/simulink/simdemos/simfeatures/modelreference/sldemo_mdlref_datamngt.slx
toolbox/simulink/simdemos/simfeatures/modelreference/sldemo_mdlref_datamngt_wsdata.m
toolbox/simulink/simdemos/simfeatures/modelreference/sldemo_mdlref_counter_datamngt.slx
toolbox/simulink/simdemos/simfeatures/modelreference/sldemo_mdlref_counter_datamngt_types.m
toolbox/simulink/simdemos/simfeatures/modelreference/sldemo_mdlref_counter_datamngt_wsdata.m

2. Измените текущий каталог на каталог, в который были скопированы файлы.

3. Продолжите с примера.

Открытие модели примера

open_system('sldemo_mdlref_datamngt')

Содержимое примера

В этом примере используется модель верхнего уровня (sldemo_mdlref_datamngt), который содержит три блока модели: Counter1, Counter2 и Counter3. Эти блоки ссылаются на одну и ту же модель (sldemo_mdlref_counter_datamngt).

Ссылочная модель реализует алгоритм ограниченного счетчика, который:

  • Сбрасывает счетчик при изменении первого входного сигнала триггера

  • Увеличивает значение счетчика на заданную величину при изменении второго ввода

  • Насыщает счетчик между указанными верхним и нижним пределами

Ссылочная модель выводит сигнал шины, который содержит:

  • Count: значение счетчика в виде 8-разрядного целого числа

  • OverflowState - перечисляемое значение, указывающее, находится ли счетчик на верхнем пределе, нижнем пределе или в диапазоне

Пример структуры

Последовательность этапов в примере следующая:

1. Подготовить ссылочную модель (sldemo_mdlref_counter_datamngt) использовать структуры для сигналов и параметров во внешнем интерфейсе.

2. Подготовить верхнюю модель (sldemo_mdlref_datamngt) для вызова ссылочной модели.

3. Моделирование модели верхнего уровня и анализ результатов.

Ссылочная модель: Настройка параметров

Ссылочная модель имеет два аргумента модели (CounterParams, CounterIC), которые параметризуют блоки в модели. Аргументы модели предоставляют различные значения параметров для каждого экземпляра ссылочной модели. В этой модели аргументы определяются как структуры параметров для уменьшения числа аргументов, передаваемых ссылочной модели.

Процесс определения аргументов модели выглядит следующим образом:

1. Откройте ссылочную модель (sldemo_mdlref_counter_datamngt).

2. Определите структуры MATLAB для параметризации ссылочной модели.

CounterParams.Increment  = int8(1);
CounterParams.LowerLimit = int8(-10);
CounterParams.UpperLimit = int8(10);
CounterICs.Count         = int8(0);
CounterICs.OverflowState = SlDemoRangeCheck.InRange;

ПРИМЕЧАНИЕ: В этом примере для счетчика используется 8-разрядное целое число, поэтому в числовых полях также используются 8-разрядные целые числа.

3. Используйте структуры MATLAB в качестве аргументов модели.

Аргументы модели определяются как переменные в рабочем пространстве модели ссылочной модели. Рабочую область модели можно инициализировать из нескольких различных источников данных. В этом примере используется сценарий MATLAB (sldemo_mdlref_counter_datamngt_wsdata) для создания структур параметров для аргументов модели. Использование сценария MATLAB упрощает создание и изменение структуры параметров вне модели. Это также облегчает инкрементные изменения, контроль версий и разностные данные.

Задайте источник данных в диалоговом окне рабочего пространства модели.

Обозреватель моделей можно использовать для просмотра и правки содержимого рабочего пространства модели.

Установите флажок Аргумент (Argument), чтобы настроить переменные в качестве аргументов модели.

Ссылочная модель: Определение формы выходного сигнала шины

Ссылочная модель дает два результата и упаковывает их в сигнал шины:

  • Count: значение счетчика в виде 8-разрядного целого числа

  • OverflowState - перечисляемое значение, указывающее, находится ли счетчик на верхнем пределе, нижнем пределе или в диапазоне

Чтобы определить тип шины для корневого вывода ссылочной модели:

1. Используйте редактор шины для определения объекта шины (OutputType).

Можно также создать объект шины в командной строке MATLAB:

OutputType = Simulink.Bus;
OutputType.Elements = Simulink.BusElement;
OutputType.Elements(1).Name = 'Count';
OutputType.Elements(1).DataType = 'int8';
OutputType.Elements(2) = Simulink.BusElement;
OutputType.Elements(2).Name = 'OverflowState';
OutputType.Elements(2).DataType = 'Enum: SlDemoRangeCheck';

2. Настройте корневой аутпорт ссылочной модели для вывода невиртуального сигнала шины на основе этого объекта шины (OutputType).

Ссылочная модель: Установка начального значения для вывода шины

В общем, начальные значения сигналов и состояний шины могут быть определены как «0», и в этом случае все элементы шины будут инициализированы как ноль (или соответствующее значение земли). Однако в некоторых случаях желательно задавать ненулевые начальные значения для сигналов и состояний шины. В этом примере начальное состояние счетчика настраивается, поэтому начальное значение выходного сигнала должно быть установлено последовательно.

Чтобы указать начальное значение вывода ссылочной модели:

1. Создайте структуру параметров, совместимую с сигналом шины, который требуется инициализировать. Одним из аргументов модели (CounterIC) является структура параметров, которая соответствует форме выходного сигнала. Эта структура была определена следующим образом:

CounterICs.Count         = int8(0);
CounterICs.OverflowState = SlDemoRangeCheck.InRange;

2. Откройте диалоговое окно для корневого исходящего порта и введите имя структуры (CounterIC) в поле Initial output.

ПРИМЕЧАНИЕ: Как правило, при инициализации сигнала или состояния шины структура параметров не должна точно соответствовать типу шины, но ее поля должны быть подмножеством элементов в объекте шины, а атрибуты этих полей должны соответствовать элементам в объекте шины.

Ссылочная модель: Маскирование ссылочной модели

Часто для настройки пользовательского интерфейса полезно маскировать ссылочную модель. Для модели можно создать маску, а затем создать ссылку на нее из блока модели. Чтобы замаскировать модель, щелкните Создать маску модели (Create Model Mask) в разделе рабочего пространства модели Обозревателя моделей (Model Explorer) для модели.

При ссылке на маскированную модель из блока модели автоматически создается маска для блока модели. Дополнительные сведения см. в разделе Создание и ссылка на маскированную модель.

Верхняя модель: Параметризация блоков модели

Ссылочная модель настроена на принятие структуры для ее аргумента модели. В этом примере каждый экземпляр ссылочной модели вызывается с различными значениями параметров.

1. Откройте верхнюю модель (sldemo_mdlref_datamngt).

2. Создайте структуры параметров с той же «формой», что и аргументы модели, определенные в ссылочной модели.

Param1.Increment  = int8(1);
Param1.LowerLimit = int8(-20);
Param1.UpperLimit = int8(20);
Param2 = Param1;
Param2.Increment  = int8(2);
IC1.Count         = int8(0);
IC1.OverflowState = SlDemoRangeCheck.InRange;
IC2 = IC1;
IC2.Count = int8(-10);

3. Задайте параметры маски для маскированных блоков модели, чтобы использовать эти параметры.

Например, параметры первого блока модели ('sldemo_mdlref_datamngt/Counter1') устанавливаются как:

  • Param1 параметров счетчика

  • IC1 для начальных условий

Главная модель: планирование вызовов ссылочной модели

Как упоминалось ранее, ссылочная модель реализует алгоритм ограниченного счетчика с двумя входами триггера. Алгоритм обнаруживает «растущие края» на входах триггера и реагирует следующим образом:

  • Сбрасывает счетчик при изменении первого входного сигнала триггера.

  • Увеличивает значение счетчика на заданную величину при изменении второго ввода.

В этом примере управляются все три экземпляра алгоритма счетчика с одинаковыми входами триггера, генерируемыми подсистемой Стимула. Период и время выборки входов триггера определяются значениями, введенными для параметров маски подсистемы Стимула:

  • Сброс счетчика каждые 4 секунды.

  • Счетчик приращения 5 раз в секунду (период = 0,2 секунды).

  • Время выборки составляет 0,1 секунды.

ПРИМЕЧАНИЕ: Периоды сброса и приращения должны быть не менее чем в 2 раза больше времени выборки.

Моделирование верхней модели

1. Сохраните или закройте ссылочную модель.

Необходимо сохранить ссылочную модель, прежде чем ее можно будет использовать в верхней модели. Можно также закрыть ссылочную модель и использовать исходную версию модели, приведенную в этом примере.

2. Смоделировать верхнюю модель, выбрав Моделирование (Simulation) > Выполнить (Run).

sim('sldemo_mdlref_datamngt')

ПРИМЕЧАНИЕ. При моделировании модели верхнего уровня автоматически создается цель моделирования для ссылочной модели.

3. Просмотрите результаты моделирования, отображаемые блоками области.