Можно передать данные сигнала потоком к функции обратного вызова MATLAB® во время моделирования с помощью функциональности Доступа к данным в Instrumentation Properties для сигнала. Функция, которую вы обеспечиваете, получает данные в пакетах асинхронно в течение моделирования. Функция обратного вызова выполняется каждый раз, когда она получает новые данные. Можно записать функцию обратного вызова, чтобы обработать данные сигнала во время моделирования или создать пользовательскую визуализацию сигнала во время моделирования. Функция обратного вызова не влияет на значения сигналов в вашей модели. Доступ к данным не поддерживает Быстрый Режим Accelerator или строку, фиксированную точку, матрицу, или соединяет шиной сигналы. Этот пример иллюстрирует шаги, требуемые получить доступ к данным сигнала во время моделирования с помощью простой функции обратного вызова, которая строит график сигнала.
Функция обратного вызова доступа к данным всегда получает данные сигнала в качестве первого аргумента. Можно принять решение отправить время симуляции и параметр. Когда вы включаете все три аргумента, время симуляции является вторым аргументом. Ваша функция обратного вызова может быть характерна для единственного сигнала, или можно использовать тот же обратный вызов, чтобы обработать и визуализировать несколько сигналов. Функция обратного вызова только имеет доступ к данным для единственного сигнала за один раз. Этот пример создает функцию обратного вызова, которая получает данные сигнала, время, и параметр раньше идентифицировал, какой сигнал функция обрабатывает для данного вызова.
Создайте свою функцию обратного вызова в m-файле с тем же именем как ваша функция. Для получения дополнительной информации о записи функций MATLAB, смотрите, Создают Функции в Файлах (MATLAB). Функция обратного вызова в качестве примера использует дополнительный параметр, чтобы присвоить числовой идентификатор каждому сигналу. Параметр используется, чтобы создать уникальную фигуру для каждого сигнала и присвоить каждый сигнал различный цвет линии. Чтобы накопить данные сигнала на графике, обратный вызов включает hold on
. Для каждого вызова обратного вызова функция получает фрагмент данных сигнала. Можно использовать обратный вызов, чтобы накопить пакеты при желании.
function plotSignals(y,time,sigNum) figure(sigNum) if isequal(sigNum,1) marker = 'ro-'; elseif isequal(sigNum,2) marker = 'go-'; else marker = 'bo-'; end hold on; plot(time,y,marker); end
Функция обратного вызова не обеспечивает возвращаемых значений. Если вы задаете функцию с возвратами, данные возврата отбрасывается.
Используйте assignin
, чтобы получить доступ к данным от функции обратного вызова в базовом рабочем пространстве.
Сохраните функцию обратного вызова в месте на пути MATLAB. Если местоположение, где вы сохраняете обратный вызов, не находится на пути, можно добавить его к пути. Щелкните правой кнопкой по директории, содержащей обратный вызов в разделе Current Folder в MATLAB, и выберите Add to Path.
К данным доступа для сигнала с обратным вызовом доступа к данным необходимо регистрировать сигнал. Чтобы отметить сигнал для журналирования, щелкните правой кнопкой по сигналу по своей модели и выберите Log Selected Signals. Чтобы сконфигурировать доступ к данным для сигнала, щелкните правой кнопкой по значку журналирования и выберите Properties. На вкладке Data Access Instrumentation Properties можно задать имя функции обратного вызова, занимает ли функция обратного вызова время в качестве аргумента и дополнительного значения параметров.
Например, откройте модель vdp
и сконфигурируйте x1
и сигналы x2
использовать обратный вызов от предыдущего раздела.
Введите vdp
в окно Команды MATLAB.
Выберите сигналы x2
и x1
. Затем щелкните правой кнопкой по выбранным сигналам и выберите Log Selected Signals из контекстного меню.
Чтобы открыть Instrumentation Properties, щелкните правой кнопкой по значку журналирования для x1
и выберите Properties.
На панели Доступа к данным введите имя обратного вызова, проверка Включают время симуляции и вводят 1
как Параметр функции.
Откройте Instrumentation Properties для x2
и сконфигурируйте панель Доступа к данным, чтобы использовать обратный вызов plotSignals
со значением Параметра функции 2
.
Моделируйте модель vdp
. Обратный вызов генерирует рисунки 1 и 2, чтобы отобразить x1
и сигналы x2
во время моделирования.
Можно изменить функцию обратного вызова, чтобы создать пользовательскую визуализацию или создать график обработанных данных сигнала. Ошибки, связанные с функцией обратного вызова доступа к данным, не прерывают моделирование. Ошибки появляются в Диагностическом Средстве просмотра как предупреждение.