Управление технологическими процессами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управление технологическими процессами



Ни один из процессов создания, преобразования или транс­портирования продукции не может происходить без управления. На первых порах производственными процессами полностью уп­равлял сам человек. По мере усложнения процессов требовалось более сложное управление и возможности человека становились ограничивающим фактором. Были разработаны способы измере­ния параметров процессов (температуры, давления, расхода и других величин) и соответствующие устройства — датчики, а также исполнительные механизмы, оказывающие необходимое воздей­ствие на процесс.

Датчики и исполнительные механизмы — два главных элемен­та системы управления. Но есть еще один очень важный фактор, без которого управление неосуществимо, — это решение. Изме­ренное значение температуры или давления не может быть непос­редственно использовано для приведения в движение исполни­тельного механизма. Однако его можно использовать для проведе­ния анализа, на основании которого принимается решение и осу­ществляется управляющее воздействие.

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

10

числения, принимал решение и оказывал управляющее воздей­ствие.

Однако по мере усложнения процессов даже самый квалифи­цированный оператор перестал справляться с задачами управле­ния. Был разработан аналоговый регулятор, который самостоя­тельно осуществлял непрерывное регулирование одного парамет­ра. Но при большом числе параметров в одном процессе требова­лось много регуляторов, которые не могли взаимодействовать меж­ду собой и вести себя как единое целое. По-прежнему оператор должен был принимать решения по управлению всем процессом, даже если регуляторы обеспечивали хорошее регулирование своих параметров.

Задача существенно облегчалась, если каждая операция техно­логического процесса оставалась неизменной в течение длитель­ного времени, например при массовом производстве одних и тех же изделий.

Уже на рубеже 30 —40-х гг. XX в. в России появились автома­тические линии для обработки деталей подшипников, а в конце 40-х гг. XX в. у нас впервые в мировой практике было создано комплексное производство поршней для тракторных двигателей с автоматизацией всех процессов — от загрузки сырья до упаковки готовой продукции.

Появление электронных вычислительных машин (ЭВМ) по­зволило рассматривать технологический процесс не как набор независимых операций, а как единое целое. АСУ на базе ЭВМ ведут весь процесс в оптимальном режиме, выполняют пуск и останов технологического оборудования, контролируют его со­стояние и предотвращают перегрузки, обеспечивают отработку аварийных ситуаций, ведут учет и анализ протекания процесса; они легко перестраиваются при необходимости на выпуск другой продукции.

Современные промышленные объекты представляют собой совокупность взаимосвязанных многорежимных управляемых под­систем, объединенных общей системой управления с централь­ной ЭВМ. Производственные процессы осуществляются на авто­матических линиях гибкими производственными модулями на базе минимизированных вариантов ЭВМ — микропроцессоров и мик-роЭВМ. Гибкими их называют потому, что они способны быстро перестраиваться с производства одних изделий на производство других, что позволяет постоянно модифицировать производство, расширять ассортимент и повышать качество продукции. Вспомо­гательные операции и часть основных операций выполняются промышленными роботами. Все это оборудование совместно с автоматическими системами транспортирования, проектирования и подготовки производства образует гибкое автоматизированное производство.

11

Контрольные вопросы

1.            Что изучает кибернетика?

2.            Чем занимается автоматика?

3.             Какие процессы называются технологическими?

4.           Что такое автоматизация?

5.           В чем заключается автоматизация технологических процессов?

6.           Что такое АСУ ТП?

7.            В чем отличие автоматизированной системы управления от автома­тической?

8.              Человек в автоматизированной системе управления — это хорошо или плохо?

9.              Какие виды автоматических систем вы знаете?

10.              Перечислите главные элементы системы управления.

11.             Какова роль вычислительного устройства в системе управления?

12.       Дайте характеристику гибкого автоматизированного производства.

 

ГЛАВА 2 АЛГОРИТМЫ

Автоматизация производства позволяет освободить человека от непосредственного участия в производственных процессах, пере­ложив их выполнение на плечи технических средств. Но для того чтобы «научить» их выполнению какой-либо работы, человеку надо сначала тщательно изучить эту работу самому, осознать цель ра­боты — что именно должно получиться в результате ее выполне­ния, представить себе до мелочей каждое действие, понять, от каких условий и как оно зависит, и подробно описать порядок выполнения действий.

Современные технические средства во многом превосходят че­ловека — они могут выполнять различные действия быстрее и точ­нее, создавать большие усилия, работать без устали, не совершая ошибок продолжительное время. Но каждое действие, даже самое простое (например, вернуться в исходное положение), они могут выполнить только по команде человека.

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

Понятие алгоритма

Каждый из нас ежедневно совершает множество действий, не задумываясь о том, как именно мы их совершаем. Мы делаем по­купки, пользуемся общественным транспортом, ходим в кино, готовим еду и т.д.

Мы действуем автоматически и обычно получаем именно тот результат, к которому стремились.

Пример 1. Предположим, что вы проголодались и хотите съесть бутерброд. Что вам для этого нужно сделать?

Сначала вам придется заглянуть в хлебницу и холодильник, чтобы взять там хлеб и масло. Вы не будете намазывать масло на хлеб прямо в холодильнике — значит, вам надо будет отнести продукты на стол. Затем вы возьмете нож и отрежете кусок хлеба

13и немного масла. Потом вы намажете масло на хлеб и получите готовый бутерброд. Последовательность ваших действий: /. Открыть мебницу.

2.                  Взять хлеб.

3.                Закрыть хлебницу.

4.                Положить хлеб на стол.

5.                 Открыть холодильник.

6.                 Взять масло.

7.                Закрыть холодильник.

8.                  Положить масло на стол.

9.                 Взять нож.

10.                   Отрезать кусок хлеба.

11.                   Отрезать немного масла.

12.                 Намазать масло на хлеб.

13.                Положить нож на место.

14.                    Съесть бутерброд.

Изготовление бутерброда — ваша цель. Для ее достижения вы совершаете несколько действий, причем в строго определенной последовательности. Вы не сможете взять масло, не открыв холо­дильник, или отрезать кусок хлеба, не достав хлеб из хлебницы. Попробуйте пропустить хотя бы одно действие или перепутать порядок действий — вы или сильно осложните продвижение к цели, или вообще останетесь без бутерброда.

Пример 2. Вы получили домашнее задание — решить задачу по математике.

Сначала вам придется найти задачу в учебнике, потом запи­сать условие задачи, подобрать нужную формулу, заменить в ней буквы на числа из условия и выполнить вычисления. Последова­тельность ваших действий:

/. Подойти к столу.

2.                 Взять учебник.

3.                Найти в учебнике заданную задачу.

4.                Записать условие задачи.

5.                 Подобрать нужную формулу.

6.                Внести в формулу данные из условия.

7.                  Произвести вычисления.

8.                Записать ответ.

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

Алгоритм — это последовательность действий, ведущих к дос­тижению цели.

14

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

Если в этой последовательности есть сложное действие (на­пример, снять колесо велосипеда), то вы в зависимости от опыта вашего собеседника можете или назвать это действие целиком, или разбить его на ряд более простых действий (ослабить левую гайку, затем ослабить правую гайку и т.д.). При составлении алго­ритмов сложные действия часто разбиваются на более простые, вплоть до самых элементарных. Например, в примере 2 действие 2. Взять учебник можно описать следующим образом:

/. Протянуть руку к учебнику.

2.                  Взять учебник.

3.                 Поднести учебник к себе.

Можно это же действие описать еще подробнее:

1.                 Протянуть руку к учебнику.

2.                   Обхватить учебник пальцами.

3.                   Сжать пальцы.

4.                   Поднять руку с учебником над столом.

5.                 Поднести учебник к себе.

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

Подробная детализация позволяет самое сложное действие пред­ставить как совокупность более простых действий, а выполнение самых простых действий можно поручить машине — это прямой путь к автоматизации.

Слово «машина» используется здесь в самом широком смысле — как техническое средство, способное выполнять за человека ог­ромное количество самых разных действий. Причем машины мо­гут выполнять не только чисто физические действия — переме­щать что-то в пространстве или обрабатывать с помощью инстру­ментов, но и анализировать, вычислять, оценивать, принимать решения и т.д.

Все эти способности машинам дает человек. Машины в отли­чие от человека не обладают разумом, поэтому они способны выполнять только элементарные действия, точно соответствую­щие полученным командам. Если для человека алгоритм — это последовательность действий, то для машины — это последова­тельность команд, которые ей предстоит распознать и выполнить для достижения цели.

Распознать команду машина сможет только в том случае, если эта команда однозначна и ее различные толкования невозможны. Поэтому для машины каждая команда должна быть записана осо­бо — на понятном машине языке.

15

ся программой.

2.2. Виды алгоритмов 2.2.1. Линейные алгоритмы

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

Алгоритмы, в которых все действия выполняются последова­тельно, одно за другим, называются линейными алгоритмами.

Алгоритмы с ветвлением

В реальной жизни не все так просто. Вы захотели съесть бутер­брод, открыли хлебницу — а хлеба в ней нет! Что делать? Если очень хочется есть, то придется пойти в магазин, купить хлеб и принести его домой. Таким образом, ваши действия будут зави­сеть от условия: есть ли хлеб в хлебнице?

В этой ситуации последовательность ваших действий после по­явления желания съесть бутерброд будет следующей:

/. Открыть хлебницу.

2.                Если хлеб есть, то взять хлеб.

3.                Закрыть хлебницу.

4.                Если хлеба нет, то пойти в магазин.

5.                Купить хлеб.

6.                Принести хлеб домой.

7.                 Положить хлеб на стол и т. д.

Полужирным шрифтом выделены строки, на которые вам сле­дует обратить особое внимание, — в данном случае в них заданы условия, определяющие ваши дальнейшие действия.

Итак, теперь вы с бутербродом, однако в описании последова­тельности действий возникла неопределенность. Если строго сле­довать этому описанию, то несмотря на наличие хлеба в хлебнице и успешное выполнение действия 2....взять хлеб вам все равно придется идти в магазин, выполняя последовательно действия 3, 4, 5 и 6. Иначе не понятно, что делать после действия 3. Закрыть

16

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

Очевидно, в такой ситуации в описание алгоритма надо вне­сти некоторые уточнения. Во-первых, надо указать, что в какой-то момент последовательность выполнения действий может быть нарушена, и тогда нужно будет сделать выбор очередного дей­ствия. Этот выбор будет зависеть от выполнения (или невыполне­ния) некоторого условия (есть ли хлеб в хлебнице). Во-вторых, надо указать, какими именно должны быть очередные действия как при том, так и при другом результате выбора.

Признаком ситуации выбора служит слово «если», которое вво­дит условие (хлеб есть}. Но поскольку хлеба может и не быть, в алгоритме неизбежно еще одно «если», которое вводит противо­положное условие (хлеба нет). Чтобы не запутаться в этих услови­ях, второе условие обычно заменяют словом «иначе»:

/. Открыть хлебницу.

2.                 Если хлеб есть, то взять хлеб.

3.                Закрыть хлебницу.

4.                 Иначе пойти в магазин.

5.                Купить хлеб.

6.                  Принести хлеб домой.

7.                 Положить хлеб на стол и т. д.

Таким образом, главным является первое условие, вводимое словом «если». В зависимости от того, выполнено это условие или нет, вы переходите либо к действию J, либо к действиям 4, 5, 6. Эти варианты действий называются ветвями алгоритма.

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

Где начинается и где заканчивается каждая ветвь? При выпол­нении условия Если последовательность действий в алгоритме продолжается так, как она записана, — ведь никаких оснований для ее нарушения нет. Вы выполняете действия, образующие пер­вую ветвь. Где она заканчивается? Там, где заканчиваются дей­ствия, предусмотренные условием Если, т.е. перед вторым усло­вием — Иначе.

А если условие Если не выполнено? Тогда появляются основа­ния для нарушения последовательности действий. После провер­ки выполнения (точнее, невыполнения) условия Если начинает­ся выполнение действий, стоящих в алгоритме после Иначе, т.е. действий второй ветви.

Итак, в зависимости от выполнения условия Если вы соверша­ете действия либо первой, либо второй ветви. А дальше — опять не понятно: с какого места продолжать выполнение алгоритма,

17

например, после выполнения действия 3 первой ветви? Вы-то мо­жете догадаться, что следующим в алгоритме должно быть дей­ствие 7. Положить хлеб на стол, но как в подобной ситуации быть машине? Она-то догадываться не умеет!

Для снятия неопределенности в алгоритм вводят специальный указатель, отделяющий ветви от продолжения алгоритма. Обычно таким указателем является фраза Конец ветвления. После заверше­ния действий любой ветви надо отыскать фразу Конец ветвления и продолжить выполнение алгоритма с действия, которое следует после этой фразы.

Алгоритм будет выглядеть следующим образом:

/. Открыть мебницу.

2.                 Если хлеб есть, то взять хлеб.

3.                Закрыть хлебницу.

4.                 Иначе пойти в магазин.

5.                  Купить хлеб.

6.                Принести Xjw 6 домой.

7.                  Конец ветвления.

8.                  Положить хлеб на стол и т. д.

Теперь, независимо оттого, какая именно ветвь алгоритма была выполнена, очередным будет действие, стоящее после фразы Ко­нец ветвления (8. Положить хлеб на стол).

Рассмотрим еще один алгоритм с ветвлением. Предположим, что надо произвести сортировку цилиндрических изделий по ди­аметру и распределить их по двум магазинам (ящикам, коробкам). Изделия поступают с конвейера в устройство, которое измеряет их диаметр, и в зависимости от результатов измерения другое ус­тройство помешает изделие в тот или иной магазин.

Алгоритм сортировки может быть следующим:

/. Установить изделие в измерительное устройство.

2.                 Измерить диаметр изделия.

3.                       Если диаметр больше заданного, то поместить изделие в магазин № 1.

4.                Иначе поместить изделие в магазин № 2.

5.                 Конец ветвления.

Исполнителем этого алгоритма может быть как человек, так и машина (например, робот). Если выполнение подобного алгорит­ма предполагается поручить машине, то нужно быть уверенным, что она не только поймет каждую команду, но и сумеет сделать выбор, т.е. машина должна иметь технические средства, способ­ные определить, выполнено ли условие Если. В нашем случае ма­шина должна не только измерить диаметр изделия, но и сравнить его с заданным диаметром и по результатам сравнения принять решение о помещении изделия в нужный магазин.

В автоматических системах, работающих без участия человека, при возникновении различных ситуаций машине приходится са-

18

|мой принимать решение о выборе варианта действий, поэтому в таких системах часто используются алгоритмы с ветвлением. Лю­бую ситуацию, в которой нужно выбирать один из двух или не­скольких вариантов действий, всегда можно свести к одному или нескольким ветвлениям алгоритма. 2.2.3. Циклические алгоритмы Часто мы наблюдаем или участвуем в процессах, в которых много раз подряд выполняются одни и те же действия. Например, рассмотрим, как работает продавец в магазине. Каждого покупа­теля он обслуживает по одной схеме: выдать товар —получить день­ги— выбить чек—дать сдачу. Меняются только вид и количество товаров. Контролер в кинотеатре работает по схеме: взять билет — проверить сеанс — оторвать контроль—вернуть билет. И так сотни раз в течение дня. Многократно повторяют одни и те же действия грузчик, разгружающий машину с продуктами; рабочий на кон­вейере; маляр, оклеивающий комнату обоями; и вы сами, когда пьете чай или отправляетесь утром на занятия.

Вернемся к рассмотрению алгоритма сортировки изделий. В этом алгоритме описаны однократные действия, производимые с од­ним изделием. Оно отправлялось в магазин № 1 или № 2, и на этом алгоритм заканчивался. Но реальные изделия поступают на сортировку, скорее всего, в большом количестве. Значит, описан­ные в алгоритме действия должны повторяться вновь и вновь. Как долго? Очевидно, пока изделия имеются на конвейере.

Как изменить алгоритм, чтобы процесс сортировки повторял­ся многократно? Какие именно действия повторять и до каких пор? Существует два варианта:

•           задать условие, при выполнении которого действия нужно повторять, а как только условие будет нарушено — прекратить повторение и перейти к продолжению алгоритма (например, кра­сить доски забора, пока он не закончится, а затем приступить к

•          задать необходимое количество повторений одних и тех же действий (например, налить в бочку 10 ведер воды).

Первый вариант более универсальный — он подходит для за­бора с любым количеством досок, в том числе и заранее неизвест­ным. Но исполнитель этого варианта алгоритма должен уметь про­верять выполнение заданного условия (закончился ли забор?), что не трудно для человека, но может оказаться трудным для маши­ны.

А вот второй вариант для машины не проблема — механиче­ские, электрические, электронные и другие счетчики существуют давно и в самых разных видах. Но этот вариант лишен гибкости, и

19

при изменении условий выполнения алгоритма (например, при замене бочки на меньшую) нужно изменять команды в самом алгоритме (устанавливать другое количество наливаемых ведер).

Повторяющаяся в алгоритме группа действий образует цикл.

Алгоритмы, в которых повторяются одни и те же действия, называются циклическими алгоритмами.

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

Поскольку в алгоритме сортировки изделий количество изде­лий заранее неизвестно, воспользуемся первым вариантом — попробуем найти условие, выполнение которого необходимо для повторения процесса сортировки. Таким условием является нали­чие очередного изделия на конвейере. Если сортировку произво­дит человек, то он легко обнаружит это изделие. Если же испол­нитель алгоритма сортировки — машина, то она должна уметь проверять наличие изделия на конвейере. Как машина сможет это сделать, рассмотрим далее. А сейчас дополним алгоритм сорти­ровки условием повторения цикла:

/. Пока на конвейере есть изделие, выполнять действия:

2.               Установить изделие в измерительное устройство.

3.                Измерить диаметр изделия.

4.              Если диаметр больше заданного, то поместить изделие в мага­зин № 1.

5.                Иначе поместить изделие в магазин № 2.

6.                Конец ветвления.

7.                Конец цикла.

Здесь полужирным шрифтом выделены строки, имеющие от­ношение к повторению действий, т.е. к циклу. В алгоритме есть и ветвление, но оно записано светлым шрифтом.

Для того, чтобы исполнителю было понятно, какие именно действия нужно повторять, эти действия (цикл) должны быть как-то выделены, т.е. должны быть указаны границы цикла. Так как повторение цикла зависит от выполнения заданного условия /. Пока на конвейере..., строка с этим условием может быть одной из гра­ниц цикла. Другую границу устанавливают строкой Конец цикла. Если условие / соблюдено, то выполняются действия 2... 6, распо­ложенные между указанными границами. При нарушении условия 1 исполнителю нужно будет перейти к действию, следующему за строкой 7. Конец цикла (если имеется продолжение алгоритма).

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

20

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

Составим циклический алгоритм погрузки контейнеров в вагон:

/. Начало цикла.

2.                 Поднять краном очередной контейнер.

3.                  Переместить контейнер к вагону.

4.                Погрузить контейнер в вагон.

5.                 Вернуть кран в исходное положение.

6.                     Пока в вагоне есть свободное место, повторять действия цикла.

7.                Закрыть и опечатать дверь вагона.

При выполнении условия 6 будут повторяться действия 2...5, после чего снова будет проверяться выполнение условия 6. Если оно окажется нарушенным, то повторения цикла не будет и ис­полнитель перейдет к команде 7. Закрыть и опечатать дверь ваго­на, следующей за условием 6.

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

В этом случае весь записанный ранее алгоритм будет представ­лять собой цикл, повторяемый при условии наличия контейне­ров, причем проверка выполнения этого условия тоже включает­ся в цикл:

1.                 Начало цикла.

2.                 Пока есть контейнер для погрузки, выполнять действия:

3.                 Поднять краном очередной контейнер.

4.                 Переместить контейнер к вагону.

5.                   Погрузить контейнер в вагон.

6.                  Вернуть кран в исходное положение.

7.                     Пока в вагоне есть свободное место, повторять действия цикла.

8.                Конец цикла.

При нарушении либо условия 2, либо условия 7 исполнитель переходит к действию, следующему за строкой 8. Конец цикла.

Мы рассмотрели два вида циклических алгоритмов: с предва­рительным условием (предусловием) и с последующим условием (постусловием).

Рассмотрим второй вариант циклических алгоритмов — с заданным заранее количеством повторений. Как уже было ска-

21

зано, по таким алгоритмам работают исполнители, не умеющие оценивать выполнение (или невыполнение) того или иного усло­вия, но зато умеющие работать с числами.

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

Шланг, из которого вытекает жидкость, может перемещаться вдоль резервуаров и в исходном положении находится вблизи пер­вого резервуара.

Каждый резервуар имеет указатель, сигнализирующий о его заполнении. Алгоритм заполнения резервуаров может быть следу­ющим:

/. Начало цикла.

2.                Переместить шланг на ширину резервуара.

3.                   Открыть вентиль на шланге.

4.              Проверить наличие сигнала указателя о заполнении резервуара.

5.                 При поступлении сигнала закрыть вентиль.

6.                Увеличить содержимое счетчика на 1.

7.               Пока содержимое счетчика не превысит 10, повторять дей­ствия.

Это алгоритм с постусловием, так как только после запол­нения очередного резервуара определяется, нужно ли повто­рять операцию заполнения еще раз (т.е. заполнены ли все 10 резервуаров). Но можно составить этот алгоритм и с предусло­вием:

1.             Пока содержимое счетчика меньше 10, выполнять действия:

2.                Увеличить содержимое счетчика на 1.

3.                 Переместить шланг на ширину резервуара.

4.                   Открыть вентиль на шланге.

5.             Проверить наличие сигнала указателя о заполнении резервуара.

6.                 При поступлении сигнала закрыть вентиль.

7.                 Конец цикла.

В обоих алгоритмах после того, как содержимое счетчика ста­нет равным 10, очередная проверка условия повторения цикла (Пока содержимое счетчика...) покажет, что теперь оно уже не выполняется, и исполнитель перейдет к следующему действию 8 (если оно есть в алгоритме).

В двух последних алгоритмах фактически присутствует провер­ка условия Если сигнал указателя поступил... Очередное действие ...закрыть вентиль выполняется только при ответе «Да», т.е. этот участок алгоритма содержит ветвление. Но так как мы рассматри­ваем организацию циклов, на которую наличие ветвления внутри цикла не влияет, этот участок алгоритма приведен без излишней детализации.

22

Вспомогательные алгоритмы

Среди множества действий, выполняемых нами ежедневно, немало таких, которые делаются одинаково, хотя и направлены на достижение совершенно разных целей. Например, мы действу­ем практически одинаково, покупая хлеб, конфеты, книгу, би­лет в кино или на поезд.

Алгоритм любых наших покупок может выглядеть следующим образом:

7. Достать кошелек.

2.                Взять из кошелька деньги.

3.          Дать деньги продавцу.

4.                Назвать требуемый товар.

5.                Получить товар.

6.               Положить товар в сумку (в пакет, в карман и т.д.).

7.                Взять сдачу.

8.               Положить сдачу в кошелек.

Если все действия в течение дня описать в виде алгоритма, то в нем, скорее всего, ни один раз встретятся эти восемь действий, только название товара будет меняться. Пять покупок, сделанных в этот день, добавят в алгоритм дня 40 строчек. А если покупок 10, то строчек будет 80. Возможно даже, что именно эти строчки составят значительную долю алгоритма дня, хотя их информаци­онная ценность очень мала — фактически 10 раз будет повторять-(ся описание одной и той же последовательности действий. В этой ситуации удобно выделить алгоритм покупок из алго­ритма всего дня и записать его отдельно под заголовком, напри­мер, «Покупка X». Тогда в алгоритме дня каждая покупка будет представлена только одной строкой вместо восьми; лишь значе­ние Сбудет меняться (хлеб, книга и т.д.).

Записав один раз этот алгоритм, его можно вставлять в любой другой алгоритм, описывающий наши действия, если среди этих действий будет покупка чего-либо. Для этого достаточно упомя­нуть заголовок алгоритма и указать конкретное значение X.

Алгоритмы, целиком и многократно используемые в составе других алгоритмов, называются вспомогательными алгоритмами.

Вспомогательные алгоритмы очень удобны при решении мате­матических задач. Например, решение квадратных уравнений или вычисление функции sinx с помощью ЭВМ представляет собой длинную цепочку действий. Если все пункты этих алгоритмов каж­дый раз записывать в основном алгоритме решения задачи, то он становится слишком длинным. Удобнее записать, например, вы­числение sinjc в виде вспомогательного алгоритма, а в основном алгоритме в нужных местах просто сделать ссылки на него.

|Для упрощения таких ссылок вспомогательный алгоритм все­гда снабжают заголовком, по которому его можно вызвать. После

23

вызова выполнение основного алгоритма приостанавливается, пока не будет выполнен вспомогательный алгоритм. При этом вспомо­гательному алгоритму из основного алгоритма передается инфор­мация, обработка которой и является задачей вспомогательного алгоритма. Такой информацией может быть, например, значение х при вычислении sin x или название товара при совершении по­купки. Результаты выполнения вспомогательного алгоритма пере­даются в основной алгоритм.

Например, при изготовлении разных изделий может выпол­няться операция нагрева какой-либо детали или вещества с по­мощью нагревательного элемента до той или иной температуры. Обозначим эту температуру /, а алгоритм нагрева назовем «На­грев до t». Он может быть представлен в следующем виде:

«Нагрев до f»

1.                Ввести значение t.

2.                Включить нагреватель.

3.               Пока температура меньше 1, выполнять действия:

4.                  Подождать 5 с.

5.                Измерить температуру.

6.                 Конец цикла.

7.                 Выключить нагреватель.

При выполнении этого алгоритма каждые 5 с измеряется тем­пература и, пока она меньше /, нагреватель остается включенным. Как только температура достигнет значения /, условие 3 окажется нарушенным и исполнитель алгоритма перейдет к действию, сле­дующему за строкой 6. Конец цикла, т.е. выключит нагреватель.

Предположим, что имеется основной алгоритм, в котором есть этап нагрева жидкости до 150 °С. В этом случае только что рассмот­ренный алгоритм Нагрев до t может использоваться как вспомога­тельный:

/. Налить в резервуар жидкость № 1.

2.                Налить в резервуар жидкость № 2.

3.                Перемешать жидкости.

4.                Нагрев до 150 °С.

5.                    Открыть заслонку и т. д.

Здесь строка 4 означает вызов вспомогательного алгоритма «Нагрев до t», которому и передается значение температуры / = = 150°С. После выполнения вспомогательного алгоритма, т.е. на­грева жидкости до 150 "С, исполнитель переходит к следующему действию 5. Алгоритм нагрева может еще неоднократно использо­ваться в этом же основном алгоритме или в любом другом алго­ритме, обеспечивая каждый раз нагрев до нужной температуры /.

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

24

помощью вспомогательного алгоритма. В кулинарной книге рецепт (алгоритм) приготовления, например, слоеного теста описыва­ется только один раз, а в рецептах всех изделий из этого теста приводится ссылка на этот вспомогательный алгоритм.

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



Поделиться:


Последнее изменение этой страницы: 2021-04-14; просмотров: 119; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.130.24 (0.159 с.)