Статья из блога Кена Ширрифа из Музея компьютерной истории
Мы восстанавливаем винтажный (1969 года, судя по маркировке чипов) компьютер, недавно найденный одним из наших сотрудников. Аналоговые компьютеры когда-то были популярны для быстрых научных расчётов, но практически вымерли в 1970-х. Интересны они совершенно отличной от цифровых компьютеров парадигмой. В данной записи я сфокусируюсь на операционных усилителях (ОУ), использовавшихся в этом аналоговом компьютере, Model 240 от Simulators Inc.
Аналоговый компьютер Model 240 от Simulators Inc. – «высокоточный настольный аналоговый компьютер общего назначения», содержащий до 24 ОУ (в данной модели их 20).
Что такое аналоговый компьютер?
Аналоговый компьютер выполняет вычисления с использованием физических, непрерывно изменяемых значений, таких, как напряжение. По контрасту с этим, цифровой компьютер использует дискретные двоичные значения. У аналоговых компьютеров долгая история – сюда входят и механизмы с шестернями, и логарифмические линейки, и механические интеграторы диск-шар, и приливные компьютеры, и механические системы наведения. Однако «классические» аналоговые компьютеры 1950-х и 1960-х годов используют ОУ и интеграторы для решения дифференциальных уравнений. Обычно их программировали путём подключения проводов к коммутационной панели, что приводило к появлению мешанины из проводов.
«Программирование» аналоговых компьютеров посредством подключения проводов к коммутационной панели. Эта панель от аналогового компьютера EAI
Большим преимуществом аналоговых компьютеров была их скорость. Они вычисляли результаты практически мгновенно, поскольку их компоненты работали параллельно. Цифровым компьютерам иногда подолгу требовалось пыхтеть над вычислениями. В итоге аналоговые компьютеры приносили наибольшую пользу в симуляциях реального времени. Недостатком аналоговых компьютеров было то, что их точность напрямую зависела от точности их компонентов; если вам требовалась точность до 4 знаков, вам нужны были дорогие резисторы с точностью в 0,01%. При этом цифровые компьютеры можно делать с любой точностью, просто используя больше битов. К сожалению для аналоговых компьютеров, быстрота и мощность цифровых ЭВМ росли экспоненциально, и к 1970-м уже практически не осталось причин использовать аналоговые.
Внутри аналогового компьютера
Сердце аналогового компьютера – его операционные усилители (ОУ). ОУ могут суммировать и масштабировать входной сигнал, обеспечивая простейшие математические расчёты. Что более важно, скомбинировав ОУ с точным конденсатором, можно было создавать интеграторы. Интегратор интегрировал входной сигнал по времени, заряжая конденсатор. Это позволяло аналоговым компьютерам решать дифференциальные уравнения. Может показаться странным, что интегрирование, сложная математическая операция, была базовым строительным блоком аналоговых компьютеров, но именно так работало железо.
Интеграторы аналоговых компьютеров использовали крупные точные конденсаторы. Вверху видно переменный (настраиваемый) конденсатор на 10 нФ, а большая металлическая коробка внизу – это переменный конденсатор на 10 мкФ. Эти конденсаторы делались так, чтобы утечка была крайне малой, и интегрируемое значение из них не утекало. На переднем плане – реле для выбора конденсаторов.
Аналоговые компьютеры использовали несколько потенциометров для задания входных значений и масштабирующих констант. Для обеспечения высокой точности настройки потенциометры могли поворачиваться до 10 раз. Для проверки значения потенциометров использовался вольтметр. Его также можно было использовать и для демонстрации выходных значений, однако чаще они выводились на осциллограф, диаграммную ленту или плоттер.
Сверху – цифровая секция аналогового компьютера. Внизу – потенциометры; у этой модели компьютера некоторые потенциометры отсутствуют. Вместо пустой панели слева вверху мог стоять цифровой вольтметр.
У некоторых аналоговых компьютеров были и цифровые компоненты – вентили, триггеры, моностабильные мультивибраторы и счётчики. Подобная функциональность давала возможность вести более сложные расчёты – к примеру, перебирать решения в пространстве решений. У нашего компьютера есть немного цифровой логики, к которой есть доступ через цветную коммутационную панель (на фото выше).
На фото ниже компьютер частично разобран. Внутри он оказался более сложным, чем я ожидал, со множеством монтажных плат. Мы сняли коммутационную панель, открывшую нам сетку из контактов. Кабель, подключённый к коммутационной панели, замыкает контакты и настраивает программу. За панелью у компьютера обнаружилось пять модулей: самый левый из них вынут, и лежит перед компьютером (вообще, внутри есть место для шести модулей, но один не был установлен – видимо, это удешевлённая модель, и поэтому у неё не установлено несколько потенциометров). Плата, которую видно вверху, поддерживает цифровую логику и два аналоговых умножителя. Питание и схемы для передней панели расположены внизу.
Аналоговый компьютер со снятым кожухом. Один из модулей вынут и лежит перед ним.
Ниже показано фото модуля крупным планом, а также контакты панели спереди. Сзади видно восемь плат. Слева направо на платах: четыре ОУ (4 платы), различные схемы (1 плата) и умножитель (3 платы). В аналоговом компьютере умножение было неожиданно сложно реализовать; три платы нужны для единственной схемы, перемножающей два значения.
Аналоговые компьютеры могли вычислять произвольные функции при помощи диодно-резисторных сетей. Для перемножения сети настраивались так, чтобы вычислять параболическую функцию. Умножение считалось через тождество X×Y = ((X+Y)2 — (X-Y)2)/4. Суммы и разности вычислялись посредством ОУ, а квадрат – через генератор параболической функции.
Один из модулей. «Пальцы» на передних контактах вставляются в коммутационную панель. За ними видны квадратные высокоточные резисторы (0,01%).
Операционные усилители
На фото вверху у каждого ОУ есть своя отдельная плата, заполненная различными компонентами. На каждой плате есть интегральная схема ОУ, что заставляет задуматься над тем, зачем же нужно так много других компонентов. Ответ простой – аналоговые компьютеры требовали очень чёткой работы ОУ. В частности, ОУ должны были работать с сигналами при постоянном токе и низкой частоте, но, к сожалению, ОУ очень плохо ведут себя в этом диапазоне, они больше любят высокие частоты.
В 1949 году было выработано решение для работы ОУ на низких частотах: чоппер-усилители. Идея следующая: чоппер модулирует входной сигнал, допустим, на 400 Гц. ОУ радостно усиливает этот переменный сигнал на 400 Гц. Второй чоппер демодулирует выходной переменный сигнал обратно в постоянный, что даёт гораздо лучшие результаты, чем прямое усиление постоянного сигнала. Платы для ОУ в аналоговом компьютере добавляют схему чоппера, дополняя интегральную схему ОУ и улучшая качество его работы.
Работу чоппера можно представить себе как работу амплитудного усилителя AM радиосигнала. Правда, в отличие от AM, демодуляция должна быть «фазочувствительной», чтобы отличать положительный и отрицательный сигнал.
На диаграмме (из этой брошюрки) показана схема работы платы ОУ. Идея в том, что часть входного сигнала проходит через конденсатор (фильтр верхних частот) в усилитель переменного тока. Также вход идёт в «стабилизирующий усилитель постоянного тока», на входе которого стоит чоппер. Выход демодулируется и проходит через фильтр нижних частот (резистор/конденсатор). Два выхода усилителя комбинируются и входят в «усилитель постоянного тока», выходной усилитель.
Обратите внимание на элементы для распознавания и предотвращения перегрузки. В аналоговом компьютере перегрузка может произойти довольно легко, когда вычисляемое значение окажется выше ожидаемого, и выйдет за пределы ОУ (± 10 В). В итоге результаты окажутся неправильными. ОУ отлавливает перегрузку и зажигает лампочку на панели, чтобы пользователь знал, в чём проблема. Важная часть работы программиста аналогового компьютера – понимать, как масштабировать данные, чтобы математические значения укладывались в физические ограничения системы.
На диаграмме ниже показана одна из плат ОУ. Сегодня у ОУ обычно есть положительный и отрицательный вход, но у аналоговых компьютеров обычно был только отрицательный – поэтому они суммировали данные и инвертировали их. Справа видно вход (отделённый от всех остальных контактов слева во избежание шума). Входы разбиты на три дорожки. Первая ведёт к чопперу-усилителю постоянного тока. Сигнал проходит через фильтр низких частот с целью извлечения постоянного тока и низкочастотного сигнала. Чоппер устроен просто: полевой транзистор с управляющим PN-переходом JFET переменно заземляет сигнал под управлением внешнего осциллятора на 400 Гц. Такой смодулированный сигнал подаётся на ИС ОУ Amelco 809, появившийся в 1967 году (компания Amelco, ныне забытая, когда-то играла важную роль в производстве ОУ; в частности, она сделала первый JFET ОУ). ИС – это круглый металлический цилиндрик; тогда такие корпуса были популярными, и помогали экранировать ОУ от шума. Наконец, выход ИС проходит через второй чоппер и фильтр для демодуляции.
Плата ОУ с аналогового компьютера, с размеченными функциональными группами. Хотя плата использует ОУ с ИС, для достижения необходимой эффективности работы ОУ требуется дополнительная обвеска.
С левой стороны идут контакты, и вот результат моего реверс-инжиниринга платы:
L: balance in
K: chopper ground
J: overload signal out
H: chopper drive in
F: ground
E: ground
D: -15V
C: +15V
B: op amp output
A: unused
Затем вторая входящая дорожка комбинируется с выходом усилителя постоянного тока. Большая часть ОУ основана на использовании дифференциальной пары, и эта плата не является исключением. В дифференциальной паре два транзистора выдают большое усиление разницы между двумя входящими сигналами. Входящими сигналами дифференциальной пары служат входящий сигнал платы и сигнал от чоппер-усилителя постоянного тока, поэтому она усиливает как первоначальный вход, так и постоянный сигнал. Чтобы ОУ работал правильно, два транзистора в дифференциальной паре должны быть идеально сбалансированы. В частности, транзисторы должны работать при одинаковой температуре, поэтому они соединяются металлической клипсой.
Важные транзисторы соединяются металлической клипсой, чтобы они работали при одинаковой температуре. Дифференциальная пара справа, а слева – буферные транзисторы входящего сигнала.
Третья входная дорожка идёт на усилитель переменного сигнала. Входящий сигнал проходит через фильтр высоких частот (резистор и конденсатор), а потом через простой транзисторный буфер. Сигнал «прямого распространения» комбинируется с выходом дифференциальной пары, чтобы улучшить частотный отклик усилителя. В этом месте входной сигнал усилен тремя разными способами, что даёт хорошее качество и на низких, и на высоких частотах.
Последний этап платы ОУ – выходной усилитель, дающий сильный ток, который используется в остальном компьютере. Он представляет собой усилитель класса АВ. В то время отдельным транзисторам не хватало мощности, поэтому он использует два NPN-транзистора и два PNP-транзистора.
У каждой платы вход и выход подведены к коммутационной панели. Ниже на фото панели ОУ (от А1 до А4) имеют форму кусочков пирога; входы у них зелёные, а выходы красные. ОУ, используемые в интеграторах, также подключены к интегрирующим конденсаторам.
Крупный план коммутационной панели с разъёмами для А1, А3 и А4. Входы зелёные, выходы красные. Начальные условия IC белые. Разъёмы потенциометров жёлтые.
На коммутационной панели у каждого ОУ есть несколько входных разъёмов с различными значениями резисторов для масштабирования; это числа 10 и 100 на фото. На фото ниже показаны эти высокоточные резисторы (чёрные цилиндры), напрямую подключённые к контактам коммутационной панели. Входы интеграторов управляются реле (ниже) и электронными переключателями, чтобы аналоговый компьютер мог инициализировать интегрирующие конденсаторы, запустить вычисление и сохранить результат для анализа.
Резисторы (чёрные цилиндры) напрямую подключены к контактам коммутационной панели. Реле в середине управляют различными состояниями компьютера: начальные условия, работа, удержание. Платы подключаются к зелёным контактам внизу.
Заключение
Хотя интегральные схемы с ОУ существовали в конце 1960-х, их качества не хватало для аналоговых компьютеров. Вместо этого для каждого ОУ использовалась целая плата с компонентами, комбинировавшие ИС ОУ с чопперами и другими элементами, позволявшими реализовывать высокоточный ОУ. И хотя улучшения качества ИС привели к экспоненциальному росту скорости вычислений цифровых компьютеров, аналоговые компьютеры получили, по сравнению с ними, крайне малые преимущества от ИС. В итоге цифровые компьютеры выиграли, а аналоговые компьютеры сегодня являются лишь историческими артефактами.
Съёмная коммутационная панель аналогового компьютера. Программировался он путём подключения проводов через отверстия. Панель можно снимать, поэтому пока один программист использовал компьютер, другой мог в это время подключать провода.
Я так детально описываю схему аналогового компьютера потому, что мы пытаемся восстановить его, но нам не хватает документации. Поэтому я занимаюсь реверс-инжинирингом, пытаясь понять, как восстановить его до рабочего состояния и как его программировать. Хотя схемы плат достаточно просты, в компьютере есть очень много составных частей, которые нужно проанализировать. Тяжелее всего разбираться в соединениях в плотных связках проводов, и в основном это приходится делать прозвонкой мультиметром.
Автор: Вячеслав Голованов