
Лекция 6
Программное обеспечение систем управления
Программное обеспечение (ПО) наряду с аппаратным обеспечением (процессором, памятью, внешними устройствами) является вторым важнейшим компонентом ЭВМ. Можно сказать, чтоосновные возможности ЭВМ, ее интеллект, отличающий ее от других электронных устройств, реализованы именно в ПО.
В настоящее время затраты на создание ПО в несколько раз превышают соответствующие затраты на аппаратную часть ЭВМ. При использовании в системах управления ЭВМ гибкость и эффективность системы и качество управления не в последнюю очередь зависят от программ, которые выполняет ЭВМ.
1. Математическое обеспечение эвм
Программы, используемые в системах управления, создаются на основе предварительного теоретического анализа системы управления, ее математического моделирования, во время которого проверяются технические решения и определяются параметры системы, обеспечивающие оптимальное управление данным объектом. Математический анализ позволяет синтезировать оптимальный алгоритм управления, рассчитать реакцию системы на возможные отклонения в условиях функционирования объекта и на изменения в узлах системы управления.
ПО — это воплощение, реализация математического обеспечения. При проектировании системы управления немалая доля затрат приходится на математический анализ системы вследствие сложности и невозможности интуитивно предсказать ее поведение. Математический аппарат анализа систем управления относится к наиболее сложным разделам современной математики.
Несмотря на широкое использование ЭВМ при проектировании, синтез системы остается во многом трудно формализуемым творческим актом высококвалифицированного специалиста, не поддающимся автоматизации (в отличие от программирования). Поэтому до сих пор часто употребляют термин «математическое обеспечение» вместо термина «программное обеспечение», особенно среди разработчиков систем, в том числе систем управления, подчеркивая тем самым важность математической основы любой программы.
2. Алгоритмы
По результатам математической проработки задачи формируется алгоритм программы — конечная последовательность однозначных правил, исполнение которых позволяет с помошью конечного числа шагов получить решение задачи из некоторого класса однотипных задач, однозначно определяемое исходными данными. Подразумевается, что исходные данные могут изменяться в определенных пределах и процесс применения правил к исходным данным (путь решения задачи) определен вполне однозначно; на каждом шаге процесса применения правил известно, что нужно считать результатом этого процесса. При создании алгоритма программы по результатам математического анализа задачи обычно проводят оптимизацию для учета дополнительных условий, важнейшими из которых являются следующие:
технические характеристики ЭВМ (объем ОЗУ, магнитного диска, производительность процессора и т.д.);
имеющиеся в наличии инструменты программирования (трансляторы или интерпретаторы языков программирования, библиотеки стандартных подпрограмм, текстовые редакторы, отладчики, оболочки и т.д.);
степень универсальности программы и соответствующие требования к надежности и модифицируемости программы и форме диалога с ней.
Эти правила противоречивы, и поиск разумного компромисса требует разносторонней квалификации специалиста (в крупных учреждениях, занимающихся созданием программ, предусмотрен целый штат алгоритмистов). Разработан свод правил, облегчающих построение эффективных алгоритмов. Например, алгоритм должен по возможности решать именно поставленную задачу, а не серию отдельных задач. Использование циклических, итерационных процедур позволяет сократить размер программы, сделать ее понятнее при программировании и надежнее при эксплуатации. Максимально используются готовые отлаженные и проверенные блоки и подпрограммы.
Именно при составлении алгоритма следует предусмотреть проверки на соответствие исходных данных и результатов различным ограничениям. Например, при вычислениях делитель не должен быть близок к нулю, детерминант не должен быть меньше нуля; при программировании операции точения для станка-автомата программа должна проверить наличие и закрепленность заготовки, установить суппорт в исходное положение; при создании протокола обмена между управляющей ЭВМ и программируемым контроллером следует разработать удобный и компактный набор условных кодов, подлежащих передаче по линии связи, и т.д.
Понятие алгоритма было сформировано и широко применяется в математике для описания последовательности действий при решении задач; оно было заимствовано специалистами в области программирования. Алгоритм есть пусть не точная, но понятная программисту форма постановки задачи, наглядно иллюстрирующая исходные данные программы, логику решения задачи и требуемые результаты. В алгоритме обычно опускаются несущественные или очевидные детали, прорабатываемые на следующем этапе во время программирования по алгоритму.
Степень детализации алгоритма определяется уровнем квалификации потребителя алгоритма. Например, требуется создать программу вычисления среднего арифметического по результатам замеров. Возможны различные формы представления алгоритма расчета.
Это,
например, могут быть формулы для
вычисления среднего:
Однако эта форма предполагает обычно высокую квалификацию потребителя алгоритма и применяется в основном в специальной литературе.
Для повышения наглядности часто используют блок-схему алгоритма (рис. 3.60). При усложнении алгоритма блок-схемы теряют наглядность, поэтому их применяют главным образом для изображения укрупненного алгоритма, которое отражает его логику.
Рис. 3.60. Блок-схема алгоритма вычисления среднего значения
Алгоритм может быть представлен также в виде схемы действий, заданной в словесной форме, например, для той же задачи вычисления среднего он будет выглядеть следующим образом:
1. Ввод числа замеров N.
2. Подготовка цикла вычисления суммы результатов замеров: счетчик цикла i = 1;
начальное значение сумматора S=0.
3. Ввод по очереди значений замеров и вычисление их суммы:
4. Проверка правила завершения цикла: если i ≤ N , то идти к п. 3,
5.
Вычисление среднего арифметического:
6. Вывод значения среднего арифметического.