Опубликовано 23 марта 2012 года
Нынешняя эпоха — эпоха Цифры. Благодаря цифровым вычислительным машинам мы способны решать самые разнообразные задачи. Нужно рассчитать количество звёзд в нашей или соседней галактике? Пожалуйста. Показать, что может сделать с любым городом мира землетрясение силой в десять баллов? Легко. Схлестнуть на экране в смертельной битве автоботов и десептиконов? Сколько угодно!
Главное — взять компьютер помощнее, правильное программное обеспечение и толковых программистов, способных превратить поставленную им задачу в программный код. При этом, в принципе, совершенно не важно, какой предметной области принадлежит эта задача. В умелых руках кодеров она станет потоком битов — алфавитом современных цифровых ЭВМ, превращающих любой непрерывный во времени процесс в дискретное сообщение, с которым и работает двоичный разум компьютера.
Возможность представить любой непрерывный процесс в дискретной форме — фундамент нынешней эпохи Цифры. И успехи современных компьютеров говорят сами за себя. Мир, в котором процессы обработки и распространения информации в самой разнообразной форме достигли невиданных ранее высот, появился благодаря цифровым ЭВМ, оперирующим информацией, представленной в дискретной форме.
И универсальность такого представления всего чего угодно затмевает простой факт: наша реальность — это всё же поток непрерывных процессов, анализировать которые за миллиарды лет эволюции наш истинный персональный вычислитель — мозг — научился безо всякой дискретизации. И именно поэтому, переведя обрабатываемую компьютером реальность в цифровой вид, мы стараемся получить её обратно в более привычной нам непрерывной форме, в виде изображений и звуков.
А между тем не всегда и не все вычислительные машины служили эпохе Цифры. На эволюционном древе компьютеров и по сей день жива аналоговая ветка, плодами которой являются АВМ — аналоговые вычислительные машины. Приборы, решающие сложнейшие задачи, требующие в цифровых ЭВМ скрупулёзной алгоритмизации, одним махом. Просто потому, что их архитектура и есть процесс решения задачи. Стоит только на вход подать начальные условия.
Что требуется для решения какой-либо практической задачи на современном компьютере? Конечно же, он сам (то есть аппаратное обеспечение), затем соответствующее системное и прикладное программное обеспечение, ну и алгоритм решения задачи. Третий компонент обычно упускают из виду, в силу того что он зачастую рождается в голове программиста, а значит, вроде как компьютеру не принадлежит. Между тем важность алгоритмической составляющей в ходе решения задачи перевешивает порой важность качеств «софта» и «железа». Недаром же алгоритмы кое-где в литературе именуют brainware. Алгоритмический багаж человечества колоссален. И его накопление осуществляется постоянно. С тех самых времён, когда математические расчёты стали применяться для решения конкретных инженерных задач. В строительстве и кораблестроении, в астрономии и металлургии.
При этом применяя тот или иной математический аппарат для решения различных практических задач, инженеры и исследователи не могли не обратить внимания на тот факт, что различные по своей физической природе процессы нередко описываются одинаковыми математическими уравнениями. Так, к примеру, задачи из области гидродинамики, связанные с обтеканием тел потоком жидкости, решаются аналогично термодинамическим задачам, описывающим процесс распространения тепла в различных нагреваемых материалах, а также процессам распространения тока в электролитах. Ключевым словом здесь становится «аналогично». А раз получаемый результат одинаков во всех этих случаях, значит, процесс решения одной задачи (особенно если реализовать условия для её решения чрезвычайно трудно) можно заметить аналогичным (подобным) процессом из другой предметной области.
Так, решение дифференциальных уравнений второго порядка с переменными коэффициентами, широко применяемых в таких областях, как баллистика и астрономия, может быть получено с помощью последовательности простых механизмов, представляющих вращающиеся перпендикулярно друг другу диски разного диаметра. Один такой механизм способен непрерывно решать простейшее дифференциальное уравнение, передавая полученный интеграл на вход следующего подобного механизма. Придумал этот вычислитель в конце девятнадцатого века физик Уильям Томпсон (лорд Кельвин). Такая механическая система при этом могла выступать аналогом любого другого процесса, описываемого дифференциальными уравнениями. Например, точки прицеливания оружейного ствола. Именно для этих целей использовалась усовершенствованная американским инженером Вэниваром Бушем в тридцатых годах прошлого столетия схема механического вычислителя Кельвина-Томпсона, названная им "Дифференциальный анализатор".
Примерно в это же время в СССР инженер Лукьянов для решения сугубо практической задачи анализа изменения температуры в бетонной кладке в зависимости от состава бетона, технологии его заливки и внешних условий, описываемой всё теми же дифференциальными уравнениями, предложил новый способ механизации трудоёмких расчётов. Обнаружив сходство между движением потока жидкости и распространением тепла в твёрдых телах, Лукьянов разработал устройство, в котором вода выступала в роли аналога термодинамического процесса. Прибор Лукьянова представлял собой систему сосудов с водой и трубок с изменяемым гидравлическим сопротивлением — пьезометров. Подбирая величины гидравлических сопротивлений трубок и схему соединения сосудов, Лукьянов добился возможности решения системы уравнений с частными производными. Результат решения фиксировался на графиках вручную путём замера уровня воды в пьезометрах. Свое устройство Лукьянов назвал гидроинтегратором и постоянно продолжал его совершенствовать. В пятидесятые годы состав блоков гидроинтеграторов был унифицирован, что позволило наладить их серийное производство, специализируя выпускаемые вычислители для различных классов задач. Увидеть действующую модель гидроинтегратора Лукьянова сегодня можно в Политехническом музее.
Получается, что аналоговыми такие вычислители называются в том числе и потому, что они позволяют заменить процесс, прямое наблюдение которого по разным причинам затруднено, процессом аналогичным, но более наглядным. При этом важно то, что оба процесса описываются одинаковыми математическими зависимостями.
Подобные вычисления относятся к классу неалгоритмических, поскольку вместо описания процесса решения задачи с помощью набора дискретных операций в них применяется непрерывная (аналоговая) форма представления (НФП) обрабатываемых математических величин. Фактически вместо алгоритма решения конструкция подобных вычислителей сама по себе является решением. Подаваемые на их вход значения преобразовываются в соответствии с аналогиями аналитических зависимостей, реализованными в механических, гидравлических (пневматических) или электрических процессах.
Кстати, благодаря аналогии электрического сопротивления температурным процессам, в лаборатории электромоделирования Энергетического института, под руководством профессора Льва Израилевича Гутенмахера, в 1939 году были разработаны варианты аналоговых вычислителей, именуемых электроинтеграторами. Они широко применялись для решения систем уравнений Лапласа, Пуассона и Фурье, используемых при расчёте пространственных температурных полей, в частности в задачах радиационного теплообмена, а также подземной гидравлики в нефтедобывающей отрасли. Представляя собой координатную сетку, в узлах которой были расположены сопротивления с величинами, пропорциональными термическим сопротивлениям, электроинтегратор имитировал температурные поля или, например, нефтяные скважины с помощью токов, задаваемых в узлах этой сетки усилителями постоянного тока.
В середине пятидесятых годов прошлого столетия на Пензенском заводе счётно-аналитических машин (САМ) по заказу Министерства нефтяной и газовой промышленности был разработан электроинтегратор ЭИ-С (специальный), рещающая часть которого представляла крупнейшую в мире координатную сетку площадью двести квадратных метров. ЭИ-С позволял рассчитывать одновременную работу более пятисот эксплуатационных и двухсот пятидесяти нагнетательных нефтяных скважин. При этом для каждой скважины программировалось более пятидесяти изменяемых во времени параметров. Подробнее об ЭИ-С можно прочесть в журнале «Юный техник» номер 47 за 1960 год.
Являются ли рассмотренные выше механизмы аналоговыми вычислительными машинами? Безусловно. Правда, используя нынешнюю классификацию ЭВМ, их стоит отнести к специализированным вычислителям, ориентированным на решение узкого класса задач. Как и всякие специализированные решения, подобные конструкции были хороши в конкретных областях применения. Конечно, изменяя характеристики их элементов, можно было добиться расширения класса решаемых задач, однако ограничения подобия процесса, заложенного в их конструкцию, определённому, зачастую фиксированному, виду реальных процессов сильно ограничивало возможности их применения. Кроме того, «программирование» подобных вычислителей в большей степени являлось искусством и сильно зависело от умения выбрать правильную целевую функцию, что, конечно же, являлось далеко не формализуемой процедурой, а, скорее, экспериментальным поиском.
Развитие электроники позволило к середине прошлого столетия внести элемент упорядоченности в экспериментальный хаос аналоговых вычислителей. Базовой единицей такой упорядоченности стал разработанный в сороковые годы операционный усилитель. Операционным этот усилитель постоянного тока с дифференциальным входом называется не зря. Ведь его конструкция создавалась специально для моделирования базовых математических операций, таких, как дифференцирование и интегрирование. В связке с RC-цепочками, а также потенциометрами и сервоумножителями на базе операционных усилителей были разработаны типовые вычислительные узлы операционно-блочной модели, реализующей аналоговое математическое моделирование по методу непрямой аналогии. В такой модели каждой операции и функции решаемой задачи из реальной жизни соответствует подобный ей операционный блок, созданный в большинстве случаев на базе операционного усилителя. К таким операционным блокам относятся сумматоры, интеграторы, умножители, делители, функциональные преобразователи. При наличии достаточно большого набора таких блоков, а также источников питания для них появляется возможность решения широкого класса задач — основа универсальных аналоговых вычислителей.
Программирование таких вычислительных машин осуществляется путём составления аналоговой модели, эквивалентной решаемой задаче. Модель эта представляет собой схему соединения друг с другом типовых операционных блоков и методику расчёта их параметров. Последнее действие называется масштабированием модели.
Для создания конкретной схемы решения задачи в аналоговых компьютерах использовалась коммутационная панель — поле с выходами и входами всех операционных блоков. Для масштабирования модели имелась панель подстроечных элементов, управляющих характеристиками каждого отдельного блока.
Вычисления в таких компьютерах начинаются подачей на вход схемы питающего напряжения и заканчиваются по завершению переходных процессов в операционных блоках схемы. Поскольку все элементы схемы в момент подачи напряжения функционируют параллельно, говорить о пошаговом выполнении задачи нельзя. Вся схема целиком одномоментно имитирует решение эквивалентной ей задачи. Вывод таким аналоговым компьютером результатов решения «запрограммированной» в его схеме задачи осуществлялся чаще всего на осциллограф в виде графиков развития во времени моделируемого процесса.
Благодаря своей универсальности аналоговые компьютеры подобной конструкции нашли широкое применения практически во всех областях человеческой деятельности, где требовались расчёты сложных нелинейных динамических систем. Особое значение аналоговые вычислители приобрели в ходе освоения космического пространства. Расчёт орбит движения космических аппаратов, а также решение задач их баллистического спуска требовали вычислений в реальном масштабе времени и с учётом многочисленных корректировок.
К примеру, вот так будет выглядеть аналоговая схема решения задачи расчёта распространения вирусной инфекции.
А вот расчёт сейсмоустойчивости зданий.
Цифровые ЭВМ в то время не могли обеспечить достаточной скорости расчётов. А вот предварительно запрограммированные аналоговые машины прекрасно справлялись с поставленными задачами. Впрочем, аналоговым ЭВМ всё же пришлось уживаться с их цифровыми собратьями.
Даже несмотря на весьма небольшие погрешности отдельных операционных блоков, общая погрешность аналоговых компьютеров оставалось значительной. В сложных схемах решения ряда задач из-за накопления относительных погрешностей в их элементах суммарная погрешность схемы достигала пяти процентов.
Решить эту проблему помогло распределение вычислительной задачи между аналоговым и цифровым компьютером. Машинные комплексы, представляющие собой связанные с помощью АЦП-ЦАП преобразователей аналоговые и цифровые вычислители, назывались гибридными вычислительными системами.
Наибольшую известность в шестидесятые годы прошлого столетия приобрели гибридные ЭВМ производства компании Packard-Bell. Их компьютерная система HYCOMP, состоящая из аналогового компьютера MARK III и цифровой ЭВМ PB-440, использовалась для решения расчётных задач всех миссий лунной программы «Аполлон». В СССР подобные гибридные вычислительные комплексы «Сатурн» разрабатывались Пензенским заводом САМ на базе электроинтеграторов на резистивной сетке и цифровых ЭВМ семейства «Урал».
В дальнейшем успехи в области разработки интегральных цифровых схем позволили реализовать принципиально новый вид гибридности. В так называемых гибридных ЭВМ операционные блоки создавались на базе аналоговых схем лишь частично. Часть из них была реализована на цифровых схемах.
Такое схемотехническое решение позволило наряду с аналоговыми вычислениями реализовать: аналого-цифровое моделирование, конечно-разностное цифровое моделирование и цифровой вычислительный процесс на основе неалгоритмического потокового программирования, в ходе которого решение задачи организуется путём структурной перестройки процессора специального типа, именуемого FPAA (Field-programmable Analog Array). В FPAA в корпусе обычной интегральной микросхемы реализованы микроминиатюрные операционные блоки на основе традиционных для аналогового компьютера операционных усилителей.
Схема программируемой аналоговой матрицы FPAA
Являясь особым видом ПЛИС, интегральные схемы FPAA легко перепрограммируются под решение конкретных вычислительных задач, обеспечивая при этом минимально возможные для аналоговых операционных элементов погрешности вычислений. В отличие от своих цифровых собратьев FPGA, содержащих значительное количество логических элементов и соединительных связей, интегральные схемы FPAA состоят из относительно небольшого числа CAB-модулей, каждый из которых содержит либо схемы на основе операционных усилителей, либо массивы ёмкостей и резисторов. Фактически микросхемы FPAA реализуют конструкцию обычного аналогового компьютера с кросс-панелью в миниатюре. А это означает, что их можно применять для задач, в которых аналоговые компьютеры традиционно сильны. Так, современные FPAA в специальном исполнении, защищающем их от космической радиации, работают в качестве вычислителей орбит и траекторий полёта современных спутников и пилотируемых космических аппаратов.
А это означает, что у удивительных компьютеров без алгоритмов, зародившихся задолго до своих цифровых коллег и основанных на принципах подобия процессов в модельной и решаемой задаче, есть своё аналоговое, а если точнее — аналогово-цифровое будущее.