- •Часть I р. И. Сольницев
- •Глава 1 Введение в автоматизацию проектирования систем автоматического управления
- •§ 1.1. Системы автоматического управления (сау) как объекты проектирования
- •§ 1.2. Сапр как новые средства проектирования
- •§ 1.3. Этапы истории развития сапр сау.
- •Автоматизация проектирования систем и средств управления
- •Дерево целей проектирования:
- •История развития сапр.
- •Задача векторной оптимизации.
- •Глава 2 процесс проектирования сау и его автоматизация
- •§ 2.1. Цели, критерии и условия ограничений процесса проектирования
- •§ 2.2. Этапы проектирования и проектные процедуры
- •Математическая модель Системы Проектирования (сп) как «спирали проектирования»
- •Глава 3 структура системы автоматизации проектирования сау
- •§ 3.1. Концепция, принципы и их структурная реализация
- •§ 3.2. Техническое обеспечение.
- •§ 3.3. Математическое обеспечение
- •§ 3.4. Лингвистическое обеспечение
- •§ 3.5. Программное обеспечение
- •§ 3.6. Информационное обеспечение
- •§ 3.7. Методическое и организационное обеспечение
- •Глава 4 автоматизация построения математических моделей сау
- •§ 4.1. Методы построения математических моделей и их применение в сапр
- •§ 4.2. Вывод математических моделей в аналитическом виде на эвм
- •§ 4.3. Упрощение и преобразование математических моделей на эвм
- •Математическое обеспечение сапр.
- •Стационарные линейные детерминированные модели систем с сосредоточенными параметрами.
- •Переход от дифференциальных уравнений n – ого порядка к нормальной форме Коши
- •Математические модели элементов сау.
- •Методы линеаризации уравнений
- •Глава 5 моделирование систем автоматического управления
- •§ 5.1. Методы моделирования и их применение в сапр
- •§ 5.2. Приведение математических моделей сау к виду, удобному для моделирования
- •§ 5.3. Численные методы и алгоритмы моделирования
- •§ 5.4. Контроль и оценка точности моделирования
- •Глава 6 автоматизация анализа сау
- •§ 6.1. Методы анализа сау и их применение в сапр
- •6.2§. Машинные методы анализа
- •§ 6.3. Машинно-аналитический метод анализа
- •§ 6.4. Подсистема сапр сау «Анализ»
- •Глава 7 Автоматизация синтеза сау
- •§ 7.2. Машинные методы синтеза
- •§ 7.3. Подсистема сапр сау «Синтез»
- •Методы нлп
- •Задача нлп
- •Градиентный метод оптимизации
- •Метод градиента
- •Метод случайного поиска
- •Метод Даниленко-Каган
- •Метод Трахтенбергп
- •Экстраполяционный случайный поиск с адаптирующимся шагом
- •Алгоритм с перестройкой вероятностных характеристик поиска
- •Глобальный случайный поиск с независимым выбором плотности распределения пробных шагов
- •Локально – глобальный поиск коллективом автоматов имени Буша – Мостселлера.
- •Методика выбора алгоритмов поисковой оптимизации.
- •Метод ситуационного управления:
§ 3.4. Лингвистическое обеспечение
Лингвистическое обеспечение включает в себя совокупность естественных языков проектировщиков с их проблемной ориентацией, алгоритмических языков программирования и машинно-зависимых языков кодирования управления работой (систему команд) технических средств САПР. Выполняя один из основных принципов создания инструментов САПР — многоязычность, определяющий доступность этих инструментов проектировщикам всех разрядов, специалистам только в своей предметной области,— разработчик САПР строит входной язык инструментов САПР как проблемно-ориентированный язык (ПОЯ). Этот ПОЯ основан на естественном языке проектировщиков. С другой стороны, все процессы в ЭВМ протекают как взаимодействие кодов, построенных из множеств «1» и «О», соответствующих состоянию элементов ЭВМ, которые находятся в одном из двух физических состояний (1 или 0). Дело, таким образом, состоит в том, чтобы по командам, сформулированным на естественном языке проектировщика, эти «О» и «1» «двигались» так, чтобы в результате их движения достигалось решение поставленной проектировщиком задачи.
В табл. 3.8 приведена языковая иерархия, которая позволяет последовательно переходить от естественных языков проектировщиков (0-й уровень) до машинных языков, на которых функционируют устройства ЭВМ (3-й и 4-й уровни). Такой подход возможен только при наличии трансляторов (от лат. translator — переносчик) — программ, реализованных на ЭВМ и предназначенных для перевода описаний с одного формального языка на другой. Первый из этих языков называется входным, второй — выходным. Характерными функциями трансляторов являются лексический разбор текста на входном языке, синтаксический анализ предложений и преобразование их в форму, удобную для хранения и дальнейшего использования в вычислительном процессе. В частности, синтаксически управляемый транслятор (СУТ) позволяет на основе формального описания синтаксиса входного языка осуществлять анализ предложений этого языка, а также других входных языков, принадлежащих одному классу по грамматике.В соответствии с табл. 3.8 требуется по крайней мере четыре транслятора для всей иерархии языков.
Естественные языки проектировщиков отличаются от общеразговорных, литературных и гуманитарных языков большей лаконичностью, однозначностью, четкостью построения предложений. Сам процесс проектирования «формирует» такой язык, являющийся некоторым подмножеством языка деловой прозы. Последний служит средством общения людей между собой, людей и машин во всей цепочке от идей до производства готового изделия (см. рис. 2).
Особенностями языка проектирования в целом является наличие формализованных диалектов естественных языков разработчика, конструктора, технолога, испытателя (ЕЯР, ЕЯк, ЕЯт, ЕЯн) с ограниченным (как правило, не более нескольких сотен) набором базовых понятий — достаточно определенных структур построения предложений, с наличием хорошо формализованных выражений действий проектировщиков и «действий» проектируемых систем и устройств. Например, при выборе чувствительных элементов в контуре регулирования САУ ТГ в текст соответствующего отчета включается предложение: «Для контроля и регулирования температуры поверхности рабочих лопаток турбины необходимо выбрать одно из следующих устройств: манометрические термометры, терморегулирующие устройства, биметаллические термометры, термопары, оптические пирометры». На этом 0-м уровне допускаются эвристические выражения, неполнота и избыточность информации, применение нестандартных символов. Стандартизация и унификация описаний на этом уровне является, по существу, начальным этапом формализации языка проектировщиков. Проблемно-ориентированные языки (ПОЯ) включают в себя описание объекта проектирования, описание задания на проектные процедуры и выходных результатов. В этом смысле ПОЯ являются языками описания конкретных проектных процедур. Остановимся подробнее на ПОЯ, так как остальные уровни языков рассматриваются в базовых вузовских курсах по основам программирования и должны быть знакомы читателю. Требования к ПОЯ включают в себя следующее:
1) возможность детального описания объектов, к которым применяется подсистема, инструмент САПР;
2) максимальное приближение к естественному языку проектирования данной категории;
3) максимальная лаконичность записи;
4) однозначность интерпретации элементов записи.
По сравнению с 0-м уровнем в этом случае уточняются эвристические выражения, устраняется неоднозначность описаний, вводятся правила и форма записи, с которой предусматривается наиболее просто и эффективно трансляция на следующий уровень.
Несмотря на отмеченные черты естественных языков проектировщиков от них до ПОЯ довольно длинный путь формализации. На этом пути необходимо выделить дескрипторный словарь, под которым понимается набор ключевых слов — лексических единиц языка с семантическим наполнением. При этом каждая единица должна представлять определенное понятие, действие.
Далее необходимо сформировать формальную «грамматику» ПОЯ — набор правил и директивных конструкций для формирования выражений. Следуя Н. Хомскому (известному специалисту по искусственным языкам) и другим специалистам в области машинной лингвистики, можно определить такую «грамматику» как конечное множество правил, устанавливающих, какие цепочки слов образуют «правильные» предложения. В ПОЯ такие предложения всегда имеют ясную цель — произвести требуемое изменение во внутреннем состоянии ЭВМ или заставить ее «прочитать», «написать», «начертить» содержание части информации, находящейся в устройствах ЭВМ.
Грамматики классифицируются по сложности построения правил для построения допустимых для ЭВМ предложений на следующие виды: 1) грамматики с конечным числом состояний, соответствующие конечным автоматам и отражающие внутреннюю структуру ЭВМ, их систему команд, адресов и т. д.; 2) контекстно-свободные грамматики, соответствующие автоматам с бесконечной «магазинной» памятью и позволяющие строить предложения, не зависящие от смысла и содержания предыдущих и последующих предложений; 3) контекстно-связанные грамматики, которые приближаются к грамматикам естественных языков, но становятся сложными при их машинной ориентации.
Применение контекстно-свободной грамматики будет показано при построении ряда ПОЯ в инструментах, «математические модели», «моделирование», «анализ» и др. (см. главы четвертую — восьмую).
Другой важной процедурой при создании ПОЯ является разработка транслятора с этого языка, на язык программирования. Обычно это делается объединенными усилиями разработчиков САПР разных специальностей: системных программистов (в том числе специалистов по трансляторам), алгоритмистов (специалистов по алгоритмизации объектов проектирования и проектных процедур). В соответствии с отмеченными обстоятельствами при создании ПОЯ приходится выбирать между сохранением естественных форм языка деловой прозы и сжатием, однозначностью ПОЯ, его удобством для ведения диалога проектировщиками с помощью инструментов САПР.
Синтаксис ПОЯ задается в виде хорошо известных и получивших общее признание правил Бэкуса в их классической форме. Нормальные формы впервые введены американским математиком Бэкусом для описания синтаксиса АЛГОЛ-60 и включают известные правила, обычно излагаемые в курсах по основам программирования.
Алгоритмические языки программирования (ФОРТРАН, СИ, ПЛ/1) предназначены для решения широкого класса задач. Обладая большими удобствами для автоматизации программирования, эти языки, с другой стороны, значительно увеличивают расход средств на трансляцию. Так, трансляция с ФОРТРАНа в 2,5 раза длительнее, чем с Ассемблера. Тем не менее алгоритмические языки — это основные языки, на которых пишутся программы в программном обеспечении (ПО) САПР. В основу всех этих языков положен формульно-словесный способ записи' алгоритмов со своим алфавитом, синтаксисом и семантикой.
Машинные языки полностью определяются системой команд, адресами ячеек, особенностями конфигурации ЭВМ. Машинные языки — это адресные языки, на них производятся распределение памяти, условная адресация и другие внутренние операции в ЭВМ. Часто возникает необходимость в языках, которые, с одной стороны, учитывают особенности конкретной ЭВМ, а с другой— упрощают процесс составления программ за счет символических обозначений команд. Такие языки получили название автокодов и ассемблеров (от англ, assembler — собирать, монтировать). Ассемблеры позволяют более эффективно использовать аппаратные возможности ЭВМ и широко применяются при создании системных частей программного обеспечения — трансляторов, загрузчиков и т. д. (см. § 3.5). На Ассемблере вместо цифровых обозначений машинных кодов операций и операндов используется буквенное, автоматизируется распределение памяти, используются микроопределения, микрокоманды — заранее подготовленные на том же Ассемблере программные средства, настраиваемые в процессе разработки исходной программы.
Например, команда на Ассемблере пересылки 80-байтового поля с именем «СТРОКА 1» на поле «СТРОКА 2»— move char-cter имеет вид MVC: :<CTP 1, СТР 2>. По сравнению с записью той же команды в шестнадцатеричном машинном коде ДКОИ-8, т. е. в двоичном коде обмена информацией, запись MVC гораздо экономичнее.
Машинные — внутренние — языки ЦВМ определяются таблицами кодировки, например ДКОИ-8. В таких таблицах элементы кода строятся в соответствии с правилом: номер столбца и строки, на пересечении которых находится интересующий нас символ, определяют соответственно старшую и младшую цифры кода символа. Например, знак + имеет шестнадцатеричный код 4Е,что соответствует двоичному представлению 01001110. Такие таблицы обычно придаются к техническому описанию ЭВМ и используются системными программистами при разработке соответствующих компонентов инструмента САПР.