ПОИСК Статьи Рисунки Таблицы От информационной блок-схемы к цифровой форме из "Математическое моделирование химических производств" Обычно информационную блок-схему кодируют в цифровой форме, чтобы облегчить вычисления. Рассмотрим четыре метода кодирования. Первым из них будет рассмотрен метод с использованием матрицы процесса, так как она содержит всю информацию об информационной блок-схеме. Программа PA ER для кодирования информационной блок-схемы использует матрицу процесса. [c.30] Можно видеть, что из трех видов информации в матрице процесса в матрице потоков остается только первый. Таким образом, матрица не содержит указаний ни на тип вычислительного блока, ни на порядок ввода и вывода потоков блока. [c.32] Другим способом кодирования информационной блок-схемы является матрица инциденций, показанная для установки А (фиг. 2.6) в табл. 2.3. Левый столбец содержит номер аппарата. [c.32] Если сумма столбца равна О, то поток связан с двумя блоками. Если сумма равна +1, то поток является питающим, а если —1, то имеет место поток продукта. Наличие в процессе рециркуляционного потока можно определить сразу же по матрице инциденций, если никакой перестановкой строк нельзя получить —1 над - -1 в каждом столбце, имеющем в сумме 0. Так, например, поток 7 в табл. 2.3 указывает на существование рециркуляционного потока, но какой именно поток — это будет зависеть частично от нумерации блоков и потоков. [c.32] Если информационная блок-схема не содержит рециклов, то блоки можно вычислять один за другим, начиная с блока, который имеет только (известные) питающие потоки, входящие в него. Существует по крайней мере один такой блок в противном случае должен быть рецикл. После того как один блок вычислен, его выходы превращаются в известные входы последующих блоков. По крайней мере для одного из блоков все входы известны, и его можно вычислить. Все блоки можно последовательно вычислить в том и только в том случае, если нет рецикла. [c.34] Разомкнутой схемой называется такая схема, в которой отсутствует рецикл. Часть процесса, в котором нет рецикла, можно назвать разомкнутой последовательностью. [c.34] Замкнутыми схемами являются те, в которых выходящий из блока поток влияет по крайней мере на один из его входных потоков. Даже в том случае, когда имеется контур, в схеме могут быть разомкнутые части, которые можно независимо вычислить, потому что первый блок имеет только входящие в него питающие потоки. Примером являются блоки 1 и 2 установки Б, представленной на фиг. 2.7. Такой участок можно вычислить вплоть до того блока, который будет иметь неизвестный входной поток. Если все блоки, которые можно непосредственно вычислить, вычислены, а в схеме еще остались не рассчитанные блоки и имеется хотя бы один контур — это замкнутая схема. [c.34] Различные замкнутые части производства не все взаимосвязаны. Множество блоков, связанных друг с другом таким образом, что от каждого блока к любому другому имеется путь в направлении стрелок, называется рециркуляционной последовательностью. В рециркуляционной последовательности может быть несколько контуров, и основной задачей является выбор наилучшего хода расчета такой сложной схемы. Примером двух рециркуляционных последовательностей являются блоки (4, 5) и (8, 9, 10) фиг. 2.7. Действительно, здесь имеется два контура в рециркуляционной последовательности блоков (8, 9, 10). [c.35] Теьерь блоки, входящие в любую информационную блок-схему, можно разделить на два типа блоки разомкнутых подсхем и блоки рециркуляционных последовательностей. Не может быть пары рециркуляционных последовательностей, которые были бы связаны в обоих направлениях, так как в противном случае они образуют одну несколько большую рециркуляционную последовательность. Таким образом, если рециркуляционные последовательности представлены как фиктивные блоки, информационная блок-схема является разомкнутой совокупностью нормальных и фиктивных блоков, которые можно рассчитать последовательно при условии, что каждая рециркуляционная последовательность может быть рассчитана. Например, на установке Б (фиг. 2.7) совокупность блоков 1, 2, (4, 5), 6, (8, 9, 10), 11 является разомкнутой (в скобках указаны фиктивные блоки). [c.35] Прямые пути выполнения пункта 1 будут рассмотрены в следующем разделе. Существует два принципиально различных метода выполнения пункта 2, а именно одновременный расчет рециркуляционной последовательности и нахождение последовательности вычислений внутри рециркуляционной последовательности. Оба метода обычно требуют выполнения повторяющихся вычислений (итераций) до тех пор, пока переменные потоков не достигнут значений, которые удовлетворяют предварительно точно определенному критерию ошибки или изменения которых при каждом шаге итерации не превышают заранее установленной величины. [c.35] Сначала рассмотрим методы, используемые для разделения блок-схемы на рециркуляционные и разомкнутые последовательности. Проблема решения рециркуляционных последовательностей обсуждается в разд. 2.5. [c.36] Для разделения блоков, входящих в разомкнутые последовательности, и блоков, входящих в рециркуляционные последовательности, предложен ряд способов. С целью систематического поиска можно использовать матрицу процесса. Способ, описанный Бобровым и Рафаэлем [13], был использован Саржентом и Вестербергом [166] для определения структур с рециклами. Матрица смежности послужила темой для нескольких статей, посвященных этой проблеме [23, 70, 132], и для дискуссии в недавно вышедших книгах Химмельблау и Бишофа [71], а также Радда и Уотсона [163]. Вопрос разделения разомкнутых и рециркуляционных последовательностей блоков обсуждался с использованием матрицы процесса и матрицы смежности. [c.36] Разделение разомкнутых и рециркуляционных последовательностей можно проиллюстрировать, используя установку Б (фиг. 2.7), для которой в табл. 2.5 представлена соответствующая матрица процесса. Метод заключается в повторяющемся просмотре строк матрицы процесса для нахождения блока, который можно рассчитать. [c.36] ОТ других блоков, которые уже рассчитаны. Блок 1 имеет только входящие в него питающие потоки, поэтому его можно рассчитать. Благодаря этому становится известным поток 3. После этого можно рассчитать блок 2, так как поток 3 теперь известен, а поток 4 питающий. Но блок 4 пока еще нельзя рассчитать, так как неизвестен поток 7, даже если поток 5 теперь известен, а поток 6 питающий. Среди оставшихся блоков нет таких, которые можно было бы рассчитать. Поскольку несколько блоков все еще не рассчитано, должна быть по крайней мере одна рециркуляционная последовательность. Это справедливо, так как в соответствии с -определением рецикла здесь входной поток (7) зависит от значений переменных потока (8), выходящего из того же самого блока. Таким образом была выделена разомкнутая подсхема, состоящая только из блоков 1 и 2. [c.37] Разомкнутые последовательности, которые следуют за рециркуляционными последовательностями (и могут быть рассчитаны непосредственно после них), могут быть выявлены последовательным просмотром оставшихся блоков для нахождения блока, выходные потоки которого не связаны ни с одним из других блоков или связаны с другим блоком в разомкнутую последовательность. Эта операция противоположна поиску разомкнутой последовательности на входе. Из табл. 2.5 ясно, что блок 4 не относится к этой категории, так как его поток 8 является входом в блок 5. Не является таковым и блок 5, потому что блок 7 является входом блока 4. Только блок 11 является разомкнутой последовательностью, так как поток 23 не является входом ни для одного из оставшихся блоков. Если вычеркнуть блок 11, то в блок-схеме не останется больше блоков, которые входили бы в разомкнутую последовательность с блоком 11. Например, блок 10 имеет выходной поток 19, связанный с блоком 9, хотя уже было найдено, что поток 21 связан с блоком 11. [c.37] В общем блоки, которые остаются после вычеркивания разомкнутых последовательностей, начинающих и заканчивающих процесс, могут быть частью рециркуляционной последовательности или разомкнутой последовательности, соединяющей две рециркуляционные последовательности. Например, на фиг. 2.7 после удаления разомкнутых последовательностей (1, 2) и И должны остаться блоки 4, 5, 6, 8, 9 и 10. Матрица процесса может быть использована для определения того, какой блок принадлежит какой рециркуляционной последовательности, а также для нахождения последовательности вычислений для этих блоков. Эти вопросы обсуждаются в разд. 2.5. [c.37] Предположим, что столбец, соответствующий блоку в А, имеет только нули, как для блока 1 из табл. 2.6. Это значит, что ни один блок не связан с блоком 1, т. е. в блок 1 входят только питающие потоки. Тогда блок 1 может быть записан в список для последующего вычисления и удален из матрицы А вычеркиванием его столбца и строки. Это показано в табл. 2.7,6, где блок 1 удален из А. После удаления блока 1 блок 2 будет иметь столбец, состоящий из нулей, и, следовательно, его тоже можно удалить. Больше таких столбцов нет. [c.38] МОЖНО внести в список для последующего вычисления перед ранее найденным блоком с нулевой строкой. Блок II удаляется из матрицы А путем вычеркивания его строки и столбца, как показано в табл. 2.7, г. Больше нулевых строк нет, и матрица А преобразуется в матрицу А, где все оставшиеся блоки 4, 5, 6, 8, 9 и 10 входят либо в рециркуляционную последовательность, либо в разомкнутую последовательность между двумя рециркуляционными последовательностями. [c.40] Одинаковое разделение начальных и конечных разомкнутых последовательностей достигается с помощью матрицы процесса и матрицы смежности. Дальнейшее размещение оставшихся блоков в различные рециркуляционные последовательности можно сделать непосредственно, используя матрицу смежности исчерпывающее исследование можно провести только при использовании матрицы процесса. Идентификация различных рециркуляционных последовательностей с помощью матрицы смежности будет проведена ниже. [c.40] Сокращенную матрицу смежности А, образующуюся при удалении нулевых строк и столбцов, можно использовать для идентификации различных рециркуляционных последовательностей, а в случае необходимости для идентификации контуров в каждой последовательности. Если рециркуляционную последовательность можно решать одновременным вычислением всех блоков, то не обязательно идентифицировать замкнутые контуры внутри рециркуляционной последовательности. Однако если подсхема должна быть решена последовательным вычислением блоков, то может возникнуть необходимость идентифицировать контуры. [c.40] Вернуться к основной статье