Для большинства входных тестов вы пытаетесь минимизировать количество временных моментов. Данные о сигнале, который вы загружаете, включают выборки с пандусами и разрывами.
Обычно при импорте данных теста необходимо минимизировать количество временных моментов. Тестовые данные фокусируются на разрывах в данных сигнала.
Создайте сигнал, который имеет пандусы и шаги. Другими словами, сигнал имеет одну или несколько прерываний.
Создайте сигнал с помощью максимально возможного количества точек.
Иметь Simulink® выполнение решателя при заданных разрывах.
Чтобы импортировать этот сигнал в Simulink, используйте From Workspace, From File или Signal Editor блок, все из которых поддерживают обнаружение пересечения нулем.
Можно загрузить данные следующих типов:
A Simulink.SimulationData.Dataset
Массив
Simulink.SimulationData.Signal
Структура
Массив структур, содержащий данные для всех входных портов (не поддерживается блоком Signal Editor)
Пустая матрица - Используйте пустую матрицу для портов, для которых вы хотите использовать значения земли, не создавая значений данных
Выражение времени (не поддерживается блоком Signal Editor)
Задайте временной вектор и значений сигналов, но задайте только временные шаги в точках, где форма выхода скачет. Для получения дополнительной информации об указании вектора временного вектора Раздел «Задание временных данных».
Используйте любой из форматов входных данных, описанных в Формах входных данных, кроме MATLAB® выражения времени.
Следующий пример теста данных:
В следующих двух примерах используются эти данные теста.
Откройте модель ex_data_import_test_case_from_workspace
.
Включите обнаружение пересечения нулем. В From Workspace диалогового окна блока выберите Enable zero-crossing detection. Обнаружение пересечения нулем позволяет вам точно захватывать разрывы.
Создайте сигнальную структуру для теста. При каждом разрыве вводите повторяющуюся запись в временной вектор, которая генерирует пересечение нуля и заставляет решатель переменного шага взять временной шаг в это точное время. Для получения дополнительной информации смотрите Загрузка данных с использованием блока рабочей области.
Определите var
структура, представляющая тест:
var.time = [0 1 1 5 5 8 8 10]; var.signals.values = [0 0 2 2 2 3 3 3]'; var.signals.dimensions = 1;
Чтобы импортировать структуру теста, в диалоговом окне блока Из рабочей области, в параметре Data, задайте var
.
Симулируйте модель. Блок Scope отражает данные теста.
Вместо использования блока From Workspace можно использовать блок Signal Editor для:
Создайте сигнал в интерактивном режиме
Импорт сигнала из MAT-файла
Создайте модель с Signal Editor, Gain и Scope блоками.
Создайте структуру и сохраните ее в MAT-файле:
scenario = Simulink.SimulationData.Dataset; time = [0 1 1 5 5 8 8 10]; data = [0 0 2 2 2 3 3 3]'; scenario{1} = timeseries(data,time); scenario{1}.Name = 'var'; save var.mat scenario
Откройте диалоговое окно Signal Editor, дважды кликнув по блоку Signal Editor.
В параметре Имя файла введите var.mat
.
В параметре Active scenario выберите scenario
. Нажмите OK.
Отображение Scope блока отражает данные теста из MAT-файла.