【HyperStudy】目標の振動レベルが周波数毎に違う場合の最適化設定
Overview
背景
振動レベルを目標値以下に下げる目的で最適化をするといったケースはよくあると思います。
そのとき、目標値が周波数によらず一定であれば設定は簡単ですが、目標値が周波数によって違うといったケースでは設定が面倒です。
このような目標ラインが一定でない場合に使えるHyperStudyのユーザー関数を作成しました。
(ダウンロードはこちらから)
登録方法
登録の仕方は以下の順で行います。
①HyperStudyを開き、「編集」→「Python関数」
②Python関数の登録画面で「Python関数の追加」をクリック
③ラベル、識別子に適当な名前を入力(ここでは関数名と同じDiffMaxとしています)
④パスにダウンロードした.pyファイルのパスを指定
⑤関数名はDiffMax,引数の数は3とします
⑥登録が完了したらOKをクリックし、HyperStudyを再起動します。
使用前準備
目標ラインをcsvファイルにしておきます。
一列目に周波数、二列目に振動レベルを入力しておきます。
周波数刻みはCAEの結果と一致していなくてもOKです。線形補間が行われます。
(最初と最後の周波数の間のみが評価対象となり、外挿域は評価しないものとしています。)
使用方法
まずデータソースに検討対象のグラフの横軸、縦軸の値を登録します。
そして出力応答の定義画面で適当な名前・識別子の応答を作成し、式のところに「DiffMax(周波数,振動レベル,目標ラインcsvファイルパス)[1]」としておくと目標ラインとの差分のMax値が得られます。
このMax値に対して、0以下という制約条件を加えるなり、最小化の対象としておけば、目標ラインに対しての最適化が可能になります。
DOEでの活用アイデア
DOEにこの関数を活用することで、目標ラインを達成する範囲などが視覚的にわかりやすくなります。
HyperStudyのPython関数はこれだけではなく、様々な応用が可能になりますので是非ご活用ください。
Usage/Installation Instructions
HyperStudy2022以降のインストールが必要です。