(57)【特許請求の範囲】
【請求項１】
設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとを格納する記憶部と、
前記記憶部に格納された複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定する設定部と、
設定された各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出し、算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出する標準値取得部と、
算出された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する最適値取得部とを備え、
前記最適値取得部は、前記一定の条件を満たす設計パラメータ群が得られるまで、複数の前記標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して、前記最悪標準値の決定を新たに行うという一連の処理を繰り返し行う最適値取得装置。
【請求項２】
コンピュータが、
設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとを記憶部に格納する第１過程と、
前記記憶部に格納した複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定し、前記記憶部に格納する第２過程と、
前記記憶部から各前記設計パラメータ群及び複数の前記目的関数を読み出し、各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出する第３過程と、
算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出し、複数の前記標準値を前記記憶部に格納する第４過程と、
前記記憶部に格納された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する第５過程とを実行し、
前記第５過程では、前記一定の条件を満たす設計パラメータ群が得られるまで、前記記憶部に格納された複数の前記標準値を読み出し、複数の該標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新するとともに更新後の設計パラメータ群を前記記憶部に格納し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して前記最悪標準値の決定を新たに行うという一連の処理を繰り返し行う最適値取得方法。
【請求項３】
設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとが格納されている記憶部を備える最適値取得装置に用いられる最適値取得プログラムであって、
前記複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定し、前記記憶部に格納する第１処理と、
前記記憶部から各前記設計パラメータ群及び複数の前記目的関数を読み出し、各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出する第２処理と、
算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出し、複数の前記標準値を前記記憶部に格納する第３処理と、
前記記憶部に格納された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する第４処理とをコンピュータに実行させ、
前記第４処理では、前記一定の条件を満たす設計パラメータ群が得られるまで、前記記憶部に格納された複数の前記標準値を読み出し、複数の該標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新するとともに更新後の設計パラメータ群を前記記憶部に格納し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して、前記最悪標準値の決定を新たに行うという一連の処理を前記コンピュータに繰り返し行わせる最適値取得プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のパラメータ最適値を、自動的に、かつ柔軟に決定することのできる最適値取得装置、方法、プログラム、記録媒体に関するものである。
【０００２】
【従来の技術】
例えば、歯車等を組み合わせて減速機を設計する場合、あらかじめその減速機に対し要求される強度等の条件を満たすように各部のパラメータを設定する。そのような個々のパラメータは、ある性能を向上させようとすると、他の性能が低下するというように、相反する場合もある。例えば、コスト低減のためにサイズ（重量）を小さくすると歯車の強度が低下する。また、トルクを減らすために回転数を増加させると動力損失が増加する。機械を設計する場合、このような相反する可能性のある各パラメータについて、必要な条件を満たし、且つ全体のバランスをとるべく最適化を図る必要がある。
従来、このような機械の設計は、設計者の経験等から各パラメータが設定されるか、又は最適値取得装置等により、各パラメータを得ていた。
【０００３】
【発明が解決しようとする課題】
設計者の経験により各パラメータが設定される場合、熟練した設計者の育成に多くの時間が費やされる。また、そのような設計者がパラメータを設定する過程は、まず設計者が各パラメータを仮定し、仮定したパラメータが要求された性能を満たしているか検証し、性能不十分であれば再度パラメータを仮定する、という動作を繰り返すため、パラメータの設定に時間がかかる。また、設定されたパラメータが本当に最適な値であるか定量的、客観的に評価することができない。
また、従来の最適値取得装置は、次のような問題があった。
▲１▼単一の目的関数（複数又は単数の変数により一義的に得られる値）に対して最適な値を得るものである。従って、例えば減速機のような、複数の目的関数を考慮する必要がある物を設計する場合、従来の最適値取得装置では十分な解が得られない。
【０００４】
▲２▼複数の目的関数に対して最適な値を得ることができる最適値取得装置は、それら複数の目的関数を和や積により組み合わせることで一つの目的関数として示した後、最適化するものであった。そのため、目的関数を作成する手間がかかる。また、目的関数をどのように組み合わせるか、又、組み合わせる際の係数をどうするか等は、その目的に応じて試行錯誤的に設定するものである。従って、例えばある目的関数を得るために組み合わせた目的関数を、他の目的関数を得るためにそのまま利用することはできず、柔軟性に欠ける。また、柔軟性のある最適値取得装置であっても、最適な値を得る過程や結果に対し設計者が判断し、指示しなければならず、自動的に最適値を得るものではない。
本発明はこのような事情に鑑みてなされたもので、複数のパラメータ最適値を、自動的に、かつ柔軟に取得することのできる最適値取得装置、方法、プログラム、記録媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明は上記の目的を達成するためになされたもので、請求項１に記載の発明は、設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとを格納する記憶部と、前記記憶部に格納された複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定する設定部と、設定された各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出し、算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出する標準値取得部と、算出された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する最適値取得部とを備え、前記最適値取得部は、前記一定の条件を満たす設計パラメータ群が得られるまで、複数の前記標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して、前記最悪標準値の決定を新たに行うという一連の処理を繰り返し行う最適値取得装置である。
【０００８】
また、請求項２に記載の発明は、コンピュータが、設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとを記憶部に格納する第１過程と、前記記憶部に格納した複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定し、前記記憶部に格納する第２過程と、前記記憶部から各前記設計パラメータ群及び複数の前記目的関数を読み出し、各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出する第３過程と、算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出し、複数の前記標準値を前記記憶部に格納する第４過程と、前記記憶部に格納された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する第５過程とを実行し、前記第５過程では、前記一定の条件を満たす設計パラメータ群が得られるまで、前記記憶部に格納された複数の前記標準値を読み出し、複数の該標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新するとともに更新後の設計パラメータ群を前記記憶部に格納し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して前記最悪標準値の決定を新たに行うという一連の処理を繰り返し行う最適値取得方法である。
【０００９】
また、請求項３に記載の発明は、設計物の性能毎に設けられ、複数の設計パラメータからなる設計パラメータ群を与えてそれぞれの性能値を算出するための複数の目的関数と、前記設計物に要求される性能を示す目的関数の値である複数のリファレンスとが格納されている記憶部を備える最適値取得装置に用いられる最適値取得プログラムであって、
前記複数の目的関数に与える前記設計パラメータ群を一定の規則に従って複数設定し、前記記憶部に格納する第１処理と、前記記憶部から各前記設計パラメータ群及び複数の前記目的関数を読み出し、各前記設計パラメータ群を前記目的関数の各々に与えることで各性能値を算出する第２処理と、算出した各性能値と対応する前記リファレンスとの差分を前記リファレンスで除算することにより、無次元数である複数の標準値を算出し、複数の前記標準値を前記記憶部に格納する第３処理と、前記記憶部に格納された複数の前記標準値を用いて、前記性能のそれぞれにおいて、リファレンスと性能値との差分が一定の条件を満たす設計パラメータ群を取得する第４処理とをコンピュータに実行させ、前記第４処理では、前記一定の条件を満たす設計パラメータ群が得られるまで、前記記憶部に格納された複数の前記標準値を読み出し、複数の該標準値の中から最も値の大きい標準値である最悪標準値を特定し、該最悪標準値が得られたときの設計パラメータ群を該最悪標準値以外の標準値が得られたときの設計パラメータ群に基づいて更新するとともに更新後の設計パラメータ群を前記記憶部に格納し、更新後の設計パラメータによって得られた前記標準値を前記最悪標準値に代えて採用して、前記最悪標準値の決定を新たに行うという一連の処理を前記コンピュータに繰り返し行わせる最適値取得プログラムである。
【００１２】
【発明の実施の形態】
以下、図面を参照し、本発明の一実施形態について説明する。本実施形態は、複数の変数から得られる値を、目標とする値で標準化することにより、単位の異なる値を相互に比較評価することのできる最適値取得装置である。ここでは、減速機の変数設定を行なう実施形態を説明する。
【００１３】
図１は、本実施形態の最適値取得装置の内部構成を機能展開して示したブロック図である。この図において、１は、本実施形態の最適値取得装置である。この最適値取得装置１には、図示していないがキーボード、ディスプレイ等の入出力装置が接続されている。１１は入力受付部であり、入力装置を介して入力された各値を受け付ける。１２は初期点設定部であり、変数の最適値を取得する初期点を一定の規則に従って設定する。この初期点に関しては後述する。１３は目的関数取得部であり、モジュールm、ピニオン歯数z、歯幅Bを変数として、機械工学的な式又は与えられた式から、歯車にかかる応力、動力損失、減速機サイズ、製作コスト等の目的関数の値を取得する。
【００１４】
１４は標準値算出部であり、減速機の設計に必要な各値を標準化して、標準化目的関数を得る。本実施形態では、設計する上で目標とする値、つまり減速機に要求される性能を示す目的関数の値（以下、リファレンスという）を用いて標準化する。例えば、ある目標関数のリファレンスをP_refとし、ある変数の組み合わせにより一義的に得られる目的関数の値をP0とすると、その標準化目的関数Peは、ここでは次の式のように示すことができる。
▲１▼  Pe=（P0-P_ref）/P_ref
又は、標準化目的関数Peは次の式でも示すことができる。
▲２▼  Pe=|P0-P_ref|/P_ref
上述した▲１▼、▲２▼式は、算出したい目的関数によって使い分ける。算出したい目的関数の値をリファレンスより小さい値にしたい場合、上述▲１▼の式を用いる。算出したい目的関数の値はリファレンスに近ければいいという場合、上述▲２▼の式を用いる。
【００１５】
１５は最適値取得部であり、目的関数の最適値を取得する。
ここで、本実施形態において、最適値取得部１５で最適値を取得する動作の原理を図３を参照して説明する。なお、ここでは、説明の簡便性のため目的関数が一つであるものとして説明するが、本実施形態の最適値取得装置１は複数の目的関数の最適値を得ることが可能である。
目的関数の値は、変数ａ、bによって一義的に得られるものとする。最適値を得るために、まず初期点P1（a1、b1）を定める。次に、初期点P1（a1、b1）を利用し、一定の規則に従って初期点P2（a2、b2）、P3（a3、b3）を設定する。図３の（ａ）のように、ここでは、初期点P1（a1、b1）から得られる目的関数の値をf1、初期点P2（a2、b2）から得られる目的関数の値をf2、初期点P3（a3、b3）から得られる目的関数の値をf3とする。また、この目的関数におけるリファレンスをP_refとする。
【００１６】
上述の初期点において、リファレンスP_refと各初期点における目的関数の値f1〜f3の差を比較するなどして、P_refと最もかけ離れた初期点を得る。例えば、P_refと最もかけ離れた値がf3であったとすると、f3の値は初期点P3（a3、b3）から得られるため、P_refと最もかけ離れた初期点はP3であると検出する。
次に、図３の（b）のように、最悪点（P_refと最もかけ離れた初期点）P3を除く初期点P1及びP2の重心点Q1を設定する。重心は、最悪点P3を除く他の初期点P1、P2の平均点から設定する。つまり重心点Q1は、Q1（（a1＋a2）/2、（b1＋b2）/2）となる。
【００１７】
次に、図３の（ｃ）のように、重心Q1と、初期点P3とを通過する線上に、新たな設定点P4を設ける。設定点P4の設定パターンには、次のようなものがある。
ａ）反射：重心Q1と、初期点P3とを通過する線上であり、かつ、重心点Q1から、初期点P3から重心点Q1までの距離と同じ距離における点より重心点Q1に近い位置に新たな設定点P4を設定する。図１７の（ａ）における仮点T1は、重心Q1と、初期点P3とを通過する線上にあり、かつ初期点P3から重心点Q1までの距離と、初期点Q1から仮点T1までの距離が同じ位置にある点である。仮点T1の位置を式で示すと以下のようになる。
Q1-P3=T1-Q1
この場合では、設定点P4は、例えば図中の□に示すような位置に設定される。
つまり、初期点P3から重心点Q1までの距離より、重心点Q1から設定点P4までの距離方が短い点に設定点P4を設定する。これを式で示すと次のように表せる。
P4=Q1＋α（Q1-P3）  α≦１
【００１８】
ｂ）延長：重心Q1と、初期点P3とを通過する線上であり、かつ、重心点Q1から、初期点P3から重心点Q1までの距離と同じ距離における点より重心点Q1に遠い位置に新たな設定点P4を設定する。図１７の（ｂ）における仮点T1は、重心Q1と、初期点P3とを通過する線上にあり、かつ初期点P3から重心点Q1までの距離と、初期点Q1から仮点T1までの距離が同じ位置にある点である。仮点T1の位置を式で示すと以下のようになる。
Q1-P3=T1-Q1
この場合では、設定点P4は、例えば図中の□に示すような位置に設定される。
つまり、初期点P3から重心点Q1までの距離より、重心点Q1から設定点P4までの距離の方が長い点に設定点P4を設定する。これを式で示すと次のように表せる。
P4=Q1＋β（Q1-P3）  １＜β≦２
ｃ）縮小：重心Q1と、初期点P3とを通過する線上であり、かつ、初期点P1、P2、P3によって形成される３角形の内側に新たな設定点P4を設定する。この場合では、設定点P4は、例えば図１７の（ｃ）の図中の□に示すような位置に設定される。つまり、初期点P3から設定点P4までの距離と、設定点P4から重心点Q1までの距離の和が、初期点P3から重心点Q1までの距離と一致する点に設定点P4を設定する。これを式で示すと次のように表せる。
P4=P3＋γ（Q1-P3）  γ＜１
d）全縮小：上述したａ）、ｂ）、ｃ）により定めた設定点P4により得られる目的関数の値が改善されない場合、最良の標準化目的関数の値を得られる点に各点を移動する。例えば、図３において、各初期点のうち、P_refに最も近い目的関数の値を算出する点（最良点）が初期点P1であったものとする。このとき、最良点以外の点である初期点P2、P3を、例えば図１７の（d）の図中のP2'、P3'に示すような位置に設定する。この移動後の設定点P2'、P3'は、例えば次のように表せる。
P2'=P2＋δ（P1-P2）  δ＜１
P3'=P3＋δ（P1-P3）  δ＜１
【００１９】
設定点P4は、リファレンスP_refの値により、上述したａ）、ｂ）、ｃ）の設定パターンのうちひとつが選択され設定される。ａ）、ｂ）、ｃ）の設定パターンで得られた各々の目的関数の値f4を比較し、例えば、ｂ）の設定パターンで得られた設定点における目的関数の値f4とリファレンスP_refが最も近い場合、ｂ）の設定パターンで得られた設定点を次の設定点とする、というように選択される。ａ）、ｂ）、ｃ）いずれの設定パターンでも目的関数の値が改善されない場合、上述したｄ）のパターンにより新たな設定点P2'、P3'が設定される。
新たな設定点P4（又は設定点P2'、P3'）を設定した後、初期点P1、P2、設定点P4（又は初期点P1、設定点P2'、P3'）の３点と、リファレンスP_refとを各々比較し、リファレンスP_refと最もかけ離れた点を選択する。次に、その点に代えて上述した方法で新たな設定点を設定する。以下、上記過程を繰り返す。繰り返すことにより、リファレンスP_refに近い値を得ることができる。
このように最適値を得る最適化方法をシンプレックス法という。
【００２０】
次に、図２を参照して最適値取得装置１の動作を説明する。ここでは、最適化する変数をモジュールm、ピニオン歯数z、歯幅Bとし、曲げ応力T、損失L、コストCをリファレンスに近づけるものとして説明する。なお、モジュールmとは、減速機に用いられる歯車の寸法を定める機械工学の指数のことである。また、ピニオン歯数z、歯幅Bとは、減速機に用いられる歯車の性能を決める要素の一部である。
まず、最適値取得装置１の入力受付部１１は、設定条件（リファレンス）、初期値P0等の入力を受け付ける（ステップＳ１１）。ここでは、最適値取得装置１の入力装置を介して、初期値P0として、モジュールm0、ピニオン歯数z0、歯幅B0等が入力されるものとする。入力受付部１１は、設定条件、初期値P0等をメモリ等に格納する。
【００２１】
次に、初期点設定部１２は、メモリ等に格納されたモジュールm0、ピニオン歯数z0、歯幅B0を読み出し、一定の規則に従って初期点を設定する（ステップＳ１３）。ここでは、読み出したモジュールm0、ピニオン歯数z0、歯幅B0各々に、一定値dm、dz、dBを加算することにより初期点を設定する。すなわち、この場合設定した初期点が以下のように設定される。
初期点P0(m0、z0、B0)
初期点P1(m0+dm、z0、B0)
初期点P2(m0、z0+dz、B0)
初期点P3(m0、z0、B0+dB)
なお、初期点設定の個数は、最適化する数値の数＋１個を得る。
【００２２】
次に、目的関数取得部１３は、設定された初期値における目的関数の値を取得する（ステップＳ１１）。ここでは、初期点設置部１２により設定された各初期点P0〜P3における曲げ応力T、損失L、コストCを、機械工学的な式又は与えられている式に基づいて取得する。ここで得た各初期点における目的関数の値を以下のように示す。
初期点P0において  (T0、L0、C0)
初期点P1において  (T1、L1、C1)
初期点P2において  (T2、L2、C2)
初期点P3において  (T3、L3、C3)
【００２３】
次に、標準化関数取得部１４は、各初期点における目的関数の値を標準化し、標準値を得る（ステップＳ１３）。例えば、曲げ応力T、損失L、コストCのリファレンスをT_ref、L_ref、C_refと示すと、ここでは標準値を以下のように得るものとする。
＜曲げ応力T＞
T0e=（T0-T_ref）/T_ref
T1e=（T1-T_ref）/T_ref
T2e=（T2-T_ref）/T_ref
T3e=（T3-T_ref）/T_ref
＜損失L＞
L0e=（L0-L_ref）/L_ref
L1e=（L1-L_ref）/L_ref
L2e=（L2-L_ref）/L_ref
L3e=（L3-L_ref）/L_ref
【００２４】
＜コストC＞
C0e=（C0-C_ref）/C_ref
C1e=（C1-C_ref）/C_ref
C2e=（C2-C_ref）/C_ref
C3e=（C3-C_ref）/C_ref
なお、上述の式において、例えば「L0e」の「0」は初期点P0を示し、「C3e」の「3」は、初期点P3を示す。
【００２５】
次に最適値取得部１５は、標準化関数取得部１４により取得された標準値を用いて、各目的関数（変数）の最適値を取得する（ステップＳ１５）。最適値を取得する動作を以下簡単に説明する。
最適値取得部１５は、各初期点における目的関数の値と、リファレンスとの差をとって最悪点を得る。ここでは、各初期点において、曲げ応力TのリファレンスT_refにより標準化した曲げ応力T0e、T1e、T2e、T3eから、差の最大値（例えばT1e）を検出する。また、各初期点における損失L0e、L1e、L2e、L3eから、差の最大値（例えばL2e）を検出する。また、各初期点におけるコストC0e、C1e、C2e、C3eから、差の最大値（例えばC3e）を検出する。次に、曲げ応力、損失、コスト各々の差の最大値T1e、L2e、C3eを比較し、例えば、「T1e」がリファレンスと最もかけ離れた値であった場合、T1eの含まれる点である初期点P1を最悪点とし、初期点P1を除く初期点P0、P2、P3の重心Q1をとり、前述のa）、b）、c）いずれかの設定パターンでQ1とP1とを通過する線上に新たな設定点P_newを設定する。この新たな設定点P_newは、現状の最悪点より悪化しない点を設定するようにする。前述のa）、b）、c）いずれかの設定パターンで定めた設定点が現状の最悪点より悪化する場合、前述のｄ）の設定パターンで最良点以外の点を移動することにより、新たな点の組み合わせを設定する。
【００２６】
なお、例えば、「T1e」と「L2e」を比較した結果同等であった場合、あらかじめ定められている優先順位に従って最悪点を決定する。
このように、最悪点の選出、新たな設定点の設定という動作を、例えばリファレンスとの差が閾値以下になるまで等の一定の条件を満たすまで繰り返すことにより目的関数が最適となる設定点を取得する。
最適値取得部１５により算出された最適値と、その最適値を算出した変数等の条件は、最適値取得装置１の出力装置に表示される（ステップＳ１６）。
【００２７】
上述の実施形態の最適値取得装置１を利用して、モジュールm、ピニオン歯数z、歯幅Bを最適化した場合の各値の変化過程の一例を図４に示す。この図から、本実施形態の最適値取得装置１を用いることにより各変数が収束し、リファレンスとした値を得るための値に近づくことがわかる。
【００２８】
なお、上述した実施例では、複数の変数の組み合わせから得られる目的関数の値のうち、最もリファレンスからかけ離れた値の変数を変更し、リファレンスに近づけるようにすることで最適化するシンプレックス法を利用して最適値を取得した。しかし、最適化する方法はシンプレックス法に限られるわけではない。例えば、特定の点（変数の組み合わせ）における接線（又は接平面あるいは超接平面）の傾き（勾配）をゼロ（零）に近づけるように変数の組み合わせを変更することで最適化する勾配法を利用してもよい。その動作を以下簡単に説明する。
【００２９】
目的関数をf(a)とする。この目的関数をリファレンスにより標準化した標準化目的関数をfe(a)と示す。一定の規則に従って初期点P1設定する。fe(a)を微分するなどして初期点P1における勾配を取得する。この勾配がゼロ、若しくは定められた閾値以下である等の条件を満たさなかった場合、一定の規則に従って新たな点P2を設定する。さらに、点P2における標準化目的関数fe(a)の勾配を取得し、勾配がゼロ、若しくは定められた閾値以下である等の条件を満たさなかった場合、一定の規則に従って新たな設定点を設定する。これを繰り返すことにより、リファレンスに近い値又はリファレンス以下の値を得る変数の組み合わせを得ることができる。
【００３０】
なお、上述の実施例では、減速機の各変数を設定する例を説明したが、本実施形態の最適値取得装置１の機能はこれに限られるものではない。例えば、軸受けの設計のような、複数の目的関数と、目的関数毎のリファレンスがある場合には、本実施形態の最適値取得装置１により最適な目的関数の値を定める変数を得ることができる。
また、初期点の設定は、乱数的に数値を設定しても良く、また、初期点を別途手動等により指定してもよい。
また、上述の実施形態では、初期点を設定し、設定した初期点における目的関数の値を取得し、取得した目的関数の値を標準化したが、その順はこれに限られることはない。例えば、次のような順にしてもよい。まず、標準値取得部１４は、標準値を取得する標準化目的関数を取得する。次に、初期点設定部１２が初期点を設定する。次に、最適値取得部１５が標準化目的関数から標準値を取得し、最適な変数の組み合わせを取得する。
【００３１】
なお、図１における入力受付部１１、初期点設定部１２、目的関数取得部１３、標準化関数取得部１４、最適値取得部１５は専用のハードウェアにより実現されるものであってもよく、また、入力受付部１１、初期点設定部１２、目的関数取得部１３、標準化関数取得部１４、最適値取得部１５はメモリおよびＣＰＵ（中央演算装置）により構成され、各部の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【００３２】
ここで、上述の最適値取得装置１の機能を実現するプログラムを実行することにより実現させた実施例を、図５から図１６を参照して簡単に説明する。
ここでは、出力、入力回転数、減速比を計算諸元（設計する上で満たすべき性能値）として与え、モジュール、歯数、歯幅、圧力角、ねじれ角が最適化される変数であり、歯元曲げ応力（２個）、最大面圧、PV値、損失、サイズ、コストが目的関数であるものとする。つまり、本実施例の最適値取得装置は、定められた（変更しない）値である出力、入力回転数、減速比と、最適化する（変更できる）値であるモジュール、歯数、歯幅、圧力角、ねじれ角とから、機械工学的な式又は与えられている式を用いて、歯元曲げ応力、最大面圧、PV値、損失、サイズ、コストを目標とする値であるリファレンスに近づけるための動作をするものである。
【００３３】
図５及び図６は、初期設定、及び変数設定（定義）をする例である。なお、図５において、本実施例では、最適値取得部１５において、最悪点の決定、新しい設定点の設定という動作を40回まで繰り返すものとする。
また、最適値取得部１５は、新たな設定点４を、以下４つの式いずれかにより得られると前述した。
ａ）反射  P4=Q1+α(Q1-P3)  α≦１
ｂ）延長  P4=Q1+β(Q1-P3)  １＜β≦２
ｃ）縮小  P4=P3+γ(Q1-P3)  γ＜１
ｄ）全縮小  P2'=P2＋δ（P1-P2）  δ＜１
P3'=P3＋δ（P1-P3）  δ＜１
本実施例では、上述の係数αを1.0（図５における変数定義「P_RF」）、βを2.0（図５における変数定義「P_EX」）、δを0.5（図５における変数定義「P_SH」）としている。ｃ）縮小については省略し、反射、延長で標準化目的関数の値が改善されない場合は直ちに全縮小を実行している。
【００３４】
図７は、目的関数取得部１３の機能を実現する例であり、評価関数 入力パラメータin[]に対して、目的関数の値out[]を計算する例である。なお、ここでは各目的関数を得る式の表示は省略されている。なお、本実施例では、上述した実施例とは異なり、目的関数取得部１３、初期設定部１２という順に記載している。
図８はあらかじめ別途ファイル等に格納している出力、回転数、減速比、及びあらかじめ別途ファイル等に格納されているモジュール、歯数、歯幅、圧力角、ねじれ角の初期値を読み出す例である。
【００３５】
図９、図１０は、初期設定部１２の機能を実現する例であり、初期点を設定し、さらに設定した初期点を評価している。本実施例では、一定の法則にしたがって、設定された初期点を1.5倍することにより複数の初期点を得ている。また、図９では、リファレンスの設定をしている。
【００３６】
図１１から図１５、は、最適値取得部１５の機能を実現する例である。図１０では、最適値を取得する準備をする例を示している。図１１から図１４では、最適値を取得する例を示している。なお、本実施例では、リファレンスから最もかけ離れた最悪点と、リファレンスに最も近い最良点を選択し、次のような条件を満たした時の変数の値を最適値としている。
・各条件で、最良と最悪の差が0.1以下、かつ最悪条件が目標クリア
・パラメータの変化量が10の-6乗以下、又は規定の繰り返し数（本実施例では40回）に達した時
図１６は、最適値取得部１５により算出された最適値を出力する例を示している。
【００３７】
なお、図１における入力受付部１１、初期点設定部１２、目的関数取得部１３、標準化関数取得部１４、最適値取得部１５の機能の一部またはすべてを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより実現させてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００３８】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００３９】
【発明の効果】
以上説明したように、本発明による最適値取得装置、方法、プログラム、記録媒体によれば、下記の効果を得ることができる。
本発明により、複数の変数から定まる複数のパラメータの最適値を、リファレンス等の初期データを入力するだけで自動的に取得することができる。また、本発明は、関数そのものを加工する必要がないので、取得したい最適値を得るための関数がいかなるものでも柔軟に対応し、最適値を取得することができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態において、最適値取得装置の構造を示すブロック図である。
【図２】  同実施形態において、最適値取得装置の動作を説明するフローチャートである。
【図３】  同実施形態において、最適値を取得する原理を説明する図である。
【図４】  同実施形態において、最適値を取得する過程の一例を示した図である。
【図５】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図６】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図７】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図８】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図９】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１０】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１１】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１２】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１３】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１４】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１５】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１６】  同実施形態の最適値取得装置の機能を、プログラムを実行させることにより実現した実施例を説明する図である。
【図１７】  同実施形態において、新たな設定点を設定する方法を説明する図である。
【符号の説明】
１；最適値取得装置、１１；入力受付部、１２；初期点設定部、１３；目的関数取得部、１４；標準値取得部、１５；最適値取得部
【図１】
0004508486.tif 000002
【図２】
0004508486.tif 000003
【図３】
0004508486.tif 000004
【図４】
0004508486.tif 000005
【図５】
0004508486.tif 000006
【図６】
0004508486.tif 000007
【図７】
0004508486.tif 000008
【図８】
0004508486.tif 000009
【図９】
0004508486.tif 000010
【図１０】
0004508486.tif 000011
【図１１】
0004508486.tif 000012
【図１２】
0004508486.tif 000013
【図１３】
0004508486.tif 000014
【図１４】
0004508486.tif 000015
【図１５】
0004508486.tif 000016
【図１６】
0004508486.tif 000017
【図１７】
0004508486.tif 000018