Статья из блога Кена Ширрифа из Музея компьютерной истории

Мы восстанавливаем винтажный (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-х, их качества не хватало для аналоговых компьютеров. Вместо этого для каждого ОУ использовалась целая плата с компонентами, комбинировавшие ИС ОУ с чопперами и другими элементами, позволявшими реализовывать высокоточный ОУ. И хотя улучшения качества ИС привели к экспоненциальному росту скорости вычислений цифровых компьютеров, аналоговые компьютеры получили, по сравнению с ними, крайне малые преимущества от ИС. В итоге цифровые компьютеры выиграли, а аналоговые компьютеры сегодня являются лишь историческими артефактами.


Съёмная коммутационная панель аналогового компьютера. Программировался он путём подключения проводов через отверстия. Панель можно снимать, поэтому пока один программист использовал компьютер, другой мог в это время подключать провода.

Я так детально описываю схему аналогового компьютера потому, что мы пытаемся восстановить его, но нам не хватает документации. Поэтому я занимаюсь реверс-инжинирингом, пытаясь понять, как восстановить его до рабочего состояния и как его программировать. Хотя схемы плат достаточно просты, в компьютере есть очень много составных частей, которые нужно проанализировать. Тяжелее всего разбираться в соединениях в плотных связках проводов, и в основном это приходится делать прозвонкой мультиметром.

Комментарии (13)


  1. ExtenZ
    14.10.2019 10:17

    Спасибо, будем читать и дальше
    В универе помню про таких


  1. chektor
    14.10.2019 12:14

    На элементной базе того времени, действительно, трудно было сделать точные аналоговые вычислители.
    Так понимаю, что это будет наглядное пособие, потому и восстанавливается.
    Такая же АВМ на современных элементах будет много точнее и дешевле.
    В статье, под фразой «потенциометры могли поворачиваться до 10 раз», наверное имелись ввиду не потенциометры [передней панели], а подстроечные резисторы на платах (которые настраивались во время ремонта/тестирования/поверки). Иначе, если бы они были на передней панели, нужна была бы индикация количества оборотов.


    1. Yuriy_krd
      14.10.2019 12:30

      Позволю Вас поправить. Это вполне обычные «наружные» потенциомеры (если можно так выразиться, внешние). Такие и сейчас используются (я их использую в Ардуино-поделках для более точной установки параметров). Но да, очень интересен вопрос индикации положения «крутилки» на данном экземпляре.


      1. Igor_O
        14.10.2019 14:03

        Там же по тексту прямо следующее предложение:

        … могли поворачиваться до 10 раз. Для проверки значения потенциометров использовался вольтметр.

        И это мог быть просто вольтметр, которым тыкаешь в контакты и смотришь значения, а мог быть и встроенный цифровой вольтметр, который упоминается в подписи к следующей фотографии.

        очень интересен вопрос индикации положения «крутилки» на данном экземпляре.

        Индикация положения на полностью аналоговом девайсе достаточно бессмысленна. Например, на совтеских радиорелейных станциях, было несколько крутилок для подстройки параметров приемника и передатчика, но на самих крутилках тоже не было никакой шкалы и разметки. Чуть-чуть ушло напряжение питания… и крути по-новой. Запоминать положение было бесполезно. Нужно было загнать стрелки на четырех индикаторах в зеленую зону. Чем ближе к центру загонишь, тем дольше в процессе работы не надо подстраивать.


      1. chektor
        15.10.2019 02:44

        Вот я всегда был против применения таких элементов для оперативного управления, состояние которых неизвестно и выясняется только в момент использования! Очень часто бывало, что оперативность начисто исчезала в таких случаях. Ну, если очень надо, ну укажи на лицевой панели, что ручка многооборотная, чтобы человека не обманывать градуировкой! и не делай стандартную сетку от 0 до 10. Делай круговую, чтобы человек знал!
        Сейчас на Алиэкспресс продают многооборотные резисторы со шкалой-отметчиком числа оборотов. Вот, это правильно.
        (не по своей вине поздно отвечаю, тут правила такие — не более одного коммента в час)


        1. Igor_O
          15.10.2019 13:24

          Сейчас на Алиэкспресс продают многооборотные резисторы со шкалой-отметчиком числа оборотов. Вот, это правильно.

          Вы мыслите в цифровой парадигме. Это в цифровой парадигме важно число оборотов ручки и куда она сейчас показывает. Когда есть энкодер, или хотя бы DAC/ADC с калибровкой и подстроечными коэффициентами, у которого с достаточно большой вероятностью одинаковое положение ручки означает одинаковое значение на выходе.
          В аналоговой технике этого не было. Вспоминая банальный FM приемник в магнитофоне Sharp 700 в 1990-м году… Была постоянно настроена любимая единственная радиостанция. И раз в несколько дней приходилось крутить ручку настройки, т.к. автоподстройки частоты начинало не хватать.

          Вот я всегда был против применения таких элементов для оперативного управления

          Компьютер из статьи — он не про оперативное управление. Он про инженерные расчеты не очень большой сложности. Не спеша скоммутировал на панели «программу», не спеша выставил потенциометрами исходные значения и пару раз перепроверил их вольтметром, нажал кнопку, чтобы «программа» запустилась, посмотрел на осциллографе, или на ленте самописца, или измерил вольтметром результат. Завел следующий пакет исходных значений, провел расчет, повторять пока не прогонит кто-то, кому нужно что-то другое посчитать.


          1. chektor
            15.10.2019 13:40

            В аналоговой технике мне было важно иметь ручку точной подстройки в среднем положении или знать её точное положение. Иначе, (ваш случай) «при настройке на станцию вдруг выяснялось, что не хватает диапазона точной подстройки»!
            Но в моих случаях работы с аналоговой техникой, точность была важна при настройке фильтров, установки частот генераторов и подобное. В то время (60е), у меня не было многооборотных резисторов, а были верньеры с редуктором.
            Насчет оперативности «проверки программы» мог бы поспорить, но нет желания открывать диспут. Одно дело, когда надо «проверить идею, формулу» и совсем другое, когда от тебя в жестком графике требую прогнать все возможные варианты и сроки сдачи вышли давно!
            Но спасибо, за ваши переживания по этой теме.


  1. AlexAV1000
    14.10.2019 15:24

    Важные транзисторы соединяются металлической клипсой, чтобы они работали при одинаковой температуре.


    Надеяться, что соединив два транзистора в пластиковых корпусах металлической клипсой, можно сделать температуру их кристаллов одинаковой, по меньшей мере наивно. Для этого делали специальные пары транзисторов на одной подложке.


  1. sim2q
    14.10.2019 22:12

    Про диффпару отдельно в связи с наличием ОУ уже никто и не вспоминает. Но как-то чинил советский усилитель «на рассыпухе» и с удивлением обнаружил различие в коэффициенте усиления транзисторов во входном каскаде — та самая диффпара… В… разы!
    Это к вопросу разброса деталек для гражданки. Или просто забили на отладку


    1. katzen
      15.10.2019 12:54

      Про диффпару отдельно в связи с наличием ОУ уже никто и не вспоминает.

      Вспоминают на высоких частотах, когда на дискретных элементах можно получить то, чего нельзя получить с помощью ОУ. Входные цепи некоторых моделей осциллографов: Rigol, например. Или когда возбуждение мешает из-за многокаскадности. Или когда не нужен коэффициент усиления, а важно лишь подавление синфазного сигнала.


      1. sim2q
        15.10.2019 19:09

        Это было для усиления эффекта обнаруженного раздолбайства :)


  1. Dimsml
    14.10.2019 22:40

    Интегратор диск-шар упомянули, а замечательное видео о том, как подобные интеграторы работали в компьютере наведения линкоров не показали, непорядок! Видео за авторством ВМФ США и называется Basic Mechanisms in Fire Control Computers.


  1. s44yuritch
    15.10.2019 11:59

    В 2002-2003 годах мы еще в универе на АВМ МН-7м лабораторки делали. А на следующий год АВМ списали и выкинули.
    Автор пропускает несколько моментов работы с машинами. Перед началом втыкания проводов нужно «выставить нули» (для каждого усилителя отдельно, больше усилителей — дольше процесс), через полчаса работы повторить, потому что они «уплывают». В работе машины можно соединять каскадом, при этом увеличивается степень дифуров, которые можно решать (некое подобие сети у аналоговых компьютеров).
    По сравнению с внешностью МН-7м американская машина из статьи — просто чудо дизайна. Но у дальней стены лаборатории стояли какие-то другие машины, куда более похожие на этого «американца»… только никто из преподавателей уже не знал, как с теми работать — человек, который их когда-то заказал, давно уволился. А МН-7м были (теплые, ламповые) простые, как утюги, тут проблем не возникало.