(57)【要約】ファジィ機能の実現は、ＡＤ変換器、ＤＡ変換器、マイクロプロセッサのソフトウエアの協同でなされ、ソフトハード両面の開発を要する。ソフトウエアを介するため、動作速度も制限される。所望のファジィ機能をしきい値付きの増幅器で実現する。左側の６個のトランジスタＭ１１−１６は、インバータとして利用される総和増幅器の本体に対応し、右側の１０個のトランジスタＭ１−１０は、総和増幅器の本体に相当する（図８）。【特許請求の範囲】
【請求項１】
入力電圧に対してアナログのしきい値素子として作用し、前記入力電圧に対する重み付け演算の結果を出力電圧として生成する演算増幅器を備え、
前記演算増幅器は、前記出力電圧が入力電圧に対して線形的に振る舞い、かつ所定の電源電圧で制限されるよう制御することにより、所望の関数を実現することを特徴とする関数デバイス。
【請求項２】
請求項１に記載の関数デバイスにおいて、
前記出力電圧の上下限が前記演算増幅器の飽和特性を定める関数デバイス。
【請求項３】
請求項１に記載の関数デバイスにおいて、
前記演算増幅器の動作点が前記電源電圧の１／２の電圧である関数デバイス。
【請求項４】
複数の演算増幅器によって構成され、それら演算増幅器の入力と出力の多値電圧信号が、複数のアナログしきい値関数の重ね合わせとして所定の関数に対応することを特徴とする関数デバイス。
【請求項５】
請求項４に記載の関数デバイスにおいて、
前記演算増幅器は、入力電圧の組合せが前記関数を表現したルックアップテーブルに含まれる最大値または最小値となる出力電圧に対応するとき、その出力電圧が飽和レベルになるよう制御する関数デバイス。
【請求項６】
請求項４に記載の関数デバイスにおいて、
前記関数を表現したルックアップテーブルを構成する離散的な点の間で、線形的な出力による近似がなされる関数デバイス。
【請求項７】
請求項１から６のいずれかに記載の関数デバイスにおいて、
当該デバイスは、ソフトウエア的な処理を廃したアナログ回路として構成される関数デバイス。
【請求項８】
入力電圧を入力する入力端子と、
前記入力端子から入力された前記入力電圧を処理し、前記入力電圧に対して出力すべき出力電圧を生成する処理回路部と、
前記処理回路部により生成された前記出力電圧を出力する出力端子と、を備え、
前記処理回路部は、入力された電圧の線形和を出力する複数のしきい値要素回路を含んでおり、
前記各しきい値要素回路から出力される電圧の重ね合わせが前記出力電圧となるように、前記各しきい値要素回路に、前記入力電圧および／または他の前記しきい値要素回路から出力される電圧が入力されるように構成されていることを特徴とする関数デバイス。
【請求項９】
請求項８に記載の関数デバイスにおいて、
前記しきい値要素回路は、前記線形和が所定範囲内にあるときに当該線形和を出力し、前記線形和が前記所定範囲の上限値以上であるときに当該上限値を出力し、前記線形和が前記所定範囲の下限値以下であるときに当該下限値を出力する関数デバイス。
【請求項１０】
請求項９に記載の関数デバイスにおいて、
前記しきい値要素回路は、第１の電源端子にソースが接続されたＰＭＯＳトランジスタと、前記第１の電源端子よりも低い電圧が印加される第２の電源端子にソースが接続され、前記ＰＭＯＳトランジスタのドレインにドレインが接続されたＮＭＯＳトランジスタとから構成されるＣＭＯＳトランジスタをｐ（ｐ：奇数）段有しており、
各段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ドレインは、次段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ゲートと接続されており、
第１段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ゲートと、第ｐ段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ドレインとは、フィードバック抵抗を介して接続されており、
前記第１段の前記各ゲートに、当該しきい値要素回路へ入力すべき電圧が入力抵抗を通じて入力し、前記第ｐ段の前記各ドレインから、当該しきい値要素回路から出力すべき電圧が出力されるように構成されている関数デバイス。
【請求項１１】
請求項１０に記載の関数デバイスにおいて、
前記第１の電源端子に印加される電圧が前記所定範囲の上限値を定め、前記第２の電源端子に印加される電圧が前記所定範囲の下限値を定める関数デバイス。
【請求項１２】
請求項８から１１のいずれかに記載の関数デバイスにおいて、
前記入力電圧および前記出力電圧は共にアナログ信号であり、前記処理回路部は、前記入力電圧をアナログ信号のまま処理する関数デバイス。
【請求項１３】
請求項１から１２のいずれかに記載の関数デバイスにおいて、
当該デバイスは、ファジィ制御を実行するものである関数デバイス。
【請求項１４】
請求項１３に記載の関数デバイスにおいて、
当該デバイスは、Ａ／Ｄ変換器であるファジィ化器、Ｄ／Ａ変換器であるデファジィ化器、およびマイクロプロセッサによるソフトウエア的な処理を廃したアナログ回路として構成される関数デバイス。
【請求項１５】
当該デバイスの出力が第１の直線上に乗っている第１出力区間を実現する第１の回路と、前記出力が第２の直線上に乗っている第２出力区間を実現する第２の回路と、を含むことを特徴とする関数デバイス。
【請求項１６】
請求項１５に記載の関数デバイスにおいて、
前記第１および第２の回路の出力は、それぞれ前記第１および第２出力区間以外の区間において一定値をとる関数デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、関数を実行する関数デバイスに関する。
【背景技術】
【０００２】  従来の関数デバイスおいて、所定の関数を処理する処理ブロックは、通常マイクロプロセッサのソフトウエアとして実装される。例えば、関数デバイスの一つであるファジィデバイス（ファジィ制御機能をもつコントローラまたはデバイス）は、ファジィ化器、ファジィ推論ブロック（処理ブロック）、およびデファジィ化器を有する。ファジィ化器とデファジィ化器は、通常ハードウエアで実装され、ファジィ推論ブロックは通常マイクロプロセッサのソフトウエアとして実装される。
【特許文献１】特開平７−３３４３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】  上述の関数デバイスは、以下の課題を有する。
１．処理ブロックがマイクロプロセッサにとって負荷となる。
２．処理ブロックの入力側および出力側に、それぞれＡＤコンバータおよびＤＡコンバータが必要になる。
３．ハードウエアとソフトウエアの両方の開発が必要になる。
４．処理速度が、マイクロプロセッサによって処理ブロックへの入力変数を検出する時間間隔によって制限される。【０００４】  この発明はこうした点に鑑みてなされたもので、上記いずれかの、または複数の課題を解決することを目的とする。
【課題を解決するための手段】
【０００５】  本発明の関数デバイスは、入力電圧に対してアナログのしきい値素子として作用し、前記入力電圧に対する重み付け演算の結果を出力電圧として生成する演算増幅器を備え、前記演算増幅器は、前記出力電圧が入力電圧に対して線形的に振る舞い、かつ所定の電源電圧で制限されるよう制御することにより、所望の関数を実現する。【０００６】  「演算増幅器」は総和型増幅器（ｓｕｍｍｉｎｇ  ａｍｐｌｉｆｉｅｒ）でもよいし、それ以外の例えば差動型増幅器などでもよい。「所定の電源電圧」の例は、この演算増幅器の動作電源の電圧である。また、関数は、数式を用いて表されるものの他、ルックアップテーブル等を用いて表されるものであってもよい。なお、ルックアップテーブルは、１次元あるいは２次元（すなわち入力変数の数が１あるいは２）に限らず、３次元以上（すなわち入力変数の数が３以上）であってもよい。【０００７】  前記出力電圧の上下限が前記演算増幅器の飽和特性を定めてもよく、また、演算増幅器の動作点が前記電源電圧の１／２の電圧であってもよい。【０００８】  本発明の別の態様も関数デバイスであり、複数の演算増幅器によって構成され、それら演算増幅器の入力と出力の多値電圧信号が、複数のアナログしきい値関数の重ね合わせとして所定の関数に対応するものである。【０００９】  このとき、前記演算増幅器は、入力電圧の組合せが前記関数を表現したルックアップテーブルに含まれる最大値または最小値となる出力電圧に対応するとき、その出力電圧が飽和レベルになるよう制御してもよい。ここで、ルックアップテーブルの例としては、多値論理における真理値表、およびファジィ論理におけるファジィ規則表などが挙げられる。【００１０】  また、前記関数を表現したルックアップテーブルを構成する離散的な点（当該テーブル中の要素）の間で、線形的な出力による近似がなされてもよい。ところで、ファジィ論理において、ファジィ規則が言語的な表現による場合、ある変数が「大きい」「中ぐらい」「小さい」など、間のない離散的な表現になる。そのため、それらを数値化したときにも、当然離散的になり、ファジィ規則を行列として表したとき、例えば３×３の離散的な９点による表現となる。そのため、そうした離散的な点の間の点については、離散的な点に関して定まる出力電圧の間を線形的に補間する等、近似すればよい。【００１１】  上記関数デバイスは、ソフトウエア的な処理を廃したアナログ回路として構成されてもよい。この場合、処理の高速化、回路規模の縮小等が可能になる。【００１２】  また、本発明による関数デバイスは、入力電圧を入力する入力端子と、前記入力端子から入力された前記入力電圧を処理し、前記入力電圧に対して出力すべき出力電圧を生成する処理回路部と、前記処理回路部により生成された前記出力電圧を出力する出力端子と、を備え、前記処理回路部は、入力された電圧の線形和を出力する複数のしきい値要素回路を含んでおり、前記各しきい値要素回路から出力される電圧の重ね合わせが前記出力電圧となるように、前記各しきい値要素回路に、前記入力電圧および／または他の前記しきい値要素回路から出力される電圧が入力されるように構成されていてもよい。【００１３】  「入��された電圧の線形和」は、入力される電圧をＶ１，Ｖ２，…，Ｖｎとしたとき、ｃ０＋ｃ１Ｖ１＋ｃ２Ｖ２＋…＋ｃｎＶｎで表される。ここで、ｃｉ（ｉ＝０，１，…，ｎ）は定数である。なお、しきい値要素回路への入力は１つ（すなわち上記ｎ＝１）でもよい。しきい値要素回路としては、例えば演算増幅器を用いることができる。【００１４】  前記しきい値要素回路は、前記線形和が所定範囲内にあるときに当該線形和を出力し、前記線形和が前記所定範囲の上限値以上であるときに当該上限値を出力し、前記線形和が前記所定範囲の下限値以下であるときに当該下限値を出力してもよい。「所定範囲」とは、例えば、しきい値要素回路の飽和レベル内の範囲（飽和レベルの下限電圧から上限電圧までの範囲）である。【００１５】  前記しきい値要素回路は、第１の電源端子にソースが接続されたＰＭＯＳトランジスタと、前記第１の電源端子よりも低い電圧が印加される第２の電源端子にソースが接続され、前記ＰＭＯＳトランジスタのドレインにドレインが接続されたＮＭＯＳトランジスタとから構成されるＣＭＯＳトランジスタをｐ（ｐ：奇数）段有しており、各段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ドレインは、次段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ゲートと接続されており、第１段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ゲートと、第ｐ段の前記ＣＭＯＳトランジスタを構成する前記ＰＭＯＳトランジスタおよび前記ＮＭＯＳトランジスタの各ドレインとは、フィードバック抵抗を介して接続されており、前記第１段の前記各ゲートに、当該しきい値要素回路へ入力すべき電圧が入力抵抗を通じて入力し、前記第ｐ段の前記各ドレインから、当該しきい値要素回路から出力すべき電圧が出力されるように構成されていてもよい。この場合、簡略な構成で上記しきい値要素回路を実現することができる。【００１６】  ここで、上記ｐ＝１、すなわちしきい値要素回路に設けられるＣＭＯＳトランジスタは１つでもよい。この場合、その１つのＣＭＯＳトランジスタが第１段のＣＭＯＳトランジスタでもあり第ｐ段（最終段）のＣＭＯＳトランジスタでもある。また、処理回路部に含まれる複数のしきい値要素回路のそれぞれに設けられるＣＭＯＳトランジスタの数（上記ｐのこと）は、等しい必要はなく、相異なっていてもよい。【００１７】  前記第１の電源端子に印加される電圧が前記所定範囲の上限値を定め、前記第２の電源端子に印加される電圧が前記所定範囲の下限値を定めてもよい。第２の電源端子は、接地してもよい。このとき、第２の電源端子に印加される電圧は０ということになる。【００１８】  前記入力電圧および前記出力電圧は共にアナログ信号であり、前記処理回路部は、前記入力電圧をアナログ信号のまま処理してもよい。【００１９】  上記関数デバイスは、ファジィ制御を実行するもの（ファジィデバイス）であってもよい。このとき、当該デバイスは、Ａ／Ｄ変換器であるファジィ化器、Ｄ／Ａ変換器であるデファジィ化器、およびマイクロプロセッサによるソフトウエア��な処理を廃したアナログ回路として構成されていてもよい。【００２０】  本発明による関数デバイスは、当該デバイスの出力が第１の直線上に乗っている第１出力区間を実現する第１の回路と、前記出力が第２の直線上に乗っている第２出力区間を実現する第２の回路と、を含むことを特徴としてもよい。この関数デバイスにおいては、入力に対して線形的な出力特性をもつ回路が複数合成されることにより、所望の関数が実装される。上記第１および第２の回路は、例えば、１または２以上のしきい値要素回路を含んで構成される。【００２１】  前記第１の回路の出力は、前記第１出力区間以外の区間において一定値をとり、前記第２の回路の出力は、前記第２出力区間以外の区間において一定値をとってもよい。この場合、第１の回路は、第１出力区間以外の区間において、当該デバイスの出力が乗っている直線の傾きに影響を与えない。第２の回路についても同様である。したがって、特に設計容易な関数デバイスが実現される。【００２２】  本発明のファジーデバイスは、入力電圧に対してアナログのしきい値素子として作用し、前記入力電圧に対する重み付け演算の結果の反転を出力電圧として生成する演算増幅器を備え、前記演算増幅器は、前記出力電圧が入力電圧に対して線形的に振る舞い、かつ所定の電源電圧で制限されるよう制御することにより、所望のファジー機能を実現する。【００２３】  本発明の別の態様もファジーデバイスであり、複数の演算増幅器によって構成され、それら演算増幅器の入力と出力の多値電圧信号が、複数のアナログしきい値機能の重ね合わせとして所定のファジー機能に対応するものである。【００２４】  このとき、前記演算増幅器は、入力電圧の組合せがファジー規則を表現した行列に含まれる最大値または最小値となる出力電圧に対応するとき、その出力電圧が飽和レベルになるよう制御してもよい。【００２５】  また、ファジー規則の仕様を構成する離散的な点の間で、線形的な出力による近似がなされてもよい。【００２６】  以上のいずれかのファジーデバイスにおいて、このデバイスは、Ａ／Ｄ変換器であるファジー化器、Ｄ／Ａ変換器であるデファジー化器、およびマイクロプロセッサによるソフトウエア的な処理を廃したアナログ回路として構成されてもよい。この場合、処理の高速化、回路規模の縮小等が可能になる。【００２７】  本発明の多値論理デバイスは、入力電圧に対してアナログのしきい値素子として作用し、前記入力電圧に対する重み付け演算の結果を出力電圧として生成する演算増幅器を備え、前記演算増幅器は、前記出力電圧が入力電圧に対して線形的に振る舞い、かつ所定の電源電圧で制限されるよう制御することにより、所望の多値論理関数を実現する。【００２８】  本発明の別の態様も多値論理デバイスであり、複数の演算増幅器によって構成され、それら演算増幅器の入力と出力の多値電圧信号が、複数のアナログしきい値関数の重ね合わせとして所定の多値論理関数に対応するものである。【００２９】  このとき、前記演算増幅器は、入力電圧の組合せが多値論理規則を表現した行列に含まれる最大値または最小値となる出力電圧に対応するとき、その出力電圧が飽和レベルになるよう制御してもよい。ここで、「多値論理規則を表現した行列」の例としては、多値論理における真理値表が挙げられる。【００３０】  また、多値論理規則の仕様を構成する離散的な点の間で、線形的な出力による近似がなされてもよい。【００３１】  上記多値論理デバイスは、ソフトウエア的な処理を廃したアナログ回路として構成されてもよい。この場合、処理の高速化、回路規模の縮小等が可能になる。【００３２】  また、本発明による多値論理デバイスは、入力論理値に対応付けられた入力電圧を入力する入力端子と、前記入力端子から入力された前記入力電圧を処理し、前記入力論理値に対して出力すべき出力論理値に対応付けられた出力電圧を生成する処理回路部と、前記処理回路部により生成された前記出力電圧を出力する出力端子と、を備え、前記処理回路部は、入力された電圧の線形和を出力する複数の演算増幅器を含んでおり、前記処理回路部における最終段の前記演算増幅器から出力される電圧が前記出力電圧となるように、前記各演算増幅器に、前記入力電圧および／または他の前記演算増幅器から出力される電圧が入力されるように構成されていることを特徴としてもよい。【００３３】  「最終段の演算増幅器」は、上述の通り、その出力が上記出力電圧となる演算増幅器であり、これに該当する演算増幅器が処理回路部に複数設けられていてもよい。すなわち、多値論理における出力変数が複数ある場合には、最終段の演算増幅器を複数設ければよい。
【図面の簡単な説明】
【００３４】
【図１】図１（ａ）は、総和増幅器の一般構造、図１（ｂ）はそのＣＭＯＳによる実装の例を示す図である。
【図２】図２（ａ）は総和増幅器の振る舞いを電圧座標系で示し、図２（ｂ）は同様に多値変数座標系で示す図である。
【図３】図３（ａ）はｆａ（ｘ）、図３（ｂ）は−ｍａｊ（ｘ，−ａ，−ｋ）をそれぞれ示す図である。
【図４】関数（ｘ＋１）ｍｏｄｍの実装を示す図である。
【図５】従来のファジィデバイスの構造を示す図である。
【図６】表１によって特定される関数を模式的に示す図である。
【図７】表１と表２によって特定されるファジィコントローラのＣＭＯＳによる実装を示す図である。
【図８】ｗａｓｈ＿ｔｉｍｅ行列によって特定されるファジィコントローラのＣＭＯＳによる実装を示す図である。
【図９】図８のファジィコントローラの動作のＳＰＩＣＥシミュレーション結果を示す図である。
【図１０】（ａ）は７値関数の一例をフラグメントコンスタントで、（ｂ）はフラグメントリニアで示した図である。
【図１１】ｋ＝７の場合の関数Ｍ−１（ｘ）を示す図である。
【図１２】（２２）式を実装した回路を示す図である。
【図１３】（ａ）〜（ｃ）は、図１２の回路の振る舞いの一例を示す図である。
【図１４】（ａ）〜（ｄ）は、（２５）式に対応する回路の振る舞いの一例を示す図である。
【図１５】入力変数のメンバーシップ関数を示す図である。
【図１６】（ａ）は表８のＦ１（ｙ）を示し、（ｂ）はＦ２（ｙ）を示す図である。
【図１７】Ｆ１（ｙ）を構築する手順を示す図である。
【図１８】（３７）式に従って実装された回路の構成を示す図である。
【図１９】（ａ）および（ｂ）は、それぞれ３ステージおよび５ステージのプッシュプルＣＭＯＳ演算増幅器を用いて構成された総和増幅器の一例を示す図である。
【図２０】ＳＰＩＣＥシミュレーションに用いるコントローラ回路を示す図である。
【図２１】３ステージの増幅器を用いてコントローラを構成した場合のシミュレーション結果を示す図である。
【図２２】５ステージの増幅器を用いてコントローラを構成した場合のシミュレーション結果を示す図である。
【図２３】関数ｆ１（ｚ）を表すグラフである。
【図２４】関数ｆ１（ｚ）の５つの構成要素を表すグラフである。
【図２５】関数α１（ｚ）の求め方を説明するためのグラフである。
【図２６】関数α２（ｚ）の求め方を説明するためのグラフである。
【図２７】マトリクスＭ３の実装の仕方を説明するための図である。
【図２８】（ａ）は、関数ε１（ｚ）を表すグラフである。（ｂ）は、関数ε２（ｗ）を表すグラフである。
【図２９】（ａ）は、関数ε３（ｙ）を表すグラフである。（ｂ）は、関数−ε４（ｘ）を表すグラフである。
【図３０】関数ｆ４を表すグラフである。
【図３１】関数Φ１（ｘ）を表すグラフである。
【図３２】関数ｆ５を表すグラフである。
【図３３】関数Φ２（ｘ）を表すグラフである。
【図３４】ピラミッド関数を表すグラフである。
【図３５】図３４に示すピラミッド関数の実装の仕方を説明するための図である。
【図３６】関数γ（ｘ）を表すグラフである。
【図３７】ピラミッド関数の変形例を示すグラフである。
【図３８】（ａ）は、図３４のピラミッド関数のｙ軸に垂直な断面を示すグラフである。（ｂ）は、図３４のピラミッド関数のｘ軸に垂直な断面を示すグラフである。
【図３９】（ａ）−（ｃ）は、ピラミッド関数の断面形状を説明するための図である。
【図４０】（ａ）−（ｄ）は、関数ｆ６（ｘ，ｙ）の実装の仕方を説明するための図である。
【図４１】（ａ）−（ｆ）は、関数ｆ６（ｘ，ｙ）の実装の仕方を説明するための図である。
【図４２】（ａ）は、図４３中のＨＳ３−ＨＳ３３の構成例を示す図である。（ｂ）は、図４３中のＰＨＳ１およびＰＨＳ２の構成例を示す図である。
【図４３】表９に示す関数を実装したコントローラ回路を示す図である。
【図４４】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図４５】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図４６】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図４７】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図４８】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図４９】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５０】図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５１】関数Ｆ１（Ｘ，Ｖ）を示す図である。
【図５２】関数Ｆ２（Ｘ，Ｖ）を示す図である。
【図５３】関数Ｆ１（Ｘ，Ｖ）を示すグラフである。
【図５４】表１０に示す関数を実装したファジィコントローラ回路を示す図である。
【図５５】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５６】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５７】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５８】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図５９】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図６０】図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。
【図６１】（ａ）は、任意の関数ｙ＝ｆ（ｘ）を表すグラフである。（ｂ）は、関数ｙ＝ｆ（ｘ）に対応する関数ｑ＝ｈ（ｐ）を表すグラフである。
【図６２】関数ｑ＝ｈ（ｐ）がサンプリングされた様子を示すグラフである。
【図６３】副関数ηｉ（ｐ）を表すグラフである。
【図６４】（ａ）は、各サンプリング点に対応する副関数を示すグラフである。（ｂ）は、全ての副関数を重ね合わせて得られるグラフである。
【図６５】被実装関数が直線の場合を説明するための図である。
【図６６】ｙ＝ｓｉｎ（ｘ）の実装例を説明するための図である。
【図６７】ｙ＝ｓｉｎ（ｘ）を実装した回路（関数デバイス）を示す図である。
【図６８】図６７中の副関数η２（ｐ）を実装した回路を示す図である。
【符号の説明】
【００３５】Ｍ１−２４…トランジスタ、Ｒ１−９３…抵抗、Ｓ１−Ｓ１１，ＨＳ１−３３，ＰＨＳ１，２，７…総和増幅器（しきい値要素回路）。
【発明を実施するための最良の形態】
【００３６】１．総和増幅器の多値論理要素回路としての利用
総和増幅器の振る舞いは、図１（ａ）のような非接続状態で正確に決まり、以下のごとく記述される。ここでは、この回路に含まれるメンバーのｉｎｆｉｎｉｔｅｓｉｍａｌ  ｏｒｄｅｒが増幅ファクターによって決まる。
2005004032.tif 000002
【００３７】  ここで、Ｖｄｄは電源電圧、Ｖｊはｊ番目の入力電圧、Ｒｊはｊ番目の抵抗の値、Ｒ０はフィードバック抵抗値、Ｖｄｄ／２は増幅器の動作中間点である。このような総和増幅器のＣＭＯＳによる実装例を図１（ｂ）に示す。
2005004032.tif 000003
に対するＶＯＵＴの依存性は図２（ａ）に示される。すなわち、この演算増幅器は、入力された電圧（Ｖ１，Ｖ２，…，Ｖｎ）の線形和：
2005004032.tif 000004
2005004032.tif 000005
を出力する。ただし、この演算増幅器は、当該線形和が所定範囲の上限値（＝Ｖｄｄ）以上であるときには当該上限値を出力し、当該線形和が所定範囲の下限値（＝０）以上であるときには当該下限値を出力する。【００３８】  以下のようなｍ＝２ｋ＋１個の電圧レベル値を多値変数として有する回路を考える。なお、このように多値論理における値の数（ここではｍ）が奇数であると仮定しても、議論の一般性は保たれる。
2005004032.tif 000006
【００３９】  また、Ｒ０／Ｒｊ＝ωｊとおく。すると（１）式は、以下のように表現できる。
2005004032.tif 000007
図２（ｂ）は（３）式を模式的に示す。【００４０】  以降、振る舞いが（３）式のシステムによって規定される機能要素回路を「多値しきい値要素回路」とよぶ。特に、最も簡単なケースであるωｊ＝１、ｊ＝１，２，３（ｎ＝３）の場合について、（３）式を多数決関数とよび、ｙ＝ｍａｊ（ｘ１，ｘ２，ｘ３）と表すことにする。【００４１】２．多値論理におけるしきい値要素回路の関数完全性
基本演算またはその組は、その論理が基本演算の重ね合わせで表現できるとき、任意の多値論理において関数完全性を有すると言える。関数完全性を有する集合は、いくつか知られている。そのため、ある新規の関数の関数完全性を証明するためには、その関数の重ね合わせによって関数完全性を有する既知の集合が表現できることを言えば足りる。ｍ値論理において関数完全性を有するものとして、以下のＷｅｂｂ関数が知られている。
2005004032.tif 000008
【００４２】  多値論理におけるしきい値演算の関数完全性を証明するには、しきい値または多数決関数によってＷｅｂｂ関数が表現できることを言えば足りる。【００４３】  まず、ｍａｘ（ｘ１，ｘ２）という関数をしきい値関数で表現する。このために、関数ｆａ（ｘ）を以下のようにとる。
2005004032.tif 000009
【００４４】  この関数は図３（ａ）に示される。また、−ｍａｊ（ｘ，−ａ，−ｋ）という関数は図３（ｂ）に示される。実際、ｘ＜ａであれば、ｘ−ａ−ｋ＜−ｋゆえ、−ｍａｊ（ｘ，−ａ，−ｋ）＝−ｋとなる。よって、すべてのｘについて、ｆａ（ｘ）＋ｍａｊ（ｘ，−ａ，−ｋ）＝ａ＋ｋが成り立つことがわかる（図３参照）。その結果、
2005004032.tif 000010
となる。いま、−ｍａｊ（ａ，ｂ，ｃ）＝ｍａｊ（−ａ，−ｂ，−ｃ）であることを考慮すれば、（６）式から以下の式が導かれる。
2005004032.tif 000011
【００４５】  続いて、関数（ｘ＋１）ｍｏｄｍをしきい値関数で表すことを考える。これは、図４を参照すれば簡単に行うことができる。念のため説明しておくと、
（ｘ＋１）ｍｏｄｍ＝−ｍａｊ（−ｍａｊ（ｘ，１，０），２ｋ・ｍａｊ（−ｍａｊ（ｘ，１−ｋ，−ｋ），ｋ，０），０）
と表せる。この式のｘに（７）式を代入すると、（４）式のＷｅｂｂ関数が多数決関数によって表現されることがわかる。【００４６】３．多値のアナログ回路としてのファジィデバイス
従来のファジィデバイスまたはファジィコントローラ、すなわちファジィ制御機能を有する回路は、たいてい図５に示す構成をもつ。【００４７】  アナログ変数Ｘ＝｛ｘ１，ｘ２，．．．，ｘｎ｝がファジィデバイスの入力である。ファジィ化器（Ｆｕｚｚｉｆｉｃａｔｏｒ）はアナログ変数ｘｊを重み付けされた言語表現によるデジタル変数Ａ＝｛ａ１，ａ２，．．．，ａｎ｝に変換する。例えば、「変数ｘｊは平均的な正の値に関しては重み０．３をもち、大きな正の値に関しては重み０．４をもつ」などである。【００４８】  ファジィ推論ブロックは、「もしａｊが平均的な正の値をもち、ａｉが小さな負の値をもつなら、ｂｋは小さな正の値をもつ」等のファジィ規則に基づき、重み付けされた、言語表現によるデジタル変数値Ｂ＝｛ｂ１，ｂ２，．．．，ｂｋ｝を生成する。【００４９】  デファジィ化器（Ｄｅｆｕｚｚｉｆｉｃａｔｏｒ）は、重み付けされた言語表現によるデジタル変数Ｂ＝｛ｂ１，ｂ２，．．．，ｂｋ｝を出力アナログ変数Ｙ＝｛ｙ１，ｙ２，．．．，ｙｋ｝に変換する。【００５０】  一般に、ファジィ化器とデファジィ化器はＡＤＡ、すなわちアナログ−デジタル−アナログコンバータにより、ハードウエア実装され、ファジィ推論は通常マイクロプロセッサのソフトウエアで実装される。【００５１】  一方、各入力アナログ変数に曖昧さなく対応する一組の出力アナログ変数が存在する。したがって、ファジィデバイスは以下のごとき関数を実行するアナログ信号コンバータと考えることができる。
2005004032.tif 000012
【００５２】  （８）式は、ｎ次元曲面系を表す。これらの曲面を区間ごとに線形な近似によって特定する可能性を考える。ｍ＝２ｋ＋１個の言語表現による変数ａｊ値がアナログ変数ｘｊに対応するとする。ファジィ規則系に則り、ｍ値の論理関数系を以下のように表すことができる。
2005004032.tif 000013
【００５３】  このことから明らかなごとく、もしファジィコントローラが（９）式で表現されるなら、それは多値しきい値要素回路の重ね合わせで表現できる。この場合、飽和レベル（（３）式および図２（ｂ）参照）以内の領域（所定範囲）におけるしきい値要素回路の線形的な振る舞いにより、仕様を決める離散点の間で自然な線形近似がなされる。【００５４】４．しきい値要素回路を用いたファジィコントローラ実装例
４．１  題材として″Ｄｅｓｉｇｎ  ｏｆ  ａ  Ｒｕｌｅ−Ｂａｓｅｄ  ｆｕｚｚｙ  ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  ｔｈｅ  Ｐｉｔｃｈ  Ａｘｉｓ  ｏｆ  ａｎ    Ｕｎｍａｎｎｅｄ  Ｒｅｓｅａｒｃｈ  Ｖｅｈｉｃｌｅ″，Ｄｅｅｐａｋ  Ｓａｂｈａｒｗａｌ  ａｎｄ  Ｋｕｌｄｉｐ  Ｓ．Ｒａｔｔａｎ，Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  Ｅｎｇｉｎｅｅｒｉｎｇ，Ｗｒｉｇｈｔ  Ｓｔａｔｅ  Ｕｎｉｖｅｒｓｉｔｙ，Ｄａｙｔｏｎ，ＯＨ  ４５４３５，ＣＨ３１５８−３／９２／００００−０４４９（１９９２  ＩＥＥＥ，Ｆｕｚｚｙ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ，ＣＲＣ  Ｐｒｅｓｓ  ＬＬＣ，Ａｂｒａｈａｍ  Ｋａｎｄｅｌ（Ｅｄｉｔｅｄ  ｂｙ），Ｌｏｆｔｉ  Ａ．Ｚａｄｅｈ（Ｆｏｒｅｗｏｒｄ  ｂｙ），Ｓｅｐｔｅｍｂｅｒ  １９９３，ｐｐ８１−８６を考える。【００５５】  このファジィ制御の規則は、誤差ｅ＝ｒｅｆ−ｏｕｔｐｕｔと誤差の変化率
2005004032.tif 000014
に基づく。
ファジィ化器は７レベルの言語表現による変数に対応する。各レベルは、ＮＢ−負の大（−３）；ＮＭ−負の中（−２）；ＮＳ−負の小（−１）；ＺＯ−ゼロ（０）；ＰＳ−正の小（１）；ＰＭ−正の中（２）；ＰＢ−正の大（３）である。出力は均一な勾配をもつ。【００５６】  デファジィ化の際、ＮＢ値はＶＯＵＴ＝０Ｖ、ＺＯ値はＶＯＵＴ＝１．７５Ｖ、ＰＢ値はＶＯＵＴ＝３．５Ｖをそれぞれ生成する。ここで電源電圧Ｖｄｄ＝３．５Ｖである。４９のファジィ規則は表１に示される。
2005004032.tif 000015
2005004032.tif 000016
【００５７】  表２は７値論理関数として表１を示したルックアップテーブル（ＬＵＴ）である。
2005004032.tif 000017
【００５８】  表１から、ファジィ関数は北西から南東へ向かう対角線について対称であり、ｅ−ｃｅに依存する。この依存性を図６に示す。図２と図６の比較から明らかなとおり、表２の関数を再現するために、ひとつの二入力総和増幅器とひとつのインバータを準備するだけでよい。−ｋから＋ｋの間にある論理変数の反転は、
2005004032.tif 000018
なる演算に当たり、総和増幅器の出力電圧の空間においては、
2005004032.tif 000019
なる演算に相当する。【００５９】  図７は、所望の関数に対応するＣＭＯＳ回路（関数デバイス）であり、１６個のトランジスタと５個の抵抗を有する。同図において、″０．４ｕ″と″０．６ｕ″は半導体のプロセス、すなわちトランジスタのサイズを示す。左側の６個のトランジスタＭ１１−１６は、インバータとして利用される総和増幅器の本体に対応し、右側の１０個のトランジスタＭ１−１０は、総和増幅器の本体に相当する。具体的には、この関数デバイスは、トランジスタＭ１−１０および抵抗Ｒ１，２，５が適宜接続されて構成された演算増幅器と、トランジスタＭ１１−１６および抵抗Ｒ３−４適宜接続されて構成された演算増幅器との２つの演算増幅器（しきい値要素回路）を含む処理回路部を備えている。これらの演算増幅器のうち図中右側が最終段の演算増幅器に該当する。また、図中ＶｅおよびＶｃｅと記載されている部分が関数デバイスの入力端子、Ｖｏｕｔｐｕｔと記載されている部分が出力端子、Ｒ１−３が入力抵抗、Ｒ４−５がフィードバック抵抗、Ｍ６−１０およびＭ１４−１６のソースに接続されている端子が第１の電源端子（電源電圧Ｖｄｄが印加されている）、Ｍ１−５およびＭ１１−１３のソースに接続されている端子が第２の電源端子（接地されている）である。【００６０】４．２  ″Ｍａｎｉｐｕｌａｔｏｒ  ｆｏｒ  Ｍａｎ−Ｒｏｂｏｔ  Ｃｏｏｐｅｒａｔｉｏｎ（ｃｏｎｔｒｏｌ  ｍｅｔｈｏｄ  ｏｆ  Ｍａｎｉｐｕｌａｔｏｒ／Ｖｅｈｉｃｌｅ  Ｓｙｓｔｅｍ  ｗｉｔｈ  ｆｕｚｚｙ  ｉｎｆｅｒｅｎｃｅ）″，Ｙｏｓｈｉｏ  Ｆｕｊｉｓａｗａ，Ｔｏｓｈｉｏ  Ｆｕｋｕｄａ，Ｋａｚｕｓｈｉｒｏ  Ｋｏｓｕｇｅ，Ｆｕｍｉｈｉｔｏ  Ａｒａｉ（Ｎａｇｏｙａ  Ｕｎｉｖｅｒｓｉｔｙ）；Ｅｉｊｉ  Ｍｕｒｏ，Ｈａｒｕｏ  Ｈｏｓｈｉｎｏ，Ｔａｋａｓｈｉ  Ｍｉｙａｚａｋｉ（Ｔａｋｅｎａｋａ  Ｃｏｒｐｏｒａｔｉｏｎ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｓｅａｒｃｈ  Ｌａｂｏｒａｔｏｒｙ）；  Ｋａｚｕｈｉｋｏ  Ｏｈｔｓｕｂｏ，Ｋａｚｕｏ  Ｕｅｈａｒａ（Ｋｏｍａｔｓｕ  Ｌｔｄ，Ｔｅｃｈｎｉｃａｌ  Ｒｅｓｅａｒｃｈ  Ｃｅｎｔｅｒ，Ｋａｎａｇａｗａ，Ｊａｐａｎ）；０−７８０１−０５８２−５／９２（１９９２  ＩＥＥＥ，ｆｕｚｚｙ  ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ，ＣＲＣ  Ｐｒｅｓｓ  ＬＬＣ，Ａｂｒａｈａｍ  Ｋａｎｄｅｌ（Ｅｄｉｔｅｄ  ｂｙ），Ｌｏｆｔｉ  Ａ．Ｚａｄｅｈ（Ｆｏｒｅｗｏｒｄ  ｂｙ），Ｓｅｐｔｅｍｂｅｒ  １９９３，ｐｐ１６８−１７２の例。【００６１】  この例では、実験的に考えられたマニュピレータがふたつの力／トルクのセンサをもつ。センサの一方は、演算力センサＦｈで、他方は「環境力センサ」ωである。これらの値は、３つの言語表現による変数−Ｓ（小さい），Ｍ（中ぐらい）およびＢ（大きい）をもち、また以下の５つのファジィ規則をもつ。【００６２】    もし  ω＝Ｓ  なら  出力＝Ｂ；
もし  ω＝Ｂ  なら  出力＝Ｓ；
もし  ω＝Ｍ  およびＦｈ＝Ｓ  なら出力＝Ｓ；
もし  ω＝Ｍ  およびＦｈ＝Ｍ  なら出力＝Ｍ；
もし  ω＝Ｍ  および  Ｆｈ＝Ｂ  なら出力＝Ｂ；【００６３】  この例の場合、出力は表３のごとく、３値論理関数となる。
2005004032.tif 000020
【００６４】  簡単な置き換えＯｕｔｐｕｔ＝ｍａｊ（２ω，−Ｆｈ，０）により、ＣＭＯＳによる実装が図７に示すものと同じになることがわかる。なお、Ｖｃ＝ＶＦｈ，Ｖｃｃ＝Ｖωという置換をなし、かつＲ２＝０．５Ｍオームとする。【００６５】４．３  洗濯機のためのファジィ制御
Ａｐｔｒｏｎｉｘ  Ｉｎｃｏｒｐｏｒａｔｅｄ社のｗｗｗ．ａｐｔｒｏｎｉｘ．ｃｏｍ／ｆｕｚｚｙｎｅｔ．の例である。【００６６】４．３．１  コントローラ仕様
入力変数：
ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓ（服の汚れ）の″程度″
大きい（Ｌ），中ぐらい（Ｍ），小さい（Ｓ）；
ｔｙｐｅ＿ｏｆ＿ｄｉｒｔ（汚れの種類）の″程度″
脂っぽい（Ｇ），中ぐらい（Ｍ），脂っぽくない（ＮＧ）．【００６７】出力変数：
ｗａｓｈ＿ｔｉｍｅ（洗濯時間）″分″
非常に長く（ＶＬ）、長（Ｌ）、中（Ｍ）、短（Ｓ）、非常に短く（ＶＳ）；【００６８】  ファジィ規則：
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが大きく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽいならｗａｓｈ＿ｔｉｍｅは非常に長く；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが中ぐらいで、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽいなら  ｗａｓｈ＿ｔｉｍｅは長く；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが小さく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽいなら  ｗａｓｈ＿ｔｉｍｅは長く；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが大きく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが中ぐらいなら  ｗａｓｈ＿ｔｉｍｅは長く；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが中ぐらいで、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔも中ぐらいなら  ｗａｓｈ＿ｔｉｍｅは中ぐらい；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが小さく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが中ぐらいなら  ｗａｓｈ＿ｔｉｍｅは中ぐらい；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが大きく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽくないなら  ｗａｓｈ＿ｔｉｍｅは中ぐらい；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが中ぐらいで、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽくないならｗａｓｈ＿ｔｉｍｅは短く；
もし  ｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓが小さく、ｔｙｐｅ＿ｏｆ＿ｄｉｒｔが脂っぽくないなら  ｗａｓｈ＿ｔｉｍｅは非常に短く【００６９】  以上を言語表現による変数の行列で示せば、表４となる。
2005004032.tif 000021
また、多値変数の行列で示せば表５となる。
2005004032.tif 000022
2005004032.tif 000023
【００７０】４．３．２関数の分解
「ｗａｓｈ＿ｔｉｍｅ」の仕様は以下のように分解される。
2005004032.tif 000024
【００７１】  したがって、以下のように書ける。
2005004032.tif 000025
【００７２】  いま、１変数のある関数を考える。
2005004032.tif 000026
【００７３】  （１１）式において、Ｙはｄｉｒｔｎｅｓｓ＿ｏｆ＿ｃｌｏｔｈｅｓに対応する。しかし、Ｙは−２から＋２まで変化する。なぜなら、多値変数の行列に示される出力値（これはフィードバックループを通じて入力値ＸとＹになる）が−２から＋２まで変化するためである。この仮定は、出力値の範囲と入力値の範囲が異なるため、必要である。このため、Ｙはここで以下のとおりとなる。
2005004032.tif 000027
【００７４】  （１１ａ）式から、数値を−２と＋２で飽和させることにより、（１１）式が得られる。ここで、以下の中間的な和を導入する。
2005004032.tif 000028
【００７５】  Ｘはｔｙｐｅ＿ｏｆ＿ｄｉｒｔに対応し、以下のように、−２から＋２までとりうる。
2005004032.tif 000029
【００７６】  その結果、ｗａｓｈ＿ｔｉｍｅは以下のように表記できる。
2005004032.tif 000030
【００７７】  さて、ここで次の関数を導入する。
2005004032.tif 000031
【００７８】  （１２）式同様、以下の中間的な和を導入する。
2005004032.tif 000032
【００７９】  最後に、ｗａｓｈ＿ｔｉｍｅが以下のように定式化される。
2005004032.tif 000033
【００８０】  図８はこうして得られたＣＭＯＳ回路であり、（１６）式、（１１）式および（１４）式に基づく。この回路は、４個の多値しきい値要素回路の重ね合わせで実装される。この関数デバイスは、トランジスタＭ１−６および抵抗Ｒ１−３が適宜接続されて構成された演算増幅器（図中左上部分）と、トランジスタＭ７−１２ならびに抵抗Ｒ４−６およびＲ１０が適宜接続されて構成された演算増幅器（図中左下部分）と、トランジスタＭ１３−１８および抵抗Ｒ７−８が適宜接続されて構成された演算増幅器（図中右下部分）と、トランジスタＭ１９−２４および抵抗Ｒ１１−１５が適宜接続されて構成された演算増幅器（図中右上部分）との４つの演算増幅器を含む処理回路部を備えている。これらの演算増幅器のうち図中右上のものが最終段の演算増幅器に該当する。また、図中ＸおよびＹと記載されている部分が関数デバイスの入力端子、ｗａｓｈ＿ｔｉｍｅと記載されている部分が出力端子である。【００８１】  図８の左上部分は（１６）式の
2005004032.tif 000034
に対応する。抵抗Ｒ２は２００００ｋオームで、Ｒ１の倍である。その結果、Ｙ／２が実現される。抵抗Ｒ３は理想的には１００００ｋオームであるが、実際には９３００ｋオームとしてこの回路部分の増幅ゲインに合わせた調整をしている。Ｒ３は飽和値の下限である、
2005004032.tif 000035
における−２を実現する。【００８２】  左下の回路部分は、（１６）式の
2005004032.tif 000036
に対応する。抵抗Ｒ５およびＲ１０は９５００ｋオームだが、理想的には１００００ｋオームのものである。抵抗Ｒ６は５０００ｋオームで、Ｒ４の半分である。これにより、飽和値の上限の倍である、
2005004032.tif 000037
2005004032.tif 000038
における４を実現する。抵抗Ｒ１５は、左下回路と右上回路を接続し、１８０００ｋオームである。その理想値は２００００ｋオームである。Ｒ１５はＲ１１の約倍であり、
2005004032.tif 000039
における０．５を実現する。【００８３】  右上の回路は、総和増幅器本体に対応し、（１６）式における−１の機能を自身が備える。抵抗Ｒ１３は２００００ｋオームで、Ｒ１１の倍である。その結果、飽和値の下限である−２にＲ１１／Ｒ１３である１／２が乗じられ、−１が実現する。【００８４】  右下の回路は、（１６）式における−０．５Ｘに対応する。０．５は抵抗Ｒ１２をＲ１１の倍の２００００ｋオームとすることで実現する。【００８５】  図９は図８の回路の動作をＳＰＩＣＥシミュレーションした結果を示す。横軸と縦軸は、それぞれ変数Ｙと出力電圧を示す。同図で出力値が「−２」のとき、出力電圧が０Ｖになる。その例は同図の（０Ｖ，０Ｖ）の点にある。同様に、出力値が「−１」のとき、出力電圧は０．９Ｖになる。これは（１．７５Ｖ，０．９Ｖ）の点に見られる。以下、出力値が「０」「１」「２」のとき、出力電圧はそれぞれ１．８Ｖ、２．５Ｖ、３．２Ｖになる。【００８６】５．″ｍａｓｋｉｎｇ  ｏｆ  ｔｈｅ  ｉｎｐｕｔ″の導入
以上示したように、総和増幅器は、（任意の値の）任意の多値論理において関数完全性を有するしきい値要素回路であり、アナログファジィデバイスを実装するための基底となることができる。以下では、「入力のマスキング（ｍａｓｋｉｎｇ  ｏｆ  ｔｈｅ  ｉｎｐｕｔ）」と呼ばれる手法を用いた、関数回路の設計について述べる。引き続き、値の数は、奇数（ｋ＝２ａ＋１）個であるとする。【００８７】  ファジィコントローラの振る舞いを記述した関数は、次の第１又は第２の方法によって適切に表すことができる。第１の方法は、「もしＡであるならば、Ｂとする」というタイプのファジィ規則によって表す方法である。ここで、ＡやＢは、言語表現による変数（言語変数）である。第２の方法は、一組の言語変数が一つの出力に対応するテーブルとして表す方法である。【００８８】  いま、Ｘ＝｛ｘ０，ｘ１，…，ｘｎ−１｝を一組の入力多値変数とし、Ｙ＝Ｆ（Ｘ）を出力変数とする。ここで、−ａ≦ｘｊ≦ａである。すると、２値論理におけるＳｈａｎｎｏｎ分解（Ｓｈａｎｎｏｎ’ｓ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）と同様に、多値論理においても下記式を構築することができる。
2005004032.tif 000040
【００８９】  （１７）式は、更に拡張することができ、したがって変数除去法（ｍｅｔｈｏｄ  ｏｆ  ｅｘｃｌｕｓｉｏｎ  ｏｆ  ｖａｒｉａｂｌｅｓ）により、ファジィ回路を構築できることを示している。そのためには、下記（１８）式に対応する副回路（ｓｕｂ−ｃｉｒｃｕｉｔ）が必要となる。
2005004032.tif 000041
ここで、Ｚ⊂Ｘであり、Ａは変数Ｚの値の組合せである。【００９０】  （１８）式を実行する基本的な要素（副回路）があれば、ファジィ規則の体系に従って直ちにファジィデバイスを得ることができる。しかしながら、（１７）式および（１８）式は、いわゆるフラグメントコンスタント（ｆｒａｇｍｅｎｔ−ｃｏｎｓｔａｎｔ）タイプの多値関数を表している。図１０（ａ）および図１０（ｂ）は、７値関数の一例を示している。フラグメントコンスタントである図１０（ａ）の関数は、ファジィ規則を表すテーブル（ファジィ規則表）に完全に対応するが、ファジィ化およびデファジィ化のプロセスを考慮に入れていない。これらのプロセスを考慮するのであれば、上記関数は、図１０（ｂ）に示すようなフラグメントリニア（ｆｒａｇｍｅｎｔ−ｌｉｎｅａｒ）であるべきである。このようなフラグメントリニアな関数によれば、ファジィ化およびデファジィ化においてそれぞれ入力変数および出力変数が適当に分配される。【００９１】６．総和増幅器による入力のマスキング
下記式で表される振る舞いを示す反転型の総和増幅器を考えることにする。
2005004032.tif 000042
ここで、Ａ＝｛α１，α２，…，αｎ｝は重み係数（ｗｅｉｇｈｔ  ｃｏｅｆｆｉｃｉｅｎｔｓ）、Ｘ＝｛ｘ１，ｘ２，…，ｘｎ｝はアナログ変数または多値変数、βはしきい値を象徴する定数、±ａは飽和値（ｋ値論理：ｋ＝２ａ＋１の場合）をそれぞれ表している。【００９２】  いま、下記式で表されるマスキング関数（ｍａｓｋｉｎｇ  ｆｕｎｃｔｉｏｎ）Ｍα（ｘ）を導入する。
2005004032.tif 000043
ここで、α（−ａ≦α≦ａ）は、変数ｘについてのある特定の値である。ｘ＝αのときＭα（α）＝０であることがわかる。図１１には、例としてｋ＝７の場合のＭ−１（ｘ）を示す。【００９３】  電源電圧Ｖｄｄが論理値のａに対応し、接地電位のＶｇｎｄが論理値の−ａに対応することを考えると、マスキング関数は、総和増幅器を用いて下記式のように実装することができる。
2005004032.tif 000044
ここで、｜α｜は、αの絶対値を意味している。【００９４】  このようなマスキング関数を用いることにより、下記式で表されるファジィ規則に対応する回路を構築することができる。
2005004032.tif 000045
この規則は、ｘ＝αにおいて関数Ｆ（ｘ＝α，Ｙ）を出力として抽出することを意味する。図１２は、この式に対応する回路を示している。同図においては、４つの総和増幅器が設けられている。また、同図の回路は、下記式で表される。
2005004032.tif 000046
例として、α＝−１、Ｆ（ｘ＝−１，Ｙ）＝２、ｋ＝７の場合を考える。すなわち、図１２の回路は、「Ｉｆ  ｘ＝−１  ｔｈｅｎ  ｙ＝２  ｅｌｓｅ  ｙ＝０」というファジィ規則を実行する。このとき、図１２の回路の振る舞いは、図１３（ａ）〜図１３（ｃ）に示されるとおりである。図１３（ａ）はＭ−１（ｘ）およびＭ１（ｘ）を示し、図１３（ｂ）はＳ（−Ｍ−１（ｘ）；２）およびＳ（Ｍ１（ｘ）；２）を示し、図１３（ｃ）は図１２の回路における最終的な出力（すなわち（２３）式におけるｙ）を示す。【００９５】  次に、Ｉｆ−Ｔｈｅｎ規則の前件部（（２２）式ではｘ＝αのこと）において、下記式のように、変数ｘがある一定の範囲を持つ場合を考える。
2005004032.tif 000047
この規則は、（２３）式と同様、下記式（「ｙ＝」で始まる一番下の式）で表される。
2005004032.tif 000048
図１２においてＭα（ｘ）およびＦ（ｘ＝α，Ｙ）をそれぞれＭλ，δ（ｘ）およびΦ（Ｙ）で置き換えることにより、（２５）式に対応する回路を構築することができる。【００９６】  例として、λ＝−２、δ＝１、Φ（Ｙ）＝−２、ｋ＝９の場合について、（２５）式に対応する回路の振る舞いを図１４（ａ）〜図１４（ｄ）に示す。図１４（ａ）はＭ−３（ｘ）およびＭ２（ｘ）を示し、図１４（ｂ）はＭ−２，＋１（ｘ）を示し、図１４（ｃ）はＳ（−Ｍ−２，＋１（ｘ）；−２）およびＳ（Ｍ−２，＋１（ｘ）；−２）を示し、図１４（ｄ）は最終的な出力（（２５）式におけるｙ）を示す。【００９７】７．マスキング関数を用いた実装例
「Ａ  Ｆｕｚｚｙ  Ｌｏｇｉｃ  Ｆｏｒｃｅ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  ａ  Ｓｔｅｐｐｅｒ  Ｍｏｔｏｒ  Ｒｏｂｏｔ，ｏｆ  Ｊ．Ｇ．Ｈｏｌｌｉｎｇｅｒ，Ｒ．Ａ．Ｂｅｒｇｓｔｒｏｍ，ａｎｄ  Ｊ．Ｓ．Ｂａｙ，Ｂｒａｄｌｅｙ  Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  Ｅｎｇｉｎｅｅｒｉｎｇ，Ｖｉｒｇｉｎｉａ  Ｐｏｌｙｔｅｃｈｎｉｃ  Ｉｎｓｔｉｔｕｔｅ  ａｎｄ  Ｓｔａｔｅ  Ｕｎｉｖｅｒｓｉｔｙ，Ｂｌａｃｋｓｂｕｒｇ，Ｖｉｒｇｉｎｉａ．．」から引用したファジィコントローラについて、上述のマスキング関数を用いた実装例を示す。【００９８】  このファジィコントローラは、「位置誤差（ｐｏｓｉａｏｎ  ｅｒｒｏｒ）」および「力誤差（ｆｏｒｃｅ  ｅｒｒｏｒ）」という２つの言語変数をもつ関数を実装する。以下、これらの変数をそれぞれｘ，ｙと表す。変数ｘ，ｙはそれぞれ、ＮＬ、ＮＭ、ＮＳ、ＺＥ、ＰＳ、ＰＭ、ＰＬという７つの値を有する。また、それらのメンバーシップ関数は図１５に示されるとおりである。【００９９】  出力言語変数に対するファジィ推論エンジンのルールを示すマトリクスは、表６に示すとおりである。
2005004032.tif 000049
【０１００】  表６を対応する多値論理関数の値で表したものが表７である。
2005004032.tif 000050
【０１０１】  表７は、表８に示す２種類の列から構成されていることがわかる。
2005004032.tif 000051
【０１０２】  図１６（ａ）および図１６（ｂ）は、表８に示す２種類の列を、それぞれ力誤差ｙの関数として描いたものである。【０１０３】  （２０）式および（２１）式ならびに図１４（ａ）および図１４（ｂ）のアナロジーにより、図１７（ａ）および図１７（ｂ）に示すように、Ｆ１（ｙ）を構築することができる。よって、Ｆ１（ｙ）およびＦ２（ｙ）は、下記式のように実装することができる。
2005004032.tif 000052
【０１０４】  表６および表７より、コントローラの出力は、変数ｘについて場合分けすると、次のように表される。
2005004032.tif 000053
【０１０５】  （２７）式で表される規則は、次の２つの規則に分けることができる。
2005004032.tif 000054
2005004032.tif 000055
【０１０６】  （２８）式の規則は、（２５）式、（２６）式および（２３）式に従って、次のように実装できる。
2005004032.tif 000056
【０１０７】  （２９）式の規則を実装するために、先ずは下記式で表される規則を実装することを考える。
2005004032.tif 000057
この規則は、下記式のように実装される。
2005004032.tif 000058
続いて、（２９）式の規則を次のように表す。
2005004032.tif 000059
したがって、（３２）式および（３３）式より、（２９）式の規則は下記式のように実装することができる。
2005004032.tif 000060
2005004032.tif 000061
ゆえに、コントローラの出力（（２７）式におけるＯｕｔｐｕｔ）は、下記式となる。
2005004032.tif 000062
【０１０８】  （３２）式においてＳ１０で表される総和増幅器が常に飽和レベル以内の領域で動作する（すなわちＳ１０の括弧内が常に−３以上３以下の値をとる）ことを考慮すれば、（３５）式を一層簡略化することが可能である。いま、−Φ２を下記式のように表す。
2005004032.tif 000063
すると、コントローラの実装を表す式は、次のようになる。
2005004032.tif 000064
（３７）式に従って実装された回路の構成を図１８に示す。同図においては、各加算増幅器の入力の重みを表す係数が記載されている。例えば、Ｓ１で表される総和増幅器について見ると、２つの入力（Ｖｄｄおよびｙ）それぞれが３／２倍されることを示している。この関数デバイスは、Ｓ１−Ｓ１１ならびにＭ＋３（ｘ）およびＭ−３（ｘ）の１３個の演算増幅器を含む処理回路部を備えている。これらの演算増幅器のうちＳ１１が最終段の演算増幅器に該当する。また、図中ｘおよびｙと記載されている部分が関数デバイスの入力端子、Ｖｏｕｔと記載されている部分が出力端子である。【０１０９】８．ＳＰＩＣＥシミュレーションの結果
図１８に示すコントローラ回路における各基底として、３ステージおよび５ステージのプッシュプルＣＭＯＳ演算増幅器を用いる。これらの増幅器においてフィードバック経路に挿入される抵抗の抵抗値は、２メガΩである。このような増幅器の一例を図１９（ａ）および図１９（ｂ）に示す。図１９（ａ）は、３ステージのプッシュプルＣＭＯＳ演算増幅器を用いて構成された総和増幅器を示す。図１９（ｂ）は、５ステージのプッシュプルＣＭＯＳ演算増幅器を用いて構成された総和増幅器を示す。【０１１０】  シミュレーションに用いるコントローラ回路を図２０に示す。ＳＰＩＣＥシミュレーション（ＭＳＩＭ  ８）により、図２０のコントローラの振る舞いをチェックした。トランジスタとしては、０．４μｍのＭＯＳＩＳ  ＢＳＩＭ３ｖ３．１，７ｌｅｖｅｌモデルを用いた。【０１１１】  シミュレーションにおいて電源電圧は３．５Ｖとした。入力ｘを０Ｖから３．５Ｖまで線形に変化させ、入力ｙをその論理値に従って離散的に変化させた。ｘを０Ｖから３．５Ｖまでの１サイクルを変化させる間、ｙの値を一定とした。【０１１２】  ３ステージの増幅器を用いてコントローラを構成した場合のシミュレーション結果を図２１に示す。コントローラの振る舞いは正しい（表７に従って出力変数の論理値が入力変数の論理値に依存している）ことがわかる。【０１１３】  図２２は、５ステージの増幅器を用いてコントローラを構成した場合のシミュレーション結果である。図２１の場合に比して、出力信号の電圧レベルとその論理値とが一層高い精度で対応していることがわかる。それゆえ、ステージ数の多い増幅器を用いることにより、論理値の数ｋ（＝２ａ＋１）の値が大きい場合（例えば９以上の場合）にも好適な振る舞いを呈するコントローラを実現することができる。【０１１４】９．さらなる実装例
次に、表９のファジィ規則表により表される関数を実装する。
2005004032.tif 000065
【０１１５】（ステップ１：対称成分の抽出）
まず、（５０）式に示すように、表９に示すマトリクスＭを２つのマトリクスＭ１，Ｍ２に分解する。Ｍ１はＭから対称成分を抽出したものであり、Ｍ２はその残余成分であり非対称となっている。Ｍ２において、例えば「≦０」は、０以下の値であれば任意の値としてよいことを意味している。同様に、「≧２」は、２以上の任意の値としてよいことを意味している。これは、演算増幅器の飽和特性に由来している。
2005004032.tif 000066
2005004032.tif 000067
対称成分（Ｍ１）は、１変数：ｚ＝（ｘ＋ｙ）／２の関数ｆ１（ｚ）として表すことができる。この関数を図２３に示す。【０１１６】  関数ｆ１（ｚ）を実装すべく、図２４に示す５つの関数αｊ（ｚ）の和としてｆ１（ｚ）を表す。すなわち、
2005004032.tif 000068
である。また、α１を例にとって、総和増幅器を用いてαｊを構築することを考える。図２５からわかるように、β１は、β１＝−Ｓ（ｋ１ｚ＋ａ１）と実装できる。ｚ＝−２．２５のときβ１＝０となるべきなので、ａ１＝２．２５ｋ１となる。ｋ１＝６／０．５＝１２であることを考慮すると、ａ１＝２７が求まり、β１＝−Ｓ（６ｘ＋６ｙ＋２７），δ１（ｚ）＝β１（ｘ，ｙ）／６となる。よって、
2005004032.tif 000069
である。【０１１７】  続いて、図２６を参照しつつ、α２（ｚ）の構築を考える。β２＝−Ｓ（ｋ２ｚ＋ａ２）とおくと、ｚ＝−１のときβ２＝０ゆえ、ａ２＝ｋ２となる。ｋ２＝６を考慮すると、ａ２＝６が求まり、β２＝−Ｓ（３ｘ＋３ｙ＋６），δ２（ｚ）＝β２（ｚ）／３となる。よって、
2005004032.tif 000070
である。【０１１８】  同様の手法により、下記式が得られる。
2005004032.tif 000071
（５２）式および（５３）式に示す演算は飽和することなく実行されるので、（５１）式は１つの総和増幅器で演算することができる。以上より、下記式が得られる。
2005004032.tif 000072
【０１１９】  関数ｆ１（ｚ）を表すマトリクスＭ１は、後述する図４３に示すコントローラ回路において、６個の総和増幅器（ＨＳ３−ＨＳ８）で実装される。【０１２０】（ステップ２）
（５６）式に示すように、マトリクスＭ２を２つのマトリクスＭ３，Ｍ４に分解する。
2005004032.tif 000073
【０１２１】  図２７を参照しつつ、マトリクスＭ３の実装を考える。同図に示すように、Ｍ３中の非ゼロ要素とゼロ要素とは直線ｘ−３ｙ＋８＝０によって分離することができる。ここで、
2005004032.tif 000074
で定義される変数ｗを導入する。
図２７の座標平面中の点（ｘ、ｙ）におけるｗの値は、上記直線からこの点までの距離に依存する。上記直線よりも図中で上に位置する全ての点（直線上の点も含む）について、ｗ≦０が成り立つ。また、図中に破線で示す直線（ｘ−３ｙ＋７＝０）よりも下に位置する全ての点（直線上の点も含む）について、ｗ≧１が成り立つ。【０１２２】  関数ｆ２（ｘ，ｙ）を表すマトリクスＭ３は下記式のように実装することができることがわかる。
2005004032.tif 000075
この実装においては、全ての非ゼロ要素を３としている。図４３のコントローラ回路において、ｆ２（ｘ，ｙ）は、２つの総和増幅器ＨＳ８およびＨＳ９で実現される。なお、ＨＳ８は、ｆ１（ｘ，ｙ）の実装にも用いられている。これが可能なのは、ｆ２（ｘ，ｙ）＝０のときＨＳ８の出力Ｆ１はｆ１（ｘ，ｙ）となるからである。それ以外のときは、Ｆ１＝ｆ１（ｘ，ｙ）＋ｆ２（ｘ，ｙ）となる。【０１２３】（ステップ３）
（５９）式に示すように、マトリクスＭ４を２つのマトリクスＭ５，Ｍ６に分解する。
2005004032.tif 000076
マトリクスＭ５を実装するために、下記式に示す補助的なマトリクスＭ５，１を導入する。
2005004032.tif 000077
マトリクスＭ５，２において、ゼロ要素は直線ｘ＋ｙ−２＝０上に位置している。また、マトリクスＭ５，３において、非ゼロ要素（ここでは全て「３」）は直線ｘ−ｙ＝０上に位置している。これら２つのマトリクスの和は、上記２直線の交点において所望の要素（「３」）を含んでいる。マトリクスＭ５，２，Ｍ５，３は、それぞれ１変数関数ε１（ｚ），ε２（ｗ）として表すことができる。ここで、ｚ＝（ｘ＋ｙ）／２、ｗ＝（ｘ−ｙ）／２である。これらの関数を図２８（ａ）および図２８（ｂ）に示す。【０１２４】  ε１（ｘ，ｙ）は下記式のように実装することができる。
2005004032.tif 000078
図４３のコントローラ回路において、３つの総和増幅器ＨＳ１８−ＨＳ２０がこの式に対応する。【０１２５】  ε２（ｘ，ｙ）も３つの総和増幅器で実装できる。そのうち１つは、ε１（ｘ，ｙ）を出力する増幅器と共有することができる。このアプローチによれば、コントローラ中の増幅器の数を抑えることができる。【０１２６】  格子点（１，１）と隣接する格子点との間においてより良好な補間が行われるようにするため、ε２（ｘ，ｙ）およびＭ５，３をそれぞれ別のものに変えることにする。マトリクスＭ５，３の代わりに、ｙ＝１の列のみが非ゼロ要素であるようなマトリクスＭ５，４、またはｘ＝１の行のみが非ゼロ要素であるようなマトリクスＭ５，５を用いることができる。これらのマトリクスＭ５，４，Ｍ５，５に対応する関数をそれぞれε３（ｙ），ε４（ｙ）とする。そして、ε２（ｘ，ｙ）を改めて下記式のように定義する。これにより、図２８（ｂ）に示すε２（ｘ，ｙ）を用いた場合よりも、格子点間における良好な補間が実現される。
2005004032.tif 000079
【０１２７】  この関数は、下記式に示すように、２つの増幅器で実装することができる。
2005004032.tif 000080
この式の右辺には２つの式が示されているが、これらのうち何れを用いてもよい。１番目の式を用いる場合を考える。ε３（ｙ）および−ε４（ｘ）は、それぞれ図２９（ａ）および図２９（ｂ）のようになり、下記式のように実装することができる。
2005004032.tif 000081
【０１２８】  図４３のコントローラ回路において増幅器ＨＳ２１−ＨＳ２４が（６４）式に対応する。関数：ε２（ｘ，ｙ）＝Ｓ（Ｓ（ε３（ｙ）−ε４（ｘ）＋３）−ε４（ｘ）＋３）は、２つの増幅器ＨＳ２５およびＨＳ２０で実装される。増幅器ＨＳ２０は、（６１）式に示される関数ε１（ｘ，ｙ）の実装においても用いられている。また、（６１）式中の定数「−３」および（６３）式中の定数「３」は、これら２つの関数を足し合わせる際に互いに打ち消し合っている。この増幅器ＨＳ２０は、マトリクスＭ５，１を表す関数Ｓ（ε１（ｘ，ｙ）＋ε２（ｘ，ｙ））を実装している。【０１２９】  以上より、関数ｆ３＝Ｓ（Ｓ（ε１（ｘ，ｙ）＋ε２（ｘ，ｙ））−３）とすると、下記式のようにマトリクスＭ５が得られる。
2005004032.tif 000082
また、関数ｆ３は、ＨＳ１７で実装される。【０１３０】（ステップ４）
（６６）式に示すように、マトリクスＭ６を２つのマトリクスＭ７，Ｍ８に分解する。
2005004032.tif 000083
マトリクスＭ７は、「ＩＦ  ｘ＝−３  ａｎｄ  ｙ≧０  ＴＨＥＮ  Ｏｕｔｐｕｔ＝１  ＥＬＳＥ  Ｏｕｔｐｕｔ＝０」という規則に対応する。このマトリクスをＭ７＝ｆ４／３と表すと、関数ｆ４は図３０に示すようになる。ｘ＝−３且つｙ≧０を満たす全ての格子点（マトリクスＭ７の要素）とそれらに隣接する格子点との間で良好な補間が行われる。関数ｆ４は、下記式のように実装することができる。
2005004032.tif 000084
ここで、関数φ１（ｘ）は、図３１に示される通りであり、φ１＝Ｓ（−３ｘ−９）と実装される。図４３のコントローラにおいて関数ｆ４は、増幅器ＨＳ２９−ＨＳ３１およびＨＳ１７で実装されている。【０１３１】（ステップ５）
（６８）式に示すように、マトリクスＭ８において非ゼロ要素は、座標（ｘ＝３，ｙ＝−３）および（ｘ＝−２，ｙ＝−１）にのみ存在している。これら２つの要素に対応する関数をそれぞれ、ｆ５およびｆ６とする。
2005004032.tif 000085
【０１３２】  まず、関数ｆ５の実装を考える。関数ｆ５の候補としてはいくつか考えられるが、ここでは図３２に示されるものを用いる。これにより、格子点（３，−３）とそれに隣接する格子点との間で特に良好な補間がなされる。この関数ｆ５は、下記式のように実装される。
2005004032.tif 000086
ここで、関数φ２（ｘ）は、図３３に示される通りであり、φ２＝Ｓ（３ｘ−９）と実装される。図４３のコントローラにおいて関数ｆ５は、増幅器ＨＳ２６−ＨＳ２８およびＨＳ１７で実装されている。【０１３３】（ステップ６）
関数ｆ６の実装を考えるに先立って、ピラミッド関数を導入する。ピラミッド関数とは、（７０）式に示されるタイプの条件を実装する要素ブロックの関数である。この関数の一例を図３４に示す。
2005004032.tif 000087
【０１３４】  ピラミッド関数は、点（ａ，ｂ）においてある値ｃをとり、隣りの点において値０をとる。ｃから０までの変化は線形である。図３５を参照しつつ、ピラミッド関数を構築する。同図においては、２つの関数β１（ｘ）およびβ２（ｘ）が示されている。これらは、（２ｋ＋１）値論理（−ｋ≦ｘ≦ｋ）において、下記式のように実装される。
2005004032.tif 000088
下記式のように、変数ｙについても同様の関数を考える。
2005004032.tif 000089
【０１３５】  下記式により、図３６に示す関数が得られる。
2005004032.tif 000090
γ（ｘ）は、ｘ＝ａのとき０、ｘがａ以外の整数値のときｋをとる。２変数の場合にも、同様にして、下記式のようにγ（ｘ，ｙ）を構築できる。
2005004032.tif 000091
【０１３６】  関数γ（ｘ，ｙ）は、格子点（ｘ＝ａ，ｙ＝ｂ）において０、その他の格子点においてｋをとる。よって、下記式により、図３４に示すピラミッド関数（高さｋ）を得ることができる。
2005004032.tif 000092
【０１３７】  π（ｘ，ｙ）を入力する増幅器の入力ゲインファクターを調整することにより、任意の高さのピラミッドを得ることができる。例えば入力抵抗をフィードバック抵抗の２倍に設定することにより、高さがｋ／２のピラミッドを実現することができる。また、βｊ（ｘ），βｉ（ｙ）を構築する段階で符号を適宜設定することにより、ｘ−ｙ平面に関して図３４に示すピラミッドと対称なピラミッド（すなわち頂点の３次元座標が（ｘ，ｙ，−ｋ）であるようなピラミッド）を容易に得ることができる。なお、ピラミッド関数は図３４に示されるものに限らず、様々なものが考えられる。例えば、ｚ＝ｘ＋ｙ、ｗ＝ｘ−ｙという変数変換を行い、（７１）式および（７２）式を変数ｚ，ｗについて作ることにより、図３７に示すピラミッドを得ることができる。どのピラミッド関数を用いるかは、隣接する格子点間での良好な補間が実現されるようにＳＰＩＣＥシミュレーション等で確認しつつ決定すればよい。また、図３４および図３７等に示されるような四角錘形状のものに限らず、四角錘台形状のものも容易に実装することができる。すなわち、β関数（（７１）式、（７２）式参照）において定数を適宜変更することにより、下記式で表されるタイプの条件を実装することができる。
2005004032.tif 000093
【０１３８】  なお、変数の数が３つ以上であっても、（７４）式と同様の式を構築することができる。２変数の場合、ピラミッド関数の実装には６個の増幅器が必要とされる。変数の数が１つ増える毎に、さらに２つの増幅器が必要となる。【０１３９】  関数ｆ６の実装を考える。ＳＰＩＣＥシミュレーションの結果、図３４および図３７の何れを用いた場合も、点（ｘ＝−２，ｙ＝−１）とそれに隣接する点との間における補間に若干の向上の余地があることがわかった。図３４に示すピラミッド関数ｆ（ｘ，ｙ）の断面を図３８（ａ）および図３８（ｂ）に示す。前者はｙ軸に垂直な断面を、後者はｘ軸に垂直な断面をそれぞれ示している。ピラミッド関数を他の関数と重ね合わせて隣接する２点間で単調な線形補間を実現したい場合、ピラミッド関数のタイプは図３９（ａ）〜図３９（ｃ）の中から適宜選ぶことができる。図３９（ａ）〜図３９（ｃ）に示される断面をそれぞれ「中央台形型」、「右台形型」および「左台形型」と呼ぶ。これに対し、図３８（ａ）および図３８（ｂ）に示される断面を「三角型」と呼ぶ。【０１４０】  シミュレーションの結果によると、本例においてピラミッド関数ｆ６は、ｙについては図３８（ｂ）に示す断面となり、ｘについては図３９（ｂ）に示す断面となるように、構築するのが好ましい。このような関数ｆ６は、下記式のように実装すればよい。
2005004032.tif 000094
図４０（ａ）〜図４０（ｄ）は、それぞれ（７７）式中のφ５（ｙ）、φ６（ｘ）、φ７（ｙ）およびφ８（ｘ）を示す。図４１（ａ）〜図４１（ｃ）は、それぞれφ３、φ４およびｆ６を示す。これらはｘ軸に垂直な断面を示している。また、図４１（ｄ）〜図４１（ｆ）も、それぞれφ３、φ４およびｆ６を示す。これらはｙ軸に垂直な断面を示している。【０１４１】  図４１（ａ）〜図４１（ｃ）からわかるように、ｆ６のｘ軸に垂直な断面は、ｘ≦−２のとき三角型となっている。これにより、関数ｆ６と関数ｆ３との良好な重ね合わせが実現される。一方、上記断面は、−２≦ｘ≦−１のとき中央台形型となっている。図４１（ｄ）〜図４１（ｆ）からわかるように、ｆ６のｙ軸に垂直な断面は、右台形型となっている。これにより、関数ｆ６と関数ｆ１との良好な重ね合わせが実現される。【０１４２】  図４３のコントローラ回路において、関数ｆ６（ｘ，ｙ）は、増幅器ＨＳ１０−ＨＳ１７で実装されている。増幅器ＨＳ１７は、飽和することなく動作するため、Ｆ２＝ｆ３＋ｆ４＋ｆ５＋ｆ６の計算に用いられている。増幅器ＨＳ３２およびＨＳ３３は、このコントローラの最終出力Ｆを計算する。Ｆは下記式で表される。
2005004032.tif 000095
図４３は、表９に示す関数を実装したコントローラ回路である。このコントローラは、３３個の増幅器と９３個の抵抗素子とを含んでいる。また、図４３において、高出力増幅器ＰＨＳ１およびＰＨＳ２は、それぞれ−ｙおよび−ｘに対応する電圧信号を生成している。図４２（ａ）はＨＳ３−ＨＳ３３の構成例を示し、図４２（ｂ）はＰＨＳ１およびＰＨＳ２の構成例を示している。【０１４３】  図４４〜図５０は、図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を示
すグラフである。図４４〜図４６においては、変数ｘを固定し、変数ｙに対する出力の依存性を示している。一方、図４７〜図４９においては、変数ｙを固定し、変数ｘに対する出力の依存性を示している。図４４および図４７では、それぞれ変数ｘおよびｙを０．５８３３Ｖずつすなわち論理値にして約１ずつ、−３から＋３まで変化させている。図４５および図４８では、それぞれ変数ｘおよびｙを０．２９１６６Ｖずつすなわち論理値にして約０．５ずつ、−３から＋３まで変化させている。図４６および図４９では、変数ｘおよびｙを０．１４５８３３Ｖずつすなわち論理値にして約０．２５ずつ、−３から＋３まで変化させている。また、図５０は、図４３に示す回路についてのＳＰＩＣＥシミュレーションの結果を３次元座標系で示している。【０１４４】  続いて、表１０のファジィ規則表により表される関数を実装する。
2005004032.tif 000096
表１０中の言語表現による変数をそれぞれ電圧値に対応させたものが表１１である。
ただし、電圧の範囲は０−３．５Ｖとしている。
2005004032.tif 000097
表１０を論理値で表現したものが表１２である。ただし、論理値の数は−３から３までの７個としている。すなわち、各論理値の−３，−２，−１，０，１，２，３は、それぞれ電圧
値の０，Ｖｄｄ／６，Ｖｄｄ／３，Ｖｄｄ／２，２Ｖｄｄ／３，５Ｖｄｄ／６，Ｖｄｄに対応する。ここで、Ｖｄｄ＝３．５Ｖである。
2005004032.tif 000098
【０１４５】  表１２に記載されていない入力変数の組み合わせ（例えばｄＸ＝−３，Ｘ＝１，Ｖ＝０）については、出力を任意の妥当な値に設定することができる。いま、表１２を下記式のように分解する。
2005004032.tif 000099
この式は、ｄＸが−３から３まで変化するとき、出力ＦがＦ１（Ｘ，Ｖ）からＦ２（Ｘ，Ｖ）まで線形的に変化することを意味している。Ｆ１（Ｘ，Ｖ）およびＦ２（Ｘ，Ｖ）をそれぞれ図５１および図５２に示す。【０１４６】  図５１中の左のマトリクスにおいて空欄を適当な値で補うことにより、同図中の右のマトリクスに示すように対称的な関数Ｆ１（Ｘ，Ｖ）が定義される。関数Ｆ１（Ｘ，Ｖ）は、図５３に示すように、変数（Ｘ＋Ｙ）についての１変数関数と見ることができる。同図からわかるように、この関数Ｆ１（（Ｘ＋Ｙ）／２）は、値が変化する領域を２つ有し、３つの増幅器を用いて下記式のように実装することができる。
2005004032.tif 000100
2005004032.tif 000101
関数Ｆ１は、後述する図５４に示すコントローラ回路において、３個の総和増幅器（ＨＳ１、ＨＳ２およびＨＳ１７）で実装されている。【０１４７】  図５２からわかるように、Ｆ２（Ｘ，Ｖ）は、Ｆ１（Ｘ，Ｖ）とＦ３（Ｘ，Ｖ）に２／３を乗じたものとの和で表すことができる。すなわち、
2005004032.tif 000102
である。【０１４８】  ここで、下記式に示すように、Ｆ３（Ｘ，Ｖ）を表すマトリクスを２つのマトリクスに分解する。
2005004032.tif 000103
つまり、Ｆ３＝Ｆ４＋Ｆ５である。関数Ｆ４は、（８３）式で表される規則に従って、２変数Ｘ，Ｖについてのピラミッド関数として実装することができる。すなわち、関数Ｆ４は、（８４）式のように実装される。
2005004032.tif 000104
2005004032.tif 000105
ここで、ｋは、正または負の論理値の数である。ａおよびｂは、それぞれ変数ＸおよびＶの値を表す。本例においては、ｋ＝３，ａ＝０，ｂ＝−１である。Ｖ≧１の条件下ではβ５＝ｋ＝３であるので、（８４）式は次のようになる。
2005004032.tif 000106
関数Ｆ４は、図５４に示すコントローラ回路において、５個の総和増幅器（ＨＳ９−ＨＳ１２ならびにＨＳ１６）で実装されている。【０１４９】  関数Ｆ５は、下記式により表される規則に従って、実装することができる。
2005004032.tif 000107
０＜Ｘ＜１において関数Ｆ５を関数Ｆ４とカップリングさせるためには、Ｆ５のＶ軸に平行な断面が中央台形型であることが好ましい。これにより、Ｆ４の減少分がＦ５の増加分によって補償され、Ｆ５の減少分がＦ４の増加分によって補償されることになる。関数Ｆ５は、下記式のように実装される。
2005004032.tif 000108
関数Ｆ５は、図５４に示すコントローラ回路において、４個の総和増幅器（ＨＳ１３−ＨＳ１６）で実装されている。ここで、増幅器ＨＳ１６は、両関数Ｆ４，Ｆ５の実装に共通して用いられており、下記式を実現している。
2005004032.tif 000109
【０１５０】  コントローラの出力Ｆは、下記式で表すことができる。
2005004032.tif 000110
この式中の規則（右辺第２項）は、次のように実装することができる。
2005004032.tif 000111
（９０）式は、図５４に示すコントローラ回路において、５個の総和増幅器（ＨＳ３−ＨＳ６ならびにＨＳ１７）で実装されている。【０１５１】  増幅器ＨＳ１７の出力は、図５４のコントローラの出力であり、下記式のようになる。
2005004032.tif 000112
図５４は、表１０に示す関数を実装したファジィコントローラ回路である。増幅器ＰＨＳ７およびＨＳ８は、それぞれ入力変数ＸおよびＶの符号を反転させるのに用いられている。増幅器ＰＨＳ７は、高出力増幅器である。【０１５２】  図５５〜図６０は、図５４に示す回路についてのＳＰＩＣＥシミュレーションの結果を示すグラフである。何れのグラフも変数Ｘを固定し、変数Ｖに対する出力の依存性を示している。図５５および図５６はｄＸ＝０Ｖ（ＺＲ）の場合である。図５７および図５８は、ｄＸ＝１．７５Ｖの場合である。また、図５９および図６０は、ｄＸ＝３．５Ｖ（ＰＬ）の場合である。図５５、図５７および図５９においては、変数Ｘを論理値にして３ずつ、−３から＋３まで変化させている。また、図５６、図５８および図６０においては、変数Ｘを論理値にして１ずつ、−３から＋３まで変化させている。【０１５３】  以上の例ではＬＵＴで表される関数を扱ってきた。ここでは、数式で表される関数の実装例を示す。まず、図６１（ａ）に示すｙ＝ｆ（ｘ）（ａ≦ｘ≦ｂ）に変数変換を施すことにより、図６１（ｂ）に示す関数ｑ＝ｈ（ｐ）を得る。ここで、入力変数ｘとｐとの関係は、下記式の通りである。
2005004032.tif 000113
また、出力変数ｙとｑとの関係は、下記式の通りである。
2005004032.tif 000114
ここで、ｙｍａｘおよびｙｍｉｎは、ａ≦ｘ≦ｂにおけるｙ＝ｆ（ｘ）の最大値および最小値をそれぞれ表している。要するに、上記変数変換においては、ｘ軸方向およびｙ軸方向それぞれについて、必要に応じて平行移動と縮小または拡大とを行うことにより、被実装関数の定義域および値域をそれぞれ閉区間［−ｋ，ｋ］内に収めている。これにより、関数ｙ＝ｆ（ｘ）は、上述のしきい値要素回路を用いた実装に適した形となる。なお、本例のように被実装関数の定義域および値域がそれぞれ閉区間［−ｋ，ｋ］内に丁度収まるようにすることは必須ではない。ここで、定義域が丁度収まるとは、ｘ＝ａのときｐ＝−ｋ、且つｘ＝ｂのときｐ＝ｋとなる場合をいう。また、値域が丁度収まるとは、ｙ＝ｙｍｉｎのときｑ＝−ｋ、且つｙ＝ｙｍａｘのときｑ＝ｋとなる場合をいう。【０１５４】  入力変数ｐと電圧Ｖとの関係は、下記式の通りである。
2005004032.tif 000115
すなわち、ｐ＝−ｋのときＶ＝Ｖｓｓとなり、ｐ＝ｋのときＶ＝Ｖｄｄとなる。ＶｓｓおよびＶｄｄは、それぞれ飽和レベルの下限電圧および上限電圧である。なお、出力変数ｑと電圧Ｖとの関係は、入力変数ｐと電圧Ｖとの上記関係と同様であり、（９４）式のｐをｑで置き換えることにより得られる。また、入力変数ｘと電圧Ｖとの関係は、下記式の通りである。
2005004032.tif 000116
また、入力変数ｙと電圧Ｖとの関係は、下記式の通りである。
2005004032.tif 000117
【０１５５】  次に、図６２に示すように、ｑ−ｈ（ｐ）を適当な間隔でサンプリングする。サンプリング点のｐ座標を小さい方から順にｐ１，ｐ２，…，ｐｎとする。なお、サンプリング間隔は、一定である必要はない。すなわち、ｐｉ−ｐｉ−１≠ｐｉ＋１−ｐｉであってもよい。また、ｈ（−ｋ）≠０の場合、ｐ１＝−ｋとする、すなわち関数ｑ＝ｈ（ｐ）の定義域の最小値においてサンプリングすることが好ましい。同様に、ｈ（ｋ）≠０の場合、ｐｎ＝ｋとする、すなわち関数ｑ＝ｈ（ｐ）の定義域の最大値においてサンプリングすることが好ましい。こうすることより、関数ｑ＝ｈ（ｐ）の実装精度を高めることができる。【０１５６】  続いて、各サンプリング点（ｐｉ，ｈ（ｐｉ））について、下記式で定義される関数（副関数と呼ぶ）を準備する（図６３）。
2005004032.tif 000118
この式において、ｉ＝１，２，…，ｎであるため、便宜的にｐ０およびｐｎ＋１を定義しておく必要がある。ｐ０は、ｐ１よりも小さい任意の値である。また、ｐｎ＋１は、ｐｎよりも大きい任意の値である。【０１５７】  副関数ηｉ（ｐ）は、しきい値要素回路を用いて下記式のように実装することができる。
2005004032.tif 000119
図６４（ａ）には、全てのｉについて、副関数ηｉ（ｐ）を図示している。この図からもわかるように、これらの副関数ηｉ（ｐ）を重ね合わせることにより、近似的にｑ＝ｈ（ｐ）を得ることができる。すなわち、Σｉηｉ（ｐ）は、図６４（ｂ）に示すように、隣り合うサンプリング点間を直線でつないで得られる折れ線グラフを表す。なお、図６４（ｂ）においては、ｐについて定義域［−ｋ，ｋ］の範囲内のみでグラフを図示している。ここで、ｏｕｔｐｕｔ＝Σｉηｉ（ｐ）は、下記式のように実装することができる。
2005004032.tif 000120
【０１５８】  上述のように、副関数を重ね合わせることにより、しきい値要素回路を用いて任意の関数を実装することができる。被実装関数が曲線的な場合には、近似的に実装することになるが、サンプリング間隔を適当に設定することにより、誤差を許容範囲内に収めることができる。また、サンプリング間隔は一定である必要はないので、グラフ上で曲率半径の比較的小さいところではサンプリング間隔を比較的狭くし、曲率半径の比較的大きいところではサンプリング間隔を比較的広くすることも可能である。こうすることにより、サンプリング数の増大（回路素子数の増大につながる）を抑制しつつ、関数の実装精度を高めることができる。なお、図６５に示すように、被実装関数が直線的な場合には、理論上誤差なく任意の関数を実装することができる。この場合、微分不可能点（直線の傾きが変化する点）をサンプリング点とすればよい。ここで、微分不可能点には、定義域の最小値および最大値に対応する点も含まれるものとする。【０１５９】  例として、正弦関数：ｙ＝ｓｉｎ（ｘ）を実装する。まず、（９２）式および（９３）式を用いて、この関数をｑ＝ｈ（ｐ）の形にする。この場合、ａ＝０、ｂ＝２π、ｙｍｉｎ＝−１、ｙｍａｘ＝１である。また、ｋ＝１とすると、ｙ＝ｓｉｎ（ｘ）は、下記式のようになる。
2005004032.tif 000121
【０１６０】  次に、図６６に示すように、（１００）式の関数をサンプリングする。ここでは、簡単のため、サンプリング間隔を一定（＝１／８）としている。各サンプリング点のｐ座標は、ｐｉ＝（ｉ−９）／８（ｉ＝１，２，…，１７）と表される。また、この場合、副関数ηｉ（ｐ）は、下記式のように実装される。
2005004032.tif 000122
したがって、（１００）式の関数は、図６７に示すように実装することができる。この図中でηｉと記されている記号は、（１０１）式に対応する回路を表しており、その回路構成は図６８に示す通りである。図６８は、具体例としてｉ＝２の場合を示している。なお、図６７においては、η１、η９およびη１７に対応する回路が設けられていない。これは、本例においてｈ（η１）＝ｈ（η９）＝ｈ（η１７）＝０であるため、η１、η９およびη１７は恒等的に０となり、したがってこれらに対応する回路を設ける必要がないからである。【０１６１】  また、本例においては、Σｉηｉ（ｐ）に相当する演算が２段階に分けて実行される。すなわち、増幅器ＳＦ１はη２、η３およびη４の重ね合わせ演算を実行し、増幅器ＳＦ２はη５、η６、η７およびη８の重ね合わせ演算を実行し、増幅器ＳＦ３はη１０、η１１およびη１２の重ね合わせ演算を実行し、増幅器ＳＦ４はη１３、η１４、η１５およびη１６の重ね合わせ演算を実行する。そして、増幅器Ｆは、増幅器ＳＦ１−ＳＦ４からの出力を重ね合わせることにより、Σｉηｉ（ｐ）すなわちｑ＝ｈ（ｐ）を出力する。なお、Σｉηｉ（ｐ）に相当する演算は、１段階で行ってもよく、３段階以上に分けて実行してもよい。ただし、反転型の増幅器を用いる場合、段階数が奇数ならば、最終段の増幅器からの出力が−Σｉηｉ（ｐ）となることに注意すべきである。その場合、例えば、インバータを用いて上記出力の符号を反転させればよい。あるいは、予め副関数ηｉ（ｐ）の符号を反転させておく、すなわち（９８）式中のｈ（ｐｉ）を−ｈ（ｐｉ）で置き換えたものを実装しておけばよい。図６７において、増幅器ＳＦ１−ＳＦ４ならびに増幅器Ｆの入力重みは、全て１である。【０１６２】  上記各実施形態のデバイス（図７，８，１８，４３，５４等参照）においては、関数がハードウエアで実現されており、マイクロプロセッサ等によるソフトウエア的な処理を必要としない。マイクロプロセッサを搭載する必要がないため、本デバイスは、低コストで製造することができる。マイクロプロセッサが搭載された装置（例えば、電化製品、自動車など）に本デバイスを組み込む場合にも、そのマイクロプロセッサに負担を掛けることがない。【０１６３】  また、本デバイスは、マイクロプロセッサに比して少ない数のトランジスタにより構築することが可能である。したがって、マイクロプロセッサを必要とするデバイスに比して、小型化、低消費電力化が可能であるとともに、熱暴走等による誤動作が発生する可能性が低い。さらに、所望の関数を実装するために、ハードウエアのみ開発すればよく、ソフトウエアを開発する必要がない。このため、ソフトウエアバグに起因する誤動作等の恐れがなく、したがって信頼性、安全性に優れている。【０１６４】  また、マイクロプロセッサを必要とする従来の関数デバイスにおいては、関数の処理速度が、マイクロプロセッサにより入力変数を検出する時間間隔によって律速されてしまう。これに対し、ハードウエアで構成された本デバイスは、ナノ秒オーダーの高速処理が可能である。【０１６５】  また、本デバイスは、アナログ信号を入力し、アナログ信号を出力するものであるため、ＡＤ変換器やＤＡ変換器を必要��しない。このため、一層簡略な構成で、関数を処理することができる。【０１６６】  本デバイスにおいては、しきい値要素回路を用いて所定の関数を実装している。しきい値要素回路は、上述の通り、任意の多値論理において関数完全性を有する。したがって、しきい値要素回路の出力の重ね合わせが所望の関数の出力になるようにしきい値要素回路を組み合わせることにより、任意の多値論理関数を実装することができる。しかも、このしきい値要素回路の出力は、フラグメントコンスタント（図１０（ａ）参照）ではなく、フラグメントリニア（図１０（ｂ）参照）である。このため、上記しきい値要素回路は、アナログのしきい値素子として用いることができ、その出力をアナログしきい値関数と呼ぶことができる。つまり、本デバイスは、このような出力特性をもつしきい値要素回路を用いているため、デジタル関数のみならずアナログ関数をも実装することができるのである。これに対して、フラグメントコンスタントな出力特性をもつ要素回路を用いた場合には、デジタル関数しか実装することができない。【０１６７】  以上、本発明を実施の形態をもとに説明したが、さまざまな変形例が存在し、それらの変形例もまた本発明に含まれることは、当業者には理解されるところである。たとえば、実施の形態ではプッシュプルタイプの総和増幅器が利用されたが、これらはプッシュプルに限らず、差動タイプその他の増幅器であってもよい。【０１６８】  図１（ｂ）では、１０個のトランジスタが利用されたが、この数も当然いろいろと選択の余地がある。たとえば６個のトランジスタを用いてもよく、増幅率との関係で定めればよい。【０１６９】  上記実施形態においては反転型の演算増幅器をしきい値要素回路として用いたが、非反転型の演算増幅器をしきい値要素回路として用いてもよい。その場合、（３）式は、次のようになる。
2005004032.tif 000123
また、しきい値要素回路として演算増幅器を用いることは必須ではない。図２（ａ）に示すような出力特性をもつその他の回路をしきい値要素回路として用いてもよい。【０１７０】  ファジィ制御関数および三角関数を例にとって説明したが、本発明は、それ以外の任意の関数にも適用可能であることは上述の一連の説明から明らかである。上記実施形態において多値論理におけるしきい値要素回路の関数完全性を証明したとおり、総和増幅器を適宜組み合わせることにより、任意の関数に対応するデバイスを得ることが可能である。例えば、表７において出力論理値が任意の値であった場合、１変数（ここではｘとする）を固定し、（２６）式のように、ｘの各値について表７の縦の列をｙの関数で表す。それにより、Ｆ（ｘ＝−３，ｙ）、Ｆ（ｘ＝−２，ｙ）、Ｆ（ｘ＝−１，ｙ）、Ｆ（ｘ＝０，の、Ｆ（ｘ＝１，ｙ）、Ｆ（ｘ＝２，ｙ）、Ｆ（ｘ＝３，ｙ）という７個の関数を得る。次に、（２３）式に従って、ｘの各値について次の７つの式を準備する。
（ｉ）φｘ（ｘ＝−３）＝Ｓ（Ｓ（Ｍ−３（ｘ）；Ｆ（ｘ＝−３，ｙ））；Ｓ（−Ｍ−３（ｘ）；Ｆ（ｘ＝−３，ｙ））；Ｆ（ｘ＝−３，ｙ））
（ｉｉ）φｘ（ｘ＝−２）＝Ｓ（Ｓ（Ｍ−２（ｘ）；Ｆ（ｘ＝−２，ｙ））；Ｓ（−Ｍ−２（ｘ）；Ｆ（ｘ＝−２，ｙ））；Ｆ（ｘ＝−２，ｙ））
（ｉｉｉ）φｘ（ｘ＝−１）＝Ｓ（Ｓ（Ｍ−１（ｘ）；Ｆ（ｘ＝−１，ｙ））；Ｓ（−Ｍ−１（ｘ）；Ｆ（ｘ＝−１，ｙ））；Ｆ（ｘ＝−１，ｙ））
（ｉｖ）φｘ（ｘ＝０）＝Ｓ（Ｓ（Ｍ０（ｘ）；Ｆ（ｘ＝０，ｙ））；Ｓ（−Ｍ０（ｘ）；Ｆ（ｘ＝０，ｙ））；Ｆ（ｘ＝０，ｙ））
（ｖ）φｘ（ｘ＝１）＝Ｓ（Ｓ（Ｍ１（ｘ）；Ｆ（ｘ＝１，ｙ））；Ｓ（−Ｍ１（ｘ）；Ｆ（ｘ＝１，ｙ））；Ｆ（ｘ＝１，ｙ））
（ｖｉ）φｘ（ｘ＝２）＝Ｓ（Ｓ（Ｍ２（ｘ）；Ｆ（ｘ＝２，ｙ））；Ｓ（−Ｍ２（ｘ）；Ｆ（ｘ＝２，ｙ））；Ｆ（ｘ＝２，ｙ））
（ｖｉｉ）φｘ（ｘ＝３）＝Ｓ（Ｓ（Ｍ３（ｘ）；Ｆ（ｘ＝３，ｙ））；Ｓ（−Ｍ３（ｘ）；Ｆ（ｘ＝３，ｙ））；Ｆ（ｘ＝３，ｙ））【０１７１】  上記（ｉ）−（ｖｉｉ）は、それぞれ、次の規則に対応する。
ｉｆ  ｘ＝−３  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝−３，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝−２  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝−２，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝−１  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝−１，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝０  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝０，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝１  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝１，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝２  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝２，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０
ｉｆ  ｘ＝３  ｔｈｅｎ  Ｏｕｔｐｕｔ＝Ｆ（ｘ＝３，ｙ）ｅｌｓｅ  Ｏｕｔｐｕｔ＝０【０１７２】  よって、下記式：
Ｏｕｔｐｕｔ＝Ｓ（Ｓ（φｘ（ｘ＝−３）；φｘ（ｘ＝−２）；φｘ（ｘ＝−１）；φｘ（ｘ＝０）；φｘ（ｘ＝１）；φｘ（ｘ＝２）；φｘ（ｘ＝３）））…（３８）
に従って総和増幅器を組むことにより、任意の関数に対応するデバイスを得ることができる。【０１７３】  なお、Ｆ（ｘ＝α，ｙ）を実装する際にも、（２３）式を用いることができる。例えば、表７においてｘ＝１の列の出力値が上から順に、ｙ−３、ｙ−２、ｙ−１、ｙ０、ｙ１、ｙ２、ｙ３であるとすると、Ｆ（ｘ＝１，ｙ）は下記式に従って実装すればよい。
Ｆ（ｘ＝１，ｙ）＝Ｓ（Ｓ（φｙ（ｙ＝−３）；φｙ（ｙ＝−２）；φｙ（ｙ＝−１）；φｙ（ｙ＝０）；φｙ（ｙ＝１）；φｙ（ｙ＝２）；φｙ（ｙ＝３）））
ここで、
φｙ（ｙ＝−３）＝Ｓ（Ｓ（Ｍ−３（ｙ）；ｙ−３）；Ｓ（−Ｍ−３（ｙ）；ｙ−３）；ｙ−３）、
φｙ（ｙ＝−２）＝Ｓ（Ｓ（Ｍ−２（ｙ）；ｙ−２）；Ｓ（−Ｍ−２（ｙ）；ｙ−２）；ｙ−２）、
φｙ（ｙ＝−１）＝Ｓ（Ｓ（Ｍ−１（ｙ）；ｙ−１）；Ｓ（−Ｍ−１（ｙ）；ｙ−１）；ｙ−１）、
φｙ（ｙ＝０）＝Ｓ（Ｓ（Ｍ０（ｙ）；ｙ０）；Ｓ（−Ｍ０（ｙ）；ｙ０）；ｙ０）、
φｙ（ｙ＝１）＝Ｓ（Ｓ（Ｍ１（ｙ）；ｙ１）；Ｓ（−Ｍ１（ｙ）；ｙ１）；ｙ１）、
φｙ（ｙ＝２）＝Ｓ（Ｓ（Ｍ２（ｙ）；ｙ２）；Ｓ（−Ｍ２（ｙ）；ｙ２）；ｙ２）、
φｙ（ｙ＝３）＝Ｓ（Ｓ（Ｍ３（ｙ）；ｙ３）；Ｓ（−Ｍ３（ｙ）；ｙ３）；ｙ３）
である。【０１７４】  入力変数の数が２の場合を例にとって説明したが、入力変数の数は１つでもよく、３つ以上でもよい。例えば、入力変数がｘ、ｙ、ｚの３つの場合、先ず１変数（ここではｚとする）を固定し、ｚの各値について、残りの変数の関数を作る。つまり、Ｆ（ｘ，ｙ，ｚ＝γ）（γ＝−３，−２，…，３）を作る。また、（２３）式を用いて、下記式：
φｚ（ｚ＝γ）＝Ｓ（Ｓ（Ｍγ（ｚ）；Ｆ（ｘ，ｙ，ｚ＝γ））；Ｓ（−Ｍγ（ｚ）；Ｆ（ｘ，ｙ，ｚ＝γ））；Ｆ（ｘ，ｙ，ｚ＝γ））
を作る。
そして、下記式：
Ｏｕｔｐｕｔ＝Ｓ（Ｓ（φｚ（ｚ＝−３）；φｚ（ｚ＝−２）；φｚ（ｚ＝−１）；φｚ（ｚ＝０）；φｚ（ｚ＝１）；φｚ（ｚ＝２）；φｚ（ｚ−３）））
に従って総和増幅器を組めばよい。【０１７５】  なお、Ｆ（ｘ，ｙ，ｚ＝γ）の実装の仕方は、２変数の場合について説明したとおりであり、（３８）式と同様に実装すればよい。４変数以上の場合にも、変数を１つずつ固定し、上述の作業を繰り返せばよい。【０１７６】  出力論理値の最大値および／または最小値が入力論理値の範囲を超える場合、表５の例で示したように、入力論理値を便宜的に定数倍して考えればよい（表５の例では２倍している）。このときの定数は、定数倍された入力論理値の範囲内に、出力論理値の最大値および最小値が収まるように決定する。また、出力論理値を定数（＜１）倍することにより、入力論理値の範囲内に、定数倍された出力論理値の最大値および最小値が収まるようにしてもよい。【０１７７】  論理値の数が３の場合（３値論理）または７の場合（７値論理）の場合を例にとって説明したが、論理値の数はその他の値でもよいことは言うまでもない。なお、上記実施形態において、ＬＵＴの要素を「論理値」と便宜的に表現しているが、入力変数および出力変数がデジタル変数に限らずアナログ変数であってもよいことは上述の一連の説明から明らかである。
【図１】
2005004032.tif 000124
【図２】
2005004032.tif 000125
【図３】
2005004032.tif 000126
【図４】
2005004032.tif 000127
【図５】
2005004032.tif 000128
【図６】
2005004032.tif 000129
【図７】
2005004032.tif 000130
【図８】
2005004032.tif 000131
【図９】
2005004032.tif 000132
【図１０】
2005004032.tif 000133
【図１１】
2005004032.tif 000134
【図１２】
2005004032.tif 000135
【図１３】
2005004032.tif 000136
【図１４】
2005004032.tif 000137
【図１５】
2005004032.tif 000138
【図１６】
2005004032.tif 000139
【図１７】
2005004032.tif 000140
【図１８】
2005004032.tif 000141
【図１９】
2005004032.tif 000142
【図２０】
2005004032.tif 000143
【図２１】
2005004032.tif 000144
【図２２】
2005004032.tif 000145
【図２３】
2005004032.tif 000146
【図２４】
2005004032.tif 000147
【図２５】
2005004032.tif 000148
【図２６】
2005004032.tif 000149
【図２７】
2005004032.tif 000150
【図２８】
2005004032.tif 000151
【図２９】
2005004032.tif 000152
【図３０】
2005004032.tif 000153
【図３１】
2005004032.tif 000154
【図３２】
2005004032.tif 000155
【図３３】
2005004032.tif 000156
【図３４】
2005004032.tif 000157
【図３５】
2005004032.tif 000158
【図３６】
2005004032.tif 000159
【図３７】
2005004032.tif 000160
【図３８】
2005004032.tif 000161
【図３９】
2005004032.tif 000162
【図４０】
2005004032.tif 000163
【図４１】
2005004032.tif 000164
【図４２】
2005004032.tif 000165
【図４３】
2005004032.tif 000166
【図４４】
2005004032.tif 000167
【図４５】
2005004032.tif 000168
【図４６】
2005004032.tif 000169
【図４７】
2005004032.tif 000170
【図４８】
2005004032.tif 000171
【図４９】
2005004032.tif 000172
【図５０】
2005004032.tif 000173
【図５１】
2005004032.tif 000174
【図５２】
2005004032.tif 000175
【図５３】
2005004032.tif 000176
【図５４】
2005004032.tif 000177
【図５５】
2005004032.tif 000178
【図５６】
2005004032.tif 000179
【図５７】
2005004032.tif 000180
【図５８】
2005004032.tif 000181
【図５９】
2005004032.tif 000182
【図６０】
2005004032.tif 000183
【図６１】
2005004032.tif 000184
【図６２】
2005004032.tif 000185
【図６３】
2005004032.tif 000186
【図６４】
2005004032.tif 000187
【図６５】
2005004032.tif 000188
【図６６】
2005004032.tif 000189
【図６７】
2005004032.tif 000190
【図６８】
2005004032.tif 000191
【国際調査報告】
2005004032.tif 000192
2005004032.tif 000193
2005004032.tif 000194
2005004032.tif 000195