[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bfree-prj 324] Re: B−FreeOS入門書(第3回)



きしもと@農工大 です

>>  昔よりアナログ回路の技術も進歩していると思います。
>> 今の技術でアナログコンピュータを作るとどうなるのでしょうか?
>> 例えば``6''という数字をあらわすのにAD変換するより6Vであらわした方が
>> てっとり早いような気もします。
>> #まさゆきさんの文章に赤を入れているというより私の素朴な疑問です。
>
>現在の方式のコンピュータでは無理だと思いますよ。

ある特性のシグナルフィルタを、アナログ回路で実現したとして、
同じモノを DSP で実現したものと比較して考えれば、前者の回路は
アナログコンピュータであると言っていいのではないでしょうか。

まぁ、実際のところ、汎用性の無い回路を「コンピュータ」と
いうのには無理がありますから、ディジタルなハードウェアを
コンピュータとする、と定義しちゃうという乱暴な考え方も
ありそうです。

>少なくとも、比較なんかはどうなるのだろう。
>
>たとえば、「 if( a == 6 ) { ... 」という条件文があって、 
>a が 6V なら成立するが、気温が2〜3度上がって 6.0000001V だったら成立しないのか?
>
>もしかして基準となる電圧も変動して、6.0000001V = 6.0000001Vとなるのか?

メカニカルな計算装置は除外しまして、アナログの電気/電子回路での
計算の実現、というのは、いわゆるオペアンプ (演算増幅器) がそれに
あたります。歴史的にも、アナログコンピュータと呼ばれたハードウェアに
ほぼ相当します。

... そもそも「if」という発想はディジタルですね (^^;

最も単純なオペアンプは以下のような感じのモノです。
# 学校とかに実習用とかで回路シミュレータがあったらぜひ一度
# いぢってみましょう。

<+ in>
------|\
      |  \______
<- in>|  /<out>
------|/

# ほかに電源とアースがありますが略

で、{out = <+ in> - <- in>} というような動作をします。
たとえば、<+ in> が 3[V]、<- in> が 1[V] であれば <out> は 2[V] に
なります。


具体的な使用方法として、二分の一の演算回路を考えてみます。

         <+ in>
<input> -------|\
               |  \_______.______ <output>
         <- in>|  /<out>  |
     +---------|/         |
     |                     |
     +---------------------+

<output> は <input> の 二分の一の電圧に常に制御されます。

制御方面の言葉でいうところの「ネガティヴ・フィードバック(負帰還)」に
なっていますが、「計算」として見た場合、

<out> = <+ in> - <- in>
<out> = <- in>

という方程式の解である、と見ることができます。
こんな風にして「方程式を解く回路 = コンピュータ」を作ることができる、
というのがアナログコンピュータの基本的なところです。

プログラミングは原理的にパッチボード (ENIAC と同じ。配線のつなぎ直し)
でおこなうことになりそうですが。

最近のようにディジタルコンピュータが早く小さく安くなる前には、
制御屋さんは、アナログコンピュータを結構使っていたようです。

>真の「人工頭脳」を作るのならアナログであるべきかもしれません。
>(寒いと仕事をしたがらないとか、暑いとダレるとか..(^^;)

アナログ回路による「コプロセッサ」を付ければいいんぢゃないん
でしょうか。この場合サーミスタをセンサに持って、と。

私は、ガイガー計数管とラジオアイソトープをパッケージングした、
乱数発生コプロセッサとかが欲しい (^^;


	K.Makoto