ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.01.2021

Просмотров: 784

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

230 

События

создаются

путем

выбора

пункта

меню

 Add – Event 

и

далее

последовательности

 Event – Local, Event – Input from Simulink 

и

т

.

д

В

результате

появляется

диалоговое

окно

 Event, 

где

определяется

конкретное

имя

события

и

его

характеристики

в

перечне

которых

важнейшей

является

установка

вида

события

в

поле

 Trigger. 

В

большинстве

случаев

события

могут

рассматриваться

как

скачкообразные

изменения

  (

переключения

состояний

сопровождающиеся

резкими

изменениями

уровня

соответствующих

сигналов

при

этом

могут

быть

события

следующего

вида

: Rising – 

с

повышением

уровня

сигнала

; Falling 

– 

с

понижением

уровня

; Either – 

с

любым

направлением

изменения

уровня

События

могут

также

создаваться

и

модифицироваться

в

диалоговом

окне

обозревателя

 Stateflow Explorer, 

выбираемом

в

рамках

пункта

основного

меню

 Tools – Explorer. 

Другими

основными

неграфическими

объектами

 SF-

модели

являются

данные

 (Date). 

Они

представляют

числовые

значения

переменных

используемых

в

модели

Данные

имеют

свойства

(

классические

типы

), 

а

также

область

видимости

 (Scope). 

Как

и

события

данные

могут

быть

локальными

входными

выходными

импортируемыми

и

экспортируемыми

Кроме

того

данные

могут

определяться

как

константы

и

временные

  (

промежуточные

переменные

Для

создания

и

модификации

данных

следует

воспользоваться

пунктом

меню

 Add – Date, 

а

также

обозревателем

 Stateflow Explorer, 

выбираемом

в

рамках

пункта

меню

 Tools – Explorer. 

Еще

одним

классом

неграфических

объектов

 SF-

моделей

являются

действия

или

процедуры

 (Action). 

Они

определяют

любые

операции

связанные

с

преобразованием

данных

работой

 SF-

модели

и

управлением

процессом

ее

функционирования

Для

описания

процедур

служит

специальный

язык

 Action Language, 

построенный

на

основе

синтаксиса

языка

 C 

и

содержащий

арифметические

и

логические

операторы

функции

определяемые

пользователем

а

также

некоторые

специальные

функции

Следует

отметить

следующие

процедуры

часто

используемые

при

построении

 SF-

моделей

chg (data_name) – 

процедура

генерации

локального

события

в

случае

изменения

значений

переменной

 data_name; 

in (state_name) – 

логическая

функция

имеющая

значение

 true, 

когда

состояние

 state_name 

активно


background image

231

send (event_name, state_name) – 

процедура

пересылки

спецификации

события

 event_name 

состоянию

 state_name (

прямая

передача

событий

); 

ml (

function_name (a, b,…)

) – 

процедура

вызывающая

функцию

сформированную

в

 MATLAB 

и

выполняющую

вычисления

для

значений

перечисленных

аргументов

ml.datam_name – 

процедура

предоставляющая

доступ

к

переменной

datam_name 

рабочей

области

 MATLAB. 

Процедуры

используются

для

описания

 SF-

диаграммы

в

рамках

двух

моделей

конечных

автоматов

модели

Мура

связывающей

процедуры

с

состояниями

модели

Мили

связывающей

процедуры

с

переходами

Для

того

чтобы

реализовать

выбранный

алгоритм

работы

 SF-

модели

необходимо

выполнить

описание

введенных

состояний

и

переходов

между

ними

а

также

используемых

данных

При

создании

состояния

с

помощью

кнопки

 State 

в

левом

верхнем

углу

его

графического

образа

появляется

знак

вопроса

На

его

место

вводится

описание

состояния

которое

в

простейшем

случае

должно

определять

имя

состояния

В

общем

случае

описание

состояния

имеет

следующую

структуру

  (

см

пример

рис

. 6.20). 

Первым

вводится

имя

состояния

Далее

через

косую

черту

может

вводится

: entry: 

и

группа

действий

выполняемых

при

входе

в

состояние

; during: 

и

группа

действий

выполняемых

пока

данное

состояние

активно

; exit: 

и

группа

действий

выполняемых

при

выходе

из

состояния

; on event_name: 

и

группа

действий

выполняемых

в

момент

возникновения

события

 event_name 

при

пребывании

в

данном

состоянии

Для

описания

перехода

следует

поместить

указатель

мыши

на

соединительную

линию

и

нажать

левую

кнопку

Около

линии

появится

знак

вопроса

На

его

место

следует

ввести

описание

или

метку

перехода

которая

определяет

условия

срабатывания

перехода

и

выполняемые

при

этом

процедуры

В

общем

случае

структура

метки

перехода

состоит

из

нескольких

частей

и

имеет

следующий

вид

 (

см

пример

рис

. 6.20): 

 
event_name [condition] {condition_action}/transition_action , 
 

где

 event_name – 

имя

события

которое

инициирует

переход

; condition – 

условие

перехода

в

виде

булевского

выражения

инициирующего

переход


background image

232 

в

случае

его

истинности

; condition_action – 

действие

условия

выполняемое

мгновенно

после

того

как

стало

истинным

условие

перехода

но

до

того

как

выполнен

весь

переход

  (

не

определилось

состояние

-

адресат

); transition_action – 

действие

перехода

совершаемое

при

переходе

и

уже

найдено

состояние

-

адресат

.  

При

программировании

метки

перехода

может

отсутствовать

любая

ее

часть

Переход

происходит

при

наступлении

события

но

с

учетом

истинности

условия

если

оно

определено

Определение

условия

не

обязательно

Также

может

отсутствовать

имя

события

Тогда

переход

происходит

при

выполнении

условия

и

наступлении

любого

события

SF-

диаграмма

может

реализовывать

иерархическую

структуру

вложенных

состояний

  (

рис

. 6.20). 

Это

означает

что

каждое

состояние

имеет

состояние

-

родителя

Для

 SF-

диаграммы

состоящей

из

одного

состояния

родителем

является

сама

 SF-

диаграмма

Для

того

чтобы

получить

вложенные

состояния

необходимо

с

помощью

мыши

перетащить

один

блок

-

состояние

в

другой

предварительно

увеличив

размеры

последнего

Эти

размеры

регулируются

также

с

помощью

мыши

для

чего

необходимо

поместить

ее

указатель

в

один

из

скругленных

углов

прямоугольника

.  

При

выполнении

действий

адрес

любого

вложенного

состояния

с

именем

 state_name1 

указывается

как

 state_name.state_name1, 

где

state_name – 

имя

состояния

-

родителя

.  

Stateflow 

поддерживает

создание

как

взаимоисключающих

 (OR), 

так

и

параллельных

 (AND) 

состояний

Для

определения

параллельных

состояний

предварительно

помещенных

в

окне

 SF-

диаграммы

необходимо

щелкнув

левой

кнопкой

мыши

в

поле

внешнего

состояния

-

родителя

выбрать

в

раскрывающемся

меню

пункт

 Decomposition – 

Parallel (AND). 

В

результате

границы

параллельных

состояний

отображаются

пунктирной

линией

а

в

правых

верхних

углах

блоков

автоматически

устанавливаются

их

номера

При

подготовке

 SF-

модели

к

работе

требуется

установить

параметры

модели

с

помощью

диалогового

окна

вызываемого

при

выборе

команды

Chart Properties, 

входящей

в

пункт

меню

 File 

графического

редактора

Окно

содержит

элементы

определяющие

имя

 SF-

диаграммы

имя

 S-

модели

и

/

или

 SF-

диаграммы

более

высокого

уровня

в

которых

размещается

данная

модель

раскрывающийся

список

 Update method, 


background image

233

определяющий

используемый

метод

управления

динамикой

работой

 SF-

диаграммой

из

 Simulink; 

поле

параметра

дискретизации

по

времени

Sample time; 

вспомогательные

флажки

устанавливающие

возможности

использования

данных

 Simulink, 

варианты

инициализации

и

задания

точек

остановки

модели

возможности

модификации

модели

и

т

.

п

Весьма

существенным

является

выбор

установки

 Update method. 

Она

имеет

три

основных

варианта

:  

Inherited – 

метод

реализующий

управление

 SF-

диаграммы

внешними

событиями

что

приводит

к

активизации

модели

каждый

раз

когда

на

триггерный

порт

диаграммы

поступает

управляющий

сигнал

Discrete – 

метод

при

котором

периодичность

активизации

  

SF-

диаграммы

задается

параметром

 Sample time, 

при

этом

 Simulink 

автоматически

генерирует

управляющие

события

с

соответствующей

периодичностью

;  

Continuous – 

непрерывный

метод

активизации

 SF-

диаграммы

на

каждом

шаге

моделирования

установленном

для

 Simulink. 

Помимо

рассмотренных

компонентов

разработки

и

управления

  

SF-

моделей

следует

также

выделить

встроенный

отладчик

вызываемый

в

пункте

меню

 Tools – Debug, 

синтаксический

анализатор

ошибок

 (Tools – 

Parse), 

а

также

средства

поиска

объектов

заданного

типа

 (Tools – Find). 

Принципы

их

использования

подробно

рассматриваются

в

специальной

литературе

Рассмотрим

теперь

технологию

создания

 SF-

моделей

на

примере

простейших

систем

массового

обслуживания

Первой

рассмотрим

систему

с

одним

каналом

без

накопителя

(M/M/1/0). 

Такая

система

подробно

описана

в

п

. 4.1. 

Она

имеет

два

состояния

канал

обслуживания

свободен

 (free); 

канал

обслуживания

занят

(busy). 

Факторами

определяющими

эффективность

обработки

заявок

являются

интенсивность

входного

потока

заявок

 Li 

и

интенсивность

потока

обслуживания

 Lo. 

Значения

этих

параметров

определяются

в

 m-

файле

УП

  (

см

рис

. 6.19). 

Показателем

эффективности

является

относительная

пропускная

способность

системы

 q, 

определяемая

как

отношение

среднего

количества

обслуженных

заявок

к

среднему

количеству

поступивших

заявок

в

единицу

времени

При

построении

 S-

моделей

в

которых

используются

блоки

  

Stateflow, 

содержащие

в

себе

переходы

инициируемые

истечением


background image

некоторых

временных

интервалов

  (

что

характерно

для

СМО

), 

требуется

обеспечить

синхронизацию

внутреннего

системного

времени

 Stateflow 

и

Simulink. 

Для

этого

необходимо

в

качестве

входного

параметра

подавать

в

SF-

диаграмму

системное

время

 (systime) 

из

 Simulink 

и

именно

это

время

использовать

для

составления

условий

переходов

.  

Другой

возможный

способ

состоит

в

том

чтобы

использовать

специальный

символ

 « t », 

изначально

определенный

в

 Stateflow 

для

проверки

выполнения

условий

истечения

временных

интервалов

Однако

в

этом

случае

если

требуется

осуществить

многократное

обращение

к

модели

в

цикле

статистического

моделирования

необходимо

отключить

флажок

Execute (enter) Chart Initialization  

в

диалоговом

окне

 Chart Properties. 

И

тот

и

другой

подход

может

быть

использован

в

равной

степени

Реализация

с

внешним

источником

предоставляет

дополнительные

возможности

применения

неравномерной

шкалы

системного

времени

 (

с

замедлением

и

ускорением

процесса

моделирования

). 

Далее

возможно

рассмотреть

два

варианта

построения

общей

S-

модели

В

рамках

первого

варианта

входной

поток

заявок

формируется

в

Simulink 

и

подается

на

вход

 SF-

модели

в

виде

последовательности

событий

-

заявок

На

рис

. 6.21 

и

 6.22 

представлены

блок

-

диаграмма

 S-

модели

и

диаграмма

вложенной

в

нее

 SF-

модели

реализованные

в

рамках

этого

варианта

Здесь

в

 S-

модели

размещается

блок

 Clock, 

формирующий

значение

времени

 systime (Input from Simulink date), 

подаваемого

на

вход

 SF-

модели

(

блок

 Chart). 

Поток

заявок

формируется

на

выходе

блока

 Fcn, 

реализующего

сравнение

входного

сигнала

с

величиной

Ts

Li

Pi

=

(

логическое

условие

).

Pi

u

<

Амплитуда

входного

сигнала

   

имеет

равномерное

распределение

в

диапазоне

и

формируется

на

выходе

генератора

шума

 Uniform 

Random Number. 

Значение

определяет

интервал

дискретизации

 Sample 

time 

во

всех

блоках

 S-

модели

В

результате

с

вероятностью

на

выходе

блока

 Fcn 

в

каждом

элементарном

интервале

u

]

1

,

0

[

Ts

Pi

]

Ts

t

,

t

[

+

формируется

сигнал

с

единичной

амплитудой

Поток

заявок

при

этом

имеет

вид

последовательности

коротких

импульсов

имеющих

длительность

Каждое

событие

связанное

с

поступлением

входной

заявки

определяется

в

SF-

модели

под

именем

 zayvka (Input from Simulink event). 

Ts

234