exponenta event banner

Функции генерации сигналов

В блоке Тестовая последовательность можно генерировать сигналы для тестирования.

  1. Определите символ выходных данных на панели «Символы данных».

  2. Используйте выходное имя с функцией генерации сигнала в действии шага тестирования.

Внешние функции можно вызвать из блока тестовой последовательности. Определите функцию в сценарии на пути MATLAB ® и вызовите функцию в тестовой последовательности.

Функции синусоидальных и случайных чисел в тестовых последовательностях

В этом примере показано, как создать сигнал проверки синуса и случайного числа в блоке тестовой последовательности.

Шаг Sine выводит синусоидальную волну с периодом 10 секунд, определяемым аргументом et*2*pi/10. Шаг Random выводит случайное число в интервале -0.5 to 0.5.

Тестовая последовательность выдает сигнал sg.

Использование внешней функции из блока тестовой последовательности

В этом примере показано, как вызвать внешнюю функцию из блока тестовой последовательности. Определите функцию в сценарии на пути MATLAB ® и вызовите функцию из тестовой последовательности.

В этом примере шаг ReducedSine уменьшает сигнал sg использование функции Attenuate.

Тестовая последовательность выдает сигнал sg и ослабленный сигнал asg.

Функции генерации сигналов

Некоторые функции генерации сигнала используют временной оператор et, которое представляет собой прошедшее время этапа тестирования в секундах. Масштабирование, округление и другие аппроксимации значений аргументов могут влиять на выходные данные функции. Общие функции формирования сигналов включают в себя:

ФункцияСинтаксисОписаниеПример
квадратsquare(x)

Представляет выходной сигнал квадратной волны с периодом 1 и диапазон –1 кому 1.

В пределах интервала 0 <= x < 1, square(x) возвращает значение 1 для 0 <= x < 0.5и –1 для 0.5 <= x < 1.

square не поддерживается в диаграммах Stateflow ®.

Вывод квадратной волны с периодом 10 сек:

square(et/10)
зуб пилыsawtooth(x)

Представляет выход пилообразной волны с периодом 1 и диапазон –1 кому 1.

В пределах интервала 0 <= x < 1, sawtooth(x) увеличивается.

sawtooth не поддерживается в диаграммах Stateflow.

Вывод пилообразной волны с периодом 10 сек:

sawtooth(et/10)
треугольникtriangle(x)

Представляет выходной сигнал треугольника с периодом 1 и диапазон –1 кому 1.

В пределах интервала 0 <= x < 0.5, triangle(x) увеличивается.

triangle не поддерживается в диаграммах Stateflow.

Вывести треугольную волну с периодом 10 сек:

triangle(et/10)
пандусramp(x)

Представляет наклонный сигнал наклона 1, возвращая значение клина в момент времени x.

ramp(et) фактически возвращает прошедшее время тестового этапа.

ramp не поддерживается в диаграммах Stateflow.

Наклонить один блок на каждые 5 секунд прошедшего этапа испытания:

ramp(et/5)
heavisideheaviside(x)

Представляет тяжелый сигнал шага , возвращаемый 0 для x < 0 и 1 для x >= 0.

heaviside не поддерживается в диаграммах Stateflow.

Вывести тяжелый сигнал после 5 секунды:

heaviside(et-5)
замокlatch(x)

Сохраняет значение x в первый раз latch(x) вычисляет на этапе теста, а затем возвращает сохраненное значение x. Сбрасывает сохраненное значение x при выходе из шага. Переоценивает latch(x) когда следующий шаг активен.

latch не поддерживается в диаграммах Stateflow.

Замок b к значению torque:

b = latch(torque)
sinsin(x)

Возвращает синус x, где x находится в радианах.

Синусоидальная волна с периодом 10 с:

sin(et*2*pi/10)
coscos(x)

Возвращает косинус x, где x находится в радианах.

Косинусная волна с периодом 10 с:

cos(et*2*pi/10)
randrand

Равномерно распределенные псевдослучайные значения

Создание новых случайных значений для каждого моделирования путем объявления rand внешний с coder.extrinsic. Присвойте случайное число локальной переменной. Например:

coder.extrinsic('rand')
nr = rand
sg = a + (b-a)*nr
randnrandn

Обычно распределенные псевдослучайные значения

Создание новых случайных значений для каждого моделирования путем объявления randn внешний с coder.extrinsic. Присвойте случайное число локальной переменной. Например:

coder.extrinsic('randn')
nr = randn
sg = nr*2
expexp(x)

Возвращает натуральную экспоненциальную функцию, например.

Экспоненциальный сигнал, прогрессирующий через одну десятую от времени, прошедшего тестовый этап:

exp(et/10)

См. также

|

Связанные темы