Моделирование в MATLAB/Simulink и SCILAB/Scicos - page 270

268
Из рис. 29.13, 29.14 видно, что за период времени
10
=
t
число сардин
остается постоянным, как и на рис. 29.9.
29. 3. Синхронизм и специальные блоки
Когда два блока активируются одним генератором событий (например,
Event Clock
) говорят, что они
синхронизированы
. В данном случае они
активируются в одно и то же время, и если выход одного присоединен к входу
другого, то компилятор обеспечивает корректную последовательность их
запуска. Синхронизация является важным элементом. Два блока активируемые
от двух разных генераторов событий точно в одно и то же время не являются
синхронизированными. Даже, если они активируются строго в одно и то же
время, блоки могут быть запущены симулятором в произвольном порядке.
События могут быть синхронными, но протекать в разное время.
Например, одна последовательность событий может являться подмножеством
другой последовательности событий.
Рассмотрим два источника событий. Пусть один источник генерирует
последовательность событий с частотой 2, а другой – с частотой 1. В данном
случае события, генерируемые с более высокой частотой по времени совпадают
с событиями, генерируемыми с меньшей частотой. Если данные события
генерируются независимыми источниками, то они не являются синхронными.
Таким образом, даже если два события являются одновременными, то блоки,
активируемые ими, могут запускаться симулятором в произвольном порядке.
Чтобы обеспечить синхронность в данном случае необходимо, чтобы источник
активации был один и тот же, например, один генератор событий. В данном
случае это означает, что события с меньшей частотой получаются в результате
выборки из последовательности событий с более высокой частотой.
В Scicos есть два специальных блока:
If-then-else
и блок выбора события,
которые располагаются в наборе блоков
Branching
. Несмотря на то, что они
выглядят как блоки и допускают с собой обычные операции для блоков, они
такими не являются. Эти блоки генерируют события синхронно с событиями,
которые их активировали. Данные блоки можно рассматривать как аналоги
условных операторов
if-then-else
и
switch
в языке C, и используются для
выборки сигналов по условию из последовательности активирующих сигналов.
Рассмотрим схему на рисунке 29.15.
If-then-else
блок полученные события
на вход пересылает на свой
then
выходной порт, таким образом, активируется
блок 1/
z
, если на вход поступает положительный сигнал. Иначе сигнал
отсылается на выходной порт
else
, к которому может быть подключено что-то
еще.
Square wave generator
воспроизводит серию из чередующихся +1 и
1
.
Каждый раз, когда блок 1/
z
активируется, он добавляет выход с генератора к
своему содержимому, изначально установленному в ноль. Поскольку данный
блок активируется только, когда выход с генератора положителен, то
содержимое блока 1/
z
увеличивается на 1 через раз (рис.29.16).
1...,260,261,262,263,264,265,266,267,268,269 271,272,273,274,275,276,277,278,279,280,...286
Powered by FlippingBook