Derivative
Производная входного сигнала по времени.
Описание
Блок Derivative аппроксимирует производную входного сигнала по времени моделирования . Истинное значение производной
,
аппроксимируется отношением , где — приращение входного сигнала, а — изменение во времени с момента предыдущего (основного) шага расчета.
Этот блок принимает один входной сигнал и выдает один выходной. Начальное значение выходного сигнала равно нулю.
Точное соотношение между входом и выходом блока:
где — текущее время моделирования, а — время вычисления прошлого значения. Последнее совпадает со временем последнего основного временного шага.
Выходной сигнал блока Derivative может быть чувствителен к динамике всей модели. Точность выходного сигнала зависит от размера шага расчета модели. Меньшие шаги позволяют получить более плавную и точную кривую на выходе блока. Однако, в отличие от блоков, которые имеют непрерывные состояния, Solver не выполняет меньших шагов, когда входные данные в этот блок быстро меняются. В зависимости от динамики управляющего сигнала и модели выходной сигнал блока может содержать неожиданные колебания. Эти колебания в первую очередь обусловлены ошибкой выходного сигнала и размером шага решателя.
Из-за этих особенностей структурируйте свои модели так, чтобы использовать интеграторы (например, блоки Integrator) вместо блоков Derivative. Блоки Integrator имеют состояния, которые позволяют Solver регулировать размер шага и повышать точность моделирования.
Если вам необходимо использовать блок Derivative с Solver с переменным шагом, установите максимальный размер шага Solver на такое значение, чтобы блок Derivative мог делать вычисления с достаточной точностью. Чтобы определить это значение, вам может потребоваться запустить моделирование несколько раз с разными настройками Solver.
Если вход в этот блок представляет дискретный сигнал, непрерывная производная входного сигнала выдает импульс при изменении значения входного сигнала. В ином случае она равна 0
. В качестве альтернативы, вы можете определить дискретную производную дискретного сигнала, используя разность последних двух значений сигнала:
Взятие z-преобразования этого уравнения приводит к:
Блок Discrete Derivative моделирует это поведение. Используйте этот блок вместо блока Derivative для аппроксимации производной дискретного сигнала по времени.
Порты
Вход
Port_1 — входной сигнал
real scalar or vector
Сигнал, подлежащий дифференцированию; скаляр или вектор.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
Выход
Port_1 — производная входного сигнала по времени
real scalar or vector
Производная входного сигнала по времени; скаляр или вектор. Входной сигнал дифференцируется по времени как:
где — текущее время моделирования, а — время вычисления прошлого значения. Последнее совпадает со временем последнего основного временного шага.
Типы данных: Float64