Инициализируйте переменные события
events
when initialevent
AssignmentList
end
end
initialevent позволяет задавать начальные значения переменных события в начале симуляции. Тип возвращаемых данных initialevent является event, как описано в Данные о событиях Type и ребра Оператора. Это возвращает true один раз во время симуляции, сразу после того, как инициализация непрерывных переменных закончена.
The initialevent ключевое слово допустимо только внутри when предикат предложения.
Блок PS Asynchronous Sample & Hold в библиотеке Simscape™ Foundation инициализирует переменную события y_held, который содержит дискретизированный сигнал, при помощи параметров блоков.
В этом примере реализуется асинхронная выборка и блок hold, где y_held переменная события инициализируется на основе значения входного физического сигнала IC в начале симуляции.
component ASHold
% Asynchronous Sample and Hold
inputs
IC = {0.0, '1'}; % :left
U = {0.0, '1'}; % :left
T = {0.0, '1'}; % :left
end;
outputs
Y = {0.0, '1'}; % :right
end;
variables (Event = true, Access = private)
y_held = {value = {0.0, '1'}, priority = priority.high};
end
equations
Y == y_held;
end
events
when initialevent
y_held = IC;
elsewhen edge(T > 0)
y_held = U;
end
end
end