Редактирование переходов.
Чтобы создать завершенный переход, нужно: - с помощью кнопки - подвести курсор мыши на изображение исходного узла (например, «Колебания»). Курсор при этом сменится на изображение креста в круге. Затем нажать левую кнопку мыши и, не отпуская ее, переместить мышь на изображение конечного узла (например, «Свободный_полет»). Когда курсор при этом сменится на изображение креста в круге, отпустить кнопку. Исходный и конечный узел может быть один и тот же. Получаем переход из узла «Колебания» в узел «Свободный_полет» Точно таким же образом создаем переход из узла «Свободный_полет» в узел «Останов» (Рис 6.19Рис 6.11).
Рис 6.1911
Чтобы изменить линию перехода, нужно выделить переход, нажать левую кнопку мыши на квадрате, изображающем одну из опорных точек (не крайних), затем, не отпуская кнопки, перемещать мышь и в требуемом положении отпустить кнопку. Для точного указания координат опорных точек необходимо с помощью команды «Координаты точек» всплывающего меню вызвать диалог редактирования координат (на Рис 6.21Рис 6.12 показан этот диалог применительно к выделенному переходу на Рис 6.7Рис 6.5). Замечание. Не забывайте, что в окнах MS Windows ось X направлена вправо, а ось Y вниз.
Рис 6.2112
Чтобы изменить исходный или конечный узел перехода, нужно перетащить мышью соответствующую крайнюю опорную точку на изображение другого узла. В частности, если перетащить ее на свободное поле, можно сделать переход незавершенным.
Чтобы добавить новую опорную точку на линию перехода, нужно выделить переход и с помощью кнопки
Чтобы удалить опорную точку с линии перехода, нужно выделить переход и с помощью кнопки
Чтобы создать незавершенный переход, нужно в режиме создания нового перехода нажимать кнопку или отпускать кнопку вне изображения какого-либо узла, когда курсор имеет форму креста. Завершенный переход можно сделать незавершенным, если «оттащить» крайнюю точку линии перехода от изображения узла и бросить ее на свободном поле. Замечание. Возникает вопрос: а зачем, собственно, нужны незавершенные переходы, если они все равно не попадают в выполняемую модель? Дело в том что, во-первых, незавершенными переходы могут становиться временно, когда либо уничтожается исходный или конечный узел, либо переход «отрывается» от своего исходного или конечного узла. Во-вторых, иногда бывает удобно использовать незавершенный переход как промежуточную форму в процессе редактирования. Например, переход из «Колебания» в «Свободный_полет» можно создать в три приема: сначала создать незавершенный переход (Рис 6.23Рис 6.13а), затем, перетащив его начальную опорную точку на узел «Колебания», сделать его исходным (Рис 6.23Рис 6.13б) и затем, перетащив последнюю опорную точку на узел «Свободный_полет», сделать этот узел конечным (Рис 6.23Рис 6.13в).
а) б) в) Рис 6.2313
Все введенные нами переходы по умолчанию являются безусловными, то есть они сработают немедленно, как только исходный узел станет текущим. Таким образом, работа модели, задаваемая картой поведения, показанной на Рис 6.19Рис 6.11, начнется и закончится «в одно мгновение» во «временной щели» Чтобы этого не случилось, для переходов должны быть определены условия срабатывания. Выделим переход «Колебания» à «Свободный_полет» и с помощью кнопки AlphaMax: double:= pi/4;
Рис 6.2514
Кроме условия в этом переходе имеются еще мгновенные действия, выполняемые при срабатывании перехода – расчет начальных значений составляющих скорости при отрыве маятника. Выделим переход и с помощью кнопки
Рис 6.2715 Аналогичным образом введем условие срабатывания «when y<=Ymin» для перехода «Свободный_полет» à «Останов», добавив предварительно параметр Ymin: double:= -3;
Поместим теперь нашу карту состояния (Рис 6.4Рис 6.3) в узел Init главной карты поведения (Рис 6.3Рис 6.2) и наша модель готова.
|