Модель системы, реализованная в пакете Model Vision Studium

Основным «строительным» элементом в процессе построения модели в MVS можно назвать устройство. Устройство представляет собой систему типа «вход - выход - состояние» (или просто «вход - выход») и может быть как простым, так и составным. С помощью функциональных связей устройства объединяются в единую схему, которая затем может быть помещена в специальное устройство - контейнер Test, или собрана сразу в неком устройстве - контейнере, экземпляр которого затем помещается в Test Bench.

Используя описание задачи о двух баках в терминах UML, можно выделить составное устройство System, помещенное в Test Bench (рис.5.31), которое содержит в себе простое устройство Controller и составное устройство Tank_System, соединенные соответствующими функциональными связями (рис.32):

Рисунок 31

 

 

Рисунок 32

 

В свою очередь, устройство Tank_System содержит в себе экземпляр устройства Two_Tanks, экземпляр устройства VinControl и два экземпляра устройства K_Control (описывающих поведения кранов V1 и V2) - K1_Control и K 2_Control, соединенные между собой функциональными связями (рис.33):

Рисунок 33

 

Устройство-контейнер System представлено соответствующим классом System (рис.34). Карта поведения устройства имеет вырожденную структуру и содержит в себе одно состояние Init, инициирующие работу устройства при запуске модели.

 

Рисунок 34

 

Устройство Controller представлено классом Controller, имеющим входной переменной h 2, представляющую уровень воды во втором баке и получаемую от устройства Tank_System, а выходными переменными - сигналы VinOn, VinOff, V 1On, V1Off, V2On, V2Off, управляющие системой Tank_System (рис.35). Также в классе находится внутренняя переменная anim, необходимая для управления анимационным окном. Карта поведения устройства практически совпадает с соответствующей диаграммой состояний UML (рис.36):

Рисунок 35

 

Рисунок 36

 

Составное устройство Tank_System представлено классом Tank_Sys, имеющим входными переменными сигналы VinOn, VinOff, V1On, V1Off, V2On, V2Off, управляющие соответствующими устройствами, входящими в Tank_System. Выходной переменной является переменная h2, подаваемая на вход устройства Controller, и переменная h1, представляющая уровень воды в первом баке. Карта поведения устройства имеет вырожденную структуру и содержит в себе одно состояние Init, инициирующие работу устройства при запуске модели. Класс Tank_Sys представлен на рис. 37:

Рисунок 37

 

Устройство Two_Tanks представлено классом Two_Tanks, имеющим входными переменными к1, к2 и Vin, представляющие значения функций, управляющих кранами V1 и V2, и скорость входного потока воды в систему. Выходные переменные - уровни воды в первом и втором баках h1 и h2 (рис.38). Карта поведения устройства практически совпадает с соответствующей диаграммой состояний UML (рис.39). Уравнения, выполняемые в соответствующих состояниях, представлены на рис.40.

Рисунок 38

 

 

Рисунок 39

Рисунок 40

 

Устройство VinControl представлено классом Vin_Control, имеющим входными переменными сигналы VinOn и VinOff, получаемые от устройства Controller и управляющие открытием/закрытием входного крана. Выходной переменной является переменная Vin, представляющая скорость входного потока воды в систему (рис.41). Карта поведения устройства практически совпадает с соответствующей диаграммой состояний UML (рис.42). Уравнения, выполняемые в соответствующих состояниях, представлены на рис.43.

 

Рисунок 41

Рисунок 42

 

Рисунок 43

 

Устройства K1_Control и K2_Conrtol представлены классом К_Control, имеющим входными переменными сигналы VХOn и VХOff, получаемые от устройства Controller и управляющие открытием/закрытием крана V1 ( или V2). Выходной переменной является переменная к, представляющая значение функции, управляющей скоростью выходного потока воды из первого бака (или из системы) (рис.44). Карта поведения устройства практически совпадает с соответствующей диаграммой состояний UML и состоит из двух гиперсостояний (рис.45). Внутренние карты состояний соответствующих гиперсостояний, а также уравнения, выполняемые в соответствующих состояниях, представлены на рис.46 и рис.47.

Рисунок 44

 

 

Рисунок 45

 

Рисунок 46

 

 

Рисунок 47