exponenta event banner

Загрузка данных для входного теста

В большинстве случаев входного теста количество моментов времени необходимо минимизировать. Загружаемые данные о сигналах включают в себя выборки с отклонениями и разрывами.

Рекомендации по импорту тестового случая

Обычно при импорте данных тестового случая требуется минимизировать количество моментов времени. Тестовые данные фокусируются на разрывах в данных сигнала.

  • Создайте сигнал с пандусами и шагами. Другими словами, сигнал имеет один или несколько разрывов.

  • Создайте сигнал, используя наименьшее количество возможных точек.

  • Обеспечьте выполнение решателя Simulink ® с указанными разрывами.

Чтобы импортировать этот сигнал в Simulink, используйте блок «Из рабочего пространства», «Из файла» или «Редактор сигналов», которые поддерживают обнаружение пересечения нулей.

Можно загрузить данные следующих типов:

  • A Simulink.SimulationData.Dataset

  • Множество

  • Simulink.SimulationData.Signal

  • Структура

  • Структурный массив, содержащий данные для всех входных портов (не поддерживается блоком редактора сигналов)

  • Пустая матрица - используйте пустую матрицу для портов, для которых требуется использовать базовые значения, без необходимости создания значений данных

  • Выражение времени (не поддерживается блоком редактора сигналов)

Укажите вектор времени и значения сигнала, но укажите только временные шаги в точках, где происходит скачок формы выходного сигнала. Дополнительные сведения об указании вектора времени см. в разделе Указание временных данных.

Используйте любой из форматов входных данных, описанных в разделе Формы входных данных, за исключением временных выражений MATLAB ®.

Пример данных тестового случая

Ниже приведен пример данных тестового случая:

В следующих двух примерах используются эти данные тестового случая.

Использовать из блока рабочего пространства для тестового случая

  1. Открытие модели ex_data_import_test_case_from_workspace.

  2. Включить обнаружение пересечения нулей. В диалоговом окне «Из блока рабочего пространства» выберите «Включить обнаружение пересечения нулей». Обнаружение пересечения нулей позволяет точно фиксировать разрывы.

  3. Создайте структуру сигналов для тестового случая. При каждом разрыве введите повторяющуюся запись в векторе времени, которая создает пересечение нуля и заставляет решатель с переменным шагом делать шаг времени в это точное время. Дополнительные сведения см. в разделе Загрузка данных с помощью блока из рабочего пространства.

    Определите 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;
  4. Для импорта структуры тестового случая в диалоговом окне «Из блока рабочего пространства» в параметре «Данные» укажите var.

  5. Моделирование модели. Блок Scope отражает данные тестового случая.

Использовать блок редактора сигналов для тестового случая

Вместо использования блока «Из рабочего пространства» можно использовать блок редактора сигналов для выполнения следующих действий:

  • Создание сигнала в интерактивном режиме

  • Импорт сигнала из MAT-файла

  1. Создайте модель с помощью блоков «Редактор сигналов», «Усиление» и «Область действия».

  2. Создайте структуру и сохраните ее в 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
    
  3. Откройте диалоговое окно «Редактор сигналов», дважды щелкнув на блоке «Редактор сигналов».

  4. В параметре «Имя файла» введите var.mat.

  5. В параметре Активный сценарий выберите scenario. Нажмите кнопку ОК.

    Отображение блока Scope отражает данные тестового случая из MAT-файла.

Связанные примеры

Подробнее