Осциллограф использования программного обеспечения Simulink® Real-Time™ возражает, чтобы представлять осциллографы на целевом компьютере. Используйте функции объекта scope, чтобы просмотреть и собрать данные сигнала.
Программное обеспечение Simulink Real-Time использует объекты scopes и scope в качестве альтернативы использованию Осциллографов Simulink и режима external mode. Осциллограф может существовать как часть системы модели Simulink или вне системы модели.
Осциллограф, который является частью системы модели Simulink, является блоком Scope. Вы добавляете блок Simulink Real-Time Scope в модель, создаете приложение реального времени из той модели и загружаете то приложение на целевой компьютер.
Осциллограф, который является вне модели, не является блоком Scope. Например, если вы создаете осциллограф с addscope функция, тот осциллограф не задан в модели. После того, как модель была загружена и инициализирована, вы добавляете этот осциллограф в модель.
Это различие влияет, когда и как осциллограф выполняется, чтобы получить данные.
Блоки Scope наследовали шаги расчета. Блок 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])