
- •Часть 2.
- •Раздел 2. Синтез микропрограммных автоматов
- •4.1. Формы представления алгоритмов
- •4.2. Преобразование форм записи алгоритмов
- •Часть 2.
- •Раздел 2. Синтез микропрограммных автоматов
- •5.1. Объединение алгоритмов
- •5.2. Разработка структурных и функциональных схем на основе алгоритма функционирования ску
Часть 2.
Раздел 2. Синтез микропрограммных автоматов
ЛЕКЦИЯ 4. Алгоритмизация процессов контроля и управления
4.1. Формы представления алгоритмов
При проектировании различных автоматизированных или автоматических систем необходимо четко представлять, как они будут работать. Функционирование системы описывается математически, словесно или какими-нибудь иными методами. Конечной целью описания работы системы является построение ее структурной или функциональной схемы.
В настоящее время получили широкое распространение алгоритмические методы формализованного описания процессов контроля и управления.
Алгоритм функционирования технической системы - это точное предписание, устанавливающее порядок выполнения системой операций по контролю и управлению объектом.
Алгоритмы могут быть представлены в различных формах. Одной из первоначальных форм алгоритма является его содержательное описание в виде инструкций или таблиц. Такая форма записи хороша для чтения человеком, но неудобна для представления работы системы в целом в процессе ее проектирования.
В настоящее время для символического описания алгоритмов применяются:
логические схемы алгоритмов (ЛСА);
матричные схемы алгоритмов (МCA);
граф-схемы алгоритмов (ГСА).
При проектировании технической системы обычно используются все три формы алгоритмического описания.
Сам процесс составления алгоритма на одном из формализованных языков называют алгоритмизацией.
Основным требованием к алгоритмам СКУ является их детерминированность, т.е. отсутствие неоднозначности и неопределенности.
В символической операторной форме алгоритм записывается в виде последовательности операторов.
Элементарная операция – это любое действие, которое нецелесообразно расчленять на поддействия.
Если речь идет об алгоритме функционирования системы, то элементарными операциями будут действия, выполняемые отдельными функциональными блоками, устройствами или оператором, например: включить, измерить, передать, ввести данные и т.п. Если же речь идет об алгоритме функционального блока или устройства, то и операции будут соответствующего масштаба, определенного действиями отдельных элементов блока.
Символы элементарных операций обозначается заглавными латинскими буквами с индексами (А1, В5, Сi) и называются функциональными операторами или просто операторами. Для определенности начальную и конечную операции обозначают символами А0 и Ак , соответственно.
Часто последовательность выполнения операций зависит от некоторых условий (например, от результатов предшествующей операции контроля). Символы таких условий принято обозначать малыми буквами p, q, r с индексами и называть логическими условиями (ЛУ) или логическими операторами.
При этом логические условия могут принимать только два значения;
(4.1)
Признаком появления или необходимости введения ЛУ является наличие слов «если …, то …» в словесном описании алгоритма.
Граф-схемы алгоритмов (ГСА). ГСА является наиболее наглядной, хотя и громоздкой формой представления алгоритма. Основные условные обозначения операторов приведены в табл.4.1.
Таблица.4.1 - Условные обозначения операторов
Условное обозначения |
Название |
Примечания |
|
Начальный оператор |
Имеет только один выход и ни одного входа |
|
Конечный оператор |
Может иметь множество входов, но не имеет ни одного выхода |
|
Функциональный оператор
|
Может иметь множество входов и только один выход.
|
|
Логический оператор |
Может иметь множество входов и только два выхода. |
|
Знак переноса на одном листе |
Внутри знака ставится номер оператора которому передается управление или номер оператора от которого передается управление |
|
Знак переноса на другой лист |
Внутри знака ставится номер оператора которому передается управление или номер оператора от которого передается управление |
Для составления алгоритма необходимо:
1) провести детальный анализ алгоритмизируемого процесса и разбить его на элементарные операции;
2) составить перечень операций и присвоить им соответствующие символы операторов;
3) выделить ЛУ, от которых зависит последовательность операций, и присвоить им соответствующие символы логических операторов;
4) изобразить процесс в виде ГСА, соблюдая необходимую последовательность выполнения операторов;
5) выполнить проверку алгоритма на детерминированность.
Пример 4.1. Составить ГСА работы устройства автоматического наведения пакета направляющих по углу возвышения.
Решение.
Для начала составляется словесное описание процесса горизонтирования по одной оси:
после включения устройства необходимо установить заданный угол возвышения;
проконтролировать положение пузырька уровня;
если пузырек отклонился «назад», то угол возвышения необходимо увеличить;
если пузырек отклонился «вперед», то угол возвышения необходимо уменьшить;
этот процесс продолжается до тех пор, пока пузырек не будет находиться на середине, после чего формируется донесение об окончании наведения.
По словесному описанию можно выделить следующие функциональные операторы:
А0 – включение устройства;
А1 - установка заданного угла возвышения;
А2 - контроль положения пузырька уровня;
А3 – формирование команды в электропривод наведения для движения на опускание;
А4 - формирование команды в электропривод наведения для движения на подъем;
А5 – формирование донесения об окончании наведения;
Ак – конец наведения.
Кроме этих операторов необходимо ввести два логических условия:
В соответствии с принятыми обозначениями и словесным описание строится ГСА (рис.4.1.). Следует обратить внимание на то, что при передаче сигналов управления в прямом направлении, то есть сверху вниз и слева направо, стрелки на линиях связи можно не ставить, а влево и вверх стрелки ставятся всегда.
После получения ГСА необходимо выполнить проверку алгоритма на детерминированность.
ГСА будет детерминирована, если выполняются следующие условия:
1) каждый функциональный оператор должен встречаться только один раз;
2) к каждому оператору, кроме начального, должен быть хотя бы один переход;
3) от каждого функционального оператора, кроме конечного, должен быть только один переход;
4) от каждого логического оператора, должно быть только два перехода.
Рис.4.1. Граф-схема алгоритма горизонтированияния.
Логические схемы алгоритмов (ЛСА). ЛСА являются наиболее компактной формой записи алгоритмов. Кроме того, они позволяют выполнить формализованное объединение нескольких алгоритмов в один.
Порядок составления ЛСА такой же как и при составлении ГСА. ЛСА используют те же операторы, что и ГСА, однако имеют иные правила записи:
все операторы записываются в одну строку, которая состоит из символов операторов, логических условий и верхних и нижних стрелок, которым приписаны натуральные числа;
если после оператора Ai следует выполнить оператор Aj , то он записывается справа от него (… Ai Aj …);
если
после оператора Ai
всегда
следует
выполнять оператор
Aj
, но справа от Ai
записан другой оператор, то переход от
Ai
к Aj
организуется с помощью оператора
безусловного перехода
(
),
т.е. всегда выполняется оператор, перед
которым стоит нижняя стрелка (
)
с тем же индексом, что и у верхней стрелки
после оператора
(
);
после
ЛУ также всегда ставится верхняя
нумерованная стрелка с индексом (
).
Если ЛУ выполняется, то следует выполнить
оператор, записанный справа от ЛУ. При
не выполнении ЛУ осуществляется переход
к оператору, на который указывает
стрелка;
после выполнения оператора Ак действие алгоритма заканчивается.
Алгоритм наведения качающейся части изображенный на рис.4.1. в форме ЛСА может быть записан в следующих видах:
(4.2)
или
. (4.3)
Символические записи вида (4.2) или (4.3) и называются ЛСА.
Следует
обратить внимание
на то, что если последовательность
выполнения операций нарушается при pi
=1,
то это условие записывают, как
,
в этом случае переход по стрелке
осуществляется, если
(т.е. pi=1).
Для того чтобы уменьшить количество цифр, используемых для нумерации стрелок, все верхние стрелки рекомендуется нумеровать одним номером, если соответствующие им нижние стрелки находятся в одном месте.
После получения ЛСА необходимо выполнить проверку алгоритма на детерминированность.
ЛСА будет детерминирована, если выполняются следующие условия:
1) каждый функциональный оператор должен встречаться только один раз;
2) перед оператором А0 и после оператора Ак стрелок быть не должно;
3) после каждого логического оператора, всегда должна быть верхняя стрелка;
4) каждой верхней стрелке соответствует только одна нижняя (с тем же номером);
5) не должно быть двух одинаковых (с одинаковыми номерами) нижних стрелок
6) каждой нижней стрелке соответствует хотя бы одна верхняя (с тем же номером).
Матричные схемы алгоритмов (МСА). Рассмотренные ЛСА удобны и компактны в записи, но по ним не удобно проверять алгоритм на детерминированность. Поэтому в некоторых случаях более удобной является запись алгоритма в виде матричной схемы. Кроме того, МСА используются в некоторых методах получения объединенных алгоритмов.
МСА представляет собой квадратную матрицу, имеющую к-1 строку и к-1 столбец. Строкам сопоставлены операторы от которых возможен переход (т.е. от А0 до Ак-1 ), а столбцам операторы к которым возможен переход (т.е. от А1 до Ак )
(4.4)
Логические функции перехода ij = ij(p1, p2, …, pm) должны удовлетворять условиям:
если при фиксированных значениях ЛУ p1*, p2*,…, pm*, после оператора Ai должен выполняться оператор Aj , то ij(p1*, p2*,…, pm*) = 1;
если не должен выполняться, то то ij(p1*,p2*,…,pm*) = 0.
Таким образом, элементы матрицы (9.4) задают логические условия перехода от оператора Ai к Aj.
В частном случае может быть ij = 0, т.е. переход от Ai к Aj невозможен или ij = 1, т.е. после Ai всегда выполняется Aj. В этих случаях вместо логической функции ij пишут 0 или 1 (для наглядности 0 обычно не записывают).
По MСA очень удобно проверять составленный алгоритм на детерминированность. Для того чтобы алгоритм был детерминирован, для каждой строки МСА должны выполняться условия:
1) логическое произведение (конъюнкция) любых пар элементов должна быть равна нулю
(4.5)
2) логическая сумма (дизъюнкция) всех элементов строки должна быть равна единице
(4.6)
Условия (4.5) и (4.6) должны выполняться для всех строк МСА (9.4). Эти условия детерминированности имеют следующий смысл.
Первое условие (4.5) требует, чтобы после выполнения оператора Ai был переход не более, чем к одному оператору. Так как нет перехода к оператору A0 , то нет и столбца A0.
Второе условие (4.6) требует, чтобы после выполнения оператора Ai обязательно обеспечивался переход к какому-либо оператору. Строки Aк нет, т.к. после Aк никаких операций не выполняется.
Таким образом, в детерминированном алгоритме при любом наборе значений ЛУ {p1*, p2*,…, pm*} переход может осуществляться к одному и только к одному оператору.
Исключением являются операторы A0 и Aк.
Алгоритм наведения качающейся части, изображенный на рис.9.1., или описываемый выражением (4.2) в форме МСА будет иметь вид:
(4.7)
Для всех строк кроме строки А2 выполнение условий (9.5) и (9.6) очевидно. Для строки А2 необходимо выполнить проверку:
т.е. условие (4.5) выполняется;
условие (4.6) так же выполняется.
Следовательно, алгоритм (4.7) детерминирован.