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

Этот пример показывает фундаментальные понятия, связанные с данными об управлении с моделью - ссылкой.

Для более детального обсуждения этой темы смотрите Подробный Рабочий процесс для Данных об Управлении с Моделью - ссылкой.

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

Откройте модель в качестве примера

Откройте модель sldemo_mdlref_datamngt в качестве примера.

Содержимое в качестве примера

Этот пример использует топ-модель sldemo_mdlref_datamngt это содержит три блока Model: Counter1, Counter2 и Counter3. Эти блоки ссылаются на ту же модель sldemo_mdlref_counter_datamngt.

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

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

  • Постепенно увеличивает счетчик заданной суммой, если второй вход изменяется

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

Выходные параметры модели, на которые ссылаются, сигнал шины, который содержит:

  • Количество: значение счетчика как 8-битное целое число

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

Схема в качестве примера

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

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

2. Подготовьте топ-модель (sldemo_mdlref_datamngt) вызывать модель, на которую ссылаются.

3. Симулируйте топ-модель и исследуйте результаты.

Модель, на которую ссылаются: подготовка параметров

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

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

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 дает возможность создавать и изменять структуру параметра вне модели. Это также упрощает инкрементные изменения, систему контроля версий и дифференцирование данных.

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

Можно использовать Model Explorer, чтобы просмотреть и отредактировать содержимое рабочего пространства модели.

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

Модель, на которую ссылаются: определение формы сигнала выходной шины

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

  • Количество: значение счетчика как 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. Создайте структуру параметра, которая совместима с сигналом шины, что вы хотите инициализировать. Один из аргументов модели (CounterICs) является структурой параметра, которая совпадает с формой выходного сигнала. Эта структура определилась следующим образом:

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

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

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

Модель, на которую ссылаются: маскирование модели, на которую ссылаются,

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

Топ-модель: параметризация блоков Model

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

1. Откройте топ-модель sldemo_mdlref_datamngt.

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

clear Param1 Param2 IC1 IC2;
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. Установите параметры маски на блоках Model маскированных, чтобы использовать эти параметры.

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

  • Param1 для Встречных параметров

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

Топ-модель: планирование вызовов модели, на которую ссылаются,

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

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

  • Постепенно увеличивает счетчик заданной суммой, если второй вход изменяется.

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

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

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

  • Шаг расчета составляет 0,1 секунды.

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

Симуляция топ-модели

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

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

2. Симулируйте топ-модель путем выбора Simulation> Run.

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

3. Рассмотрите результаты симуляции, как отображено блоками Scope.

Смотрите также

|

Похожие темы