Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическое моделирование и проектирование систем автоматики

..pdf
Скачиваний:
19
Добавлен:
15.11.2022
Размер:
2.39 Mб
Скачать

 

 

 

 

НАЧАЛО

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1, X2, Y1, Y2, R1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

line( X 1 ,Y1 , X 2 ,Y2 )

 

 

 

 

 

R =

1

X 22 + Y22

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X2=1 to 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lin e ( X 1 , Y1 , X 2 , Y 2 )

 

 

 

 

 

Y2 = Y2 + 1

 

 

 

 

 

 

 

 

 

 

 

α = 45o to 180o

X 2 = R + R cos α Y2 = R + R sin α

X1 = R + R cos(180 −α) Y1 = R + Rsin(180 −α) line(X1,Y1, X 2 ,Y2 )

 

β = 0o to 360o

 

ВЫХОД

 

 

 

 

 

 

Y1 = R1 sin β

 

 

 

α = arcsin(Y1 / R)

 

 

 

X 1 = R R sin α

 

 

 

X 2 = −X 1

 

 

 

Y2 = −Y1

 

 

 

 

 

 

 

Рис. 46. Схема алгоритма последовательных анимаций с прямой линией

111

Анимационное изображение процесса перемещения прямоугольника по полю носителя информации осуществляется командой rectangle (x1,y1,x2,y2), в которой координаты точек x1, y1 и x2, y2 – это крайние точки диагонали прямоугольника. Как и в предыдущем случае, цвет линии предварительно зада-

ется командой setcolr (f). По команде rectangle (x1,y1,x2,y2)

одновременное изменение параметров x1, y1, x2, y2 вызывает изменение размеров фигуры прямоугольника. Графическое изображение этого процесса представлено на рис. 47.

Рис. 47. Пространственное перемещение прямоугольника при выпол-

нении команды rectangle (x1,y1,x2,y2)

При одновременном изменении параметров Х2 и Y2 на величину ∆ изменяются координаты верхней части диагонали этого прямоугольника, поэтому его размеры одновременно увеличиваются как в верх, так и в ширину.

Если же на величину ∆ одновременно изменяются параметры x1, x2 или y1, y2, то перемещение фигуры происходит соответственно в направлении x или y на эту же величину.

Вращение прямоугольника относительно осей симметрии по направлению x или y осуществляется в соответствии с принципом, показанном на рис. 48.

Радиус вращения этой фигуры относительно оси симметрии по направлению x равен R = Y2, а проекция этого радиуса на ось Y при вращении определяется системой уравнений (59).

112

Y1 = R R cos α,

(59)

Y2 = R + R cos α.

Рис. 48. Результат поворота прямоугольника в соответствии с уравнением (59)

Все анимационные перемещения прямоугольника по полю его графического изображения описываются алгоритмом, представленном на рис. 49.

После ввода исходных координат прямоугольника в этом алгоритме задается цикл в сто шагов его перемещения в направлении оси x. Следующим циклом за 25 шагов прямоугольник меняет свои размеры как по параметру x, так и по y. В последнем цикле этого алгоритма плоскость прямоугольника поворачивается на угол 180 0 с шагом в 1 0.

Анимационное перемещения других фигур можно изобразить подобным образом. Так, анимационное изображение про-

цесса перемещения окружности по полю носителя графиче-

ской информации осуществляется командой circle (x,y,r), до выполнения которой другой командой setcolr (f) задается цвет линии окружности. В команде circle (x,y,r) параметры x,y – это координаты центра окружности, а параметр r – ее радиус. Изменение параметров x и y на величину ∆ обеспечивает перемещение фигуры по полю носителя на эту величину, а изменение параметра r изменяет размер окружности. Процесс вращения окружности относительно ее центра можно имитировать угло-

113

вым перемещением диагоналей относительно точек x, y, зада-

ваемых командой line (x1,y1,x2,y2).

НАЧАЛО

X1, X2, Y1, Y2

x1=1 to 100

rectangle (x1,y1,x2,y2) x2=x2 + 1

x2=1 to 25

y2=y2 + 1 rectangle (x1,y1,x2,y2)

α = 0 to 180

ВЫХОД

rectangle (x1,y1,x2,y2)

y2=R + R cosα y1=R R cosα

Рис. 49. Схема алгоритма анимационных перемещений прямоугольника

Анимационное изображение процесса перемещения дуги выполняется по команде arc (x,y,φ0,φi,r).

Цвет линии этой фигуры предварительно задается коман-

дой setcolr (f).

В этой команде x,y – координаты центра поворота дуги, а r – ее радиус поворота. Параметры φ0 и φi – углы, задающие

114

величину дуги относительно направления y. Изменение параметров x,y на величину ∆ обеспечивает перемещение фигуры на эту величину, а изменение параметра r изменяет изгиб дуги. Изменение параметров φ0 и φi обеспечивает угловой поворот дуги.

Анимационное изображение процесса перемещения сектора выполняется по команде sector (x,y, φ0,φi).

Цвет линии этой фигуры предварительно задается коман-

дой setcolr (f).

Вэтой команде x, y – координаты центра поворота сектора, а r – радиус его дуги. Параметры φ0 и φi – углы, задающие величину дуги относительно направления y. Пространственно перемещение этой фигуры обеспечивается аналогично перемещению предыдущей фигурой.

Анимационное изображение процесса перемещения сектора выполняется по команде sector (x,y, φ0,φi).

Цвет линии этой фигуры предварительно задается коман-

дой setcolr (f).

Вэтой команде x,y координаты центра поворота сектора, а r радиус его дуги Параметры φ0, и φi углы, задающие величину дуги относительно направления y. Пространственно перемещение этой фигуры обеспечивается аналогично перемещению предыдущей фигуры.

Все эти фигуры могут быть подвергнуты различным анимационным перемещениям по алгоритмам, подобным тем, которые мы уже описали.

Рассмотрим основные принципы, по которым создаются анимационные модели определенных физических процессов, в том числе и процессов, протекающих в системах автоматики.

Организация анимационных моделей осуществляется по следующим принципам:

1.Задание контуров объектов (элементов) анимационной модели.

115

2.Присвоение уникального имени каждому объекту (элементу) анимационной модели.

3.Выбор основных параметров объектов (элементов) анимационной модели.

4.Выбор закона изменения параметров и взаимодействия объектов (элементов) в анимационной модели.

5.Составление программы работы анимационной модели

сучетом закона взаимодействия ее объектов (элементов). Рассмотрим последовательность построения анимацион-

ной модели на простом примере, в котором нужно построить анимационную модель процесса заполнения бассейна постоянным водопритоком.

Контур анимационной модели бассейна представлен на рис. 50.

L

H

V

Рис. 50. Контур анимационной модели бассейна

В этой модели переменные имеют следующий смысл: H высота бассейна;

L длина и ширина бассейна;

V уровень воды в бассейне.

Кроме того, вводимдополнительноследующиепеременные: Q приток воды вбассейне; T времянаполнения бассейна. Уровень воды в бассейне V принимаем в качестве выходного параметра этой модели. Этот уровень меняется по сле-

дующему закону:

116

V

=

Q T

.

(60)

 

 

 

L 2

 

Алгоритм изменения уровня воды в бассейне в зависимости от величины водопритока представлен на рис. 51.

Начало

H L

T = 0, x1 = 0, x2 = L, y1 = 0, y2 = 0

Q

V = (Q*T) / sqr(L) T = T + 0,1

y2 = round(V)

Rectangle (x1, y1, x2, y2)

да

H >V

нет

Конец

Рис. 51. Алгоритм решения задачи изменения уровня воды в бассейне

После запуска этого алгоритма вводятся исходные параметры H, L, и остальным параметрам затем присваиваются ис-

117

ходные значения. Отдельной командой в цикле вводится параметр Q.

В этом же цикле по формуле (60) вычисляется значение V, которое затем округляется до целого и присваивается параметру у2. В этом же цикле происходит приращение значения параметра времени Т.

Командой Rectangle(x1,y1,x2,y2) производится циклический вывод на каждый период времени Т величины уровня V в форме контура прямоугольника. Циклическое изменение значения уровня V через величину параметра у2 создает мультипликационный эффект наполнения бассейна. Если в цикле этого наполнения менять значение параметра Q, то скорость такого наполнения будет соответственно меняться. Цикл наполнения бассейна закончится только тогда, когда уровень параметра V будет выше уровня параметра H.

Для того чтобы исключить периодический ввод числового значения параметра Q, в программах анимационного типа используют специальные графические объекты, относящиеся к типу объектных модулей, с помощью которых формируется числовое значение любого параметра. В нашей анимационной модели с помощью такого графического объекта постоянно вводится параметр Q.

Принцип построения анимационных моделей с использо-

ванием объектных модулей применен во многих программных пакетах, таких как «InTouch», «CoDeSys», «Zelio-Soft2» и т.д.

Теперь на более сложном примере покажем, как такая задача моделирования решается в анимационном варианте в программном пакете «InTouch».

Задача. Создать в пакете «InTouch» анимационную модель шахтного водоотлива, состоящего из источника водопритока, водосборника и шахтного насоса.

Контуры этой анимационной модели, выполненные с помощью инструментальных средств пакета «InTouch», показаны на рис. 52.

118

5

4

Рис. 52. Контуры анимационной модели шахтного водоотлива

Вэтой модели введены следующие обозначения: 1– шахтный водосборник, наполненный до определенного уровня; 2 – элемент регулирования внешнего водопритока; 3 – рабочая насосная установка; 4 – красная лампа; 5 – зеленая лампа.

Кроме того, в этой модели дополнительно предусмотрены:

– лампы верхнего (5) и нижнего (4) уровня воды в водосборнике;

– элементы задания водопритока и производительности насоса;

– элементы слежения зауровнем заполнения водосборника;

– прибор контроля производительности насоса.

Вэтой модели каждому объекту (элементу) присвоены уникальные имена, которые помещены в табл. 3.

 

 

Таблица 3

 

Объекты модели шахтного водоотлива

 

 

 

№ п/п

Объекты (параметры) модели

Имя параметра

1

Водосборник (уровень)

Uroven (тип – real)

2

Водоприток (приток воды)

Рritok (тип – real)

 

 

 

3

Насос (работа, расход)

Rabota (тип – дискрет)

 

 

Rasxod (тип – real)

4

Лампа зеленая (цвет)

Zeleniy (тип – дискрет)

 

 

 

5

Лампа красая (цвет)

Krasniy (тип – дискрет)

 

 

 

119

Ванимационной программе каждый из этих объектов является объектом ввода или вывода. К объектам ввода в нашей задаче относятся такие параметры, как уровень водопритока и производительность насоса, а к объектам вывода соответст-

венно относятся уровень воды в водосборнике, работа насоса и лампы соответствующего цвета. Состояние каждого из этих объектов обеспечивается соответствующей подпрограммой, представленной в общей программе. Обращение к этим подпрограммам производится согласно общему алгоритму анимационной модели.

Алгоритм построен в форме бесконечного цикла. Структура алгоритма работы модели шахтного водоотлива показана на рис. 53.

После запуска этого алгоритма включается в работу блок (подпрограмма Uroven = uroven + pritok), по которому аналогично предыдущей задаче водосборник наполняется водой пропорционально времени и величине водопритока. При этом величина водопритока формируется соответствующим объектным модулем, а уровень воды в водосборнике постоянно появляется на экране монитора в форме графического объекта (окрашенного прямоугольника).

Вциклическом процессе наполнения водосборника проверяется условие его переполнения выше отметки 3000. Если такое переполнение произойдет, то нижняя лампа загорится красным цветом. Эта лампа гаснет, если уровень воды станет ниже этой отметки. После того как загорится нижняя лампа красным цветом, водосборник будет наполняться пропорционально притоку.

Внашей задаче наполнение водосборника не должно превышать величину 12 000. Если наполнение водосборника достигло заданной отметки, то по истинности условия ветвления насос включается в работу, а верхняя лампа при этом переключается на зеленый цвет (Rabota = 1, Zeleniy = 1). В противном случае проверяется другое условие, по которому уровень

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]