Объекты осциллографа в реальном времени

Осциллограф использования программного обеспечения Simulink® Real-Time™ возражает, чтобы представлять осциллографы на целевом компьютере. Используйте функции объекта scope, чтобы просмотреть и собрать данные сигнала.

Программное обеспечение Simulink Real-Time использует объекты scopes и scope в качестве альтернативы использованию Осциллографов Simulink и режима external mode. Осциллограф может существовать как часть системы модели Simulink или вне образцовой системы.

  • Осциллограф, который является частью системы модели Simulink, является блоком Scope. Вы добавляете блок Simulink Real-Time Scope в модель, создаете приложение реального времени из той модели и загружаете то приложение на целевой компьютер.

  • Осциллограф, который является вне модели, не является блоком Scope. Например, если вы создаете осциллограф с функцией addscope, тот осциллограф не задан в модели. После того, как модель была загружена и инициализирована, вы добавляете этот осциллограф в модель.

Это различие влияет, когда и как осциллограф выполняется, чтобы получить данные.

Блоки осциллографа наследовали шаги расчета. Блок Scope в корневой модели или нормальной подсистеме выполняется в шаге расчета ее входных сигналов. Блок Scope в условно выполняемом (инициировал/включил) подсистему, выполняется каждый раз, когда содержание подсистемы выполняется. В последнем случае осциллограф может получить выборки в неправильных интервалах.

Осциллограф, который не является частью модели, выполняется в основном шаге расчета модели. Для сигналов с шагом расчета дольше, чем основной шаг расчета, это получает повторенные идентичные выборки. Например, примите, что образцовым основным шагом расчета является 0.001 и что вы динамически добавляете в осциллограф сигнал, шагом расчета которого является 0.005. Осциллограф получает пять идентичных выборок для этого сигнала в каждом шаге расчета сигнала.

Понимание структуры объектов осциллографа помогает вам использовать интерфейс командной строки MATLAB®, чтобы просмотреть и собрать данные сигнала. Объект scope на компьютере разработчика представляет осциллограф на целевом компьютере. Вы используете объекты осциллографа наблюдать сигналы из вашего приложения реального времени во время выполнения в реальном времени или анализировать данные после того, как выполнение будет закончено.

Создать объект scope:

  • Добавьте блок Simulink Real-Time Scope в свою модель Simulink. Чтобы определить тип осциллографа, установите параметр Scope type. Чтобы создать осциллограф на целевом компьютере, создайте и загрузите модель. Используйте функцию объекта приложения реального времени getscope, чтобы создать объект scope на компьютере разработчика.

  • Создайте и загрузите модель. Используйте функцию объекта приложения реального времени addscope, чтобы создать осциллограф на компьютере разработчика. Чтобы определить тип осциллографа, передайте одно из следующих значений как входной параметр: target, host или file.

После создания программное обеспечение Simulink Real-Time присваивает необходимый класс объекта осциллографа для типа осциллографа: SimulinkRealTime.targetScope, SimulinkRealTime.hostScope или SimulinkRealTime.fileScope.

Объект scope имеет свойства и функции, характерные для его типа осциллографа, а также свойств и функций вместе с другими осциллографами. Функции объекта scope позволяют вам управлять осциллографами на своем целевом компьютере.

Чтобы управлять приложением реального времени с клавиатуры целевого компьютера, используйте команды целевого компьютера (см. Приложение реального времени Управления в Командной строке Целевого компьютера).

Отобразите свойства объектов осциллографа для одного осциллографа

Чтобы перечислить свойства одного объекта scope, sc1, в окне MATLAB, вводит:

tg = slrt;
sc1 = getscope(tg,1)

MATLAB создает объект scope sc1 из ранее созданного осциллографа.

Текущие свойства осциллографа загружаются на компьютер разработчика. MATLAB отображает список свойств объектов осциллографа с обновленными значениями. Поскольку sc1 является вектором с одним элементом, вы могли также ввести sc1(1) или sc1([1]).

Примечание

Только осциллографы типа host хранят данные в свойствах scope_object.Time and scope_object.Data.

Для списка свойств объектов приложения реального времени с описанием смотрите целевую функцию SimulinkRealTime.target.

Отобразите свойства объектов осциллографа для нескольких осциллографов

Чтобы перечислить свойства текущих объектов осциллографа, сопоставленных с объектом tg приложения реального времени, в окне MATLAB, введите:

tg = slrt;
getscope(tg)

Функция getscope поддерживает аргументы вектора. Например, чтобы перечислить первые и третьи осциллографы, введите:

getscope(tg,[1,3])

Чтобы присвоить список текущих осциллографов к переменной, введите:

allscopes = getscope(tg)

Для списка свойств объектов приложения реального времени смотрите целевую функцию SimulinkRealTime.target.

Установите значения свойств осциллографа

С программным обеспечением Simulink Real-Time можно использовать синтаксис свойства объекта, чтобы установить одно свойство объекта осциллографа.

scope_object.property_name = new_property_value

Например, чтобы изменить триггерный режим для осциллографа 1, в окне MATLAB, введите:

tg = slrt;
sc1 = getscope(tg, 1);
sc1.triggermode = 'signal'

Вы не можете использовать запись через точку, чтобы установить векторные свойства объектов. Чтобы присвоить значение свойства вектору осциллографов, используйте функцию set. Например, примите, что у вас есть два осциллографа, 1 и 2. Сначала присвойте вектор, содержащий эти осциллографы к переменной sc12:

sc12 = getscope(tg, [1,2]);

Чтобы установить свойство NumSamples этих осциллографов к 300, введите:

set(sc12, 'NumSamples', 300);

Чтобы получить список перезаписываемых свойств, введите scope_object.

Примечание

  • Вы не можете установить свойство вектора осциллографов к вектору значений свойств. Например, вы не можете установить свойство NumSamples векторного sc12 к [100,200].

  • Имена функций являются чувствительными к регистру. Введите целое имя. Имена свойства не являются чувствительными к регистру. Вы не должны вводить целое имя, пока символы, которые вы действительно вводите, уникальны для свойства.

Получите значения свойств осциллографа

Можно перечислить значение свойства в окне MATLAB или присвоить то значение переменной MATLAB. С программным обеспечением Simulink Real-Time можно использовать синтаксис свойства объекта, чтобы получить значения свойств осциллографа.

scope_object_vector(index_vector).property_name

Например, чтобы получить количество выборок от осциллографа 1, в окне MATLAB, введите:

tg = slrt;
sc1 = getscope(tg, 1);
sc1.NumSamples

Чтобы получить значения векторного набора свойств объектов с помощью функции set, можно использовать соответствующую функцию get. Например, примите, что у вас есть два осциллографа, 1 и 2, со свойством NumSamples 300.

Сначала присвойте вектор, содержащий эти осциллографы к переменной sc12.

sc12 = getscope(tg, [1,2]);

Чтобы получить значение NumSamples для этих осциллографов, введите:

get(sc12, 'NumSamples')

Вы получаете результат как:

ans = 
    [300]
    [300]

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

sc12.NumSamples

Вы получаете результат как:

ans = 
    300

ans = 
    300

Чтобы получить список читаемых свойств, введите scope_object. Значения свойств перечислены в окне MATLAB.

Примечание

Имена функций являются чувствительными к регистру. Введите целое имя. Имена свойства не являются чувствительными к регистру. Вы не должны вводить целое имя, пока символы, которые вы действительно вводите, уникальны для свойства.

Используйте определяют объем Функций объекта

Используйте синтаксис функций, чтобы запуститься, объект scope функционирует:

function_name(scope_object, argument_list)

В отличие от свойств, для которых разрешены частичные но однозначные имена, вводят имена функций полностью, в нижнем регистре. Например, чтобы добавить сигналы в первый осциллограф в векторе, содержащем текущие осциллографы, в окне MATLAB, введите:

allscopes = getscope(tg)
addsignal(allscopes(1), [0,1])