Осциллограф использования программного обеспечения 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])