MaxVal

ユーザー指定の関数の最大値を計算します。この関数は、MotionSolveの式であってもユーザーサブルーチンであってもかまいません。

信号 f ( q ( t ) ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaebbnrfifHhDYfgasaacH8srps0l bbf9q8WrFfeuY=Hhbbf9v8qiqrFr0xc9pk0xbba9q8WqFfea0=yr0R Yxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeGabeqadiWa ceGabeqabeqadeqadeaakeaacaWGMbWaaeWaaeaacaWGXbGaaiikai aadshacaGGPaaacaGLOaGaayzkaaaaaa@37B3@ の最大値は次の条件を満たします。T*が、 f ( q ( t ) ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaebbnrfifHhDYfgasaacH8srps0l bbf9q8WrFfeuY=Hhbbf9v8qiqrFr0xc9pk0xbba9q8WqFfea0=yr0R Yxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeGabeqadiWa ceGabeqabeqadeqadeaakeaacaWGMbWaaeWaaeaacaWGXbGaaiikai aadshacaGGPaaacaGLOaGaayzkaaaaaa@37B3@ が最大である時点を表す場合、t ≠ T*のときは f ( q ( T * ) ) f ( q ( t ) ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaebbnrfifHhDYfgasaacH8srps0l bbf9q8WrFfeuY=Hhbbf9v8qiqrFr0xc9pk0xbba9q8WqFfea0=yr0R Yxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeGabeqadiWa ceGabeqabeqadeqadeaakeaacaWGMbWaaeWaaeaacaWGXbGaaiikai aadsfacaGGQaGaaiykaaGaayjkaiaawMcaaiabgsMiJkaadAgadaqa daqaaiaadghacaGGOaGaamiDaiaacMcaaiaawIcacaGLPaaaaaa@3FB2@ この式が最大値を持たない場合は、初期値が最大値として返されます。

MAX関数に対する平滑近似がMotionSolveに実装されているため、この関数の感度は解析的に計算されます。この平滑近似はアルファソフト近似と呼ばれ、次の式で表されます。

(1)
M a x v a l ( x ) = 0 T x ( t )   e a x ( t )   d t 0 T e a x ( t )   d t MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfwBIj xAHbstHrhAaerbuLwBLnhiov2DGi1BTfMBaeXafv3ySLgzGmvETj2B SbqeeuuDJXwAKbsr4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqr Ffpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0F irpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaciGaaeWaceabca GcqqaaaaaaOpGqSvxza8qabaGaamytaiaadggacaWG4bGaamODaiaa dggacaWGSbGaaiikaiaadIhacaGGPaGaeyypa0ZaaSaaaeaadaWdXa qaaiaadIhacaGGOaGaamiDaiaacMcacaqGGaGaamyzamaaCaaaleqa baGaamyyaiaadIhacaGGOaGaamiDaiaacMcaaaGccaqGGaGaamizai aadshaaSqaaiaaicdaaeaacaWGubaaniabgUIiYdaakeaadaWdXaqa aiaadwgadaahaaWcbeqaaiaadggacaWG4bGaaiikaiaadshacaGGPa aaaOGaaeiiaiaadsgacaWG0baaleaacaaIWaaabaGaamivaaqdcqGH RiI8aaaaaaa@611A@
パラメータ a > 0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfgBPj MCPbqefqvATv2CG4uz3bIuV1wyUbqeduuDJXwAKbYu51MyVXgaruWq VvNCPvMCG4uz3bqeeuuDJXwAKbsr4rNCHbGeaGqiVu0Je9sqqrpepC 0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yq aqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaci GaaqqaceqbcaGcbaGaamyyaiabg6da+iaaicdaaaa@3FA6@ を使用して、計算の精度を制御します。
注: M a x ( x ) = lim M a x v a l ( x ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfwBIj xAHbstHrhAaerbuLwBLnhiov2DGi1BTfMBaeXafv3ySLgzGmvETj2B SbqeeuuDJXwAKbsr4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqr Ffpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0F irpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaciGaaeWaceabca GcbaGaaeytaiaabggacaqG4bGaaiikaiaabIhacaGGPaGaeyypa0Za aCbeaeaaciGGSbGaaiyAaiaac2gaaSqaaiaadggacqGHsgIRcqGHEi sPaeqaaOGaamytaiaadggacaWG4bGaamODaiaadggacaWGSbGaaiik aiaadIhacaGGPaaaaa@4FA3@ .

a MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfgBPj MCPbqefqvATv2CG4uz3bIuV1wyUbqeduuDJXwAKbYu51MyVXgaruWq VvNCPvMCG4uz3bqeeuuDJXwAKbsr4rNCHbGeaGqiVu0Je9sqqrpepC 0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yq aqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaci GaaqqaceqbcaGcbaGaamyyaaaa@3DE4@ のデフォルト値は+10であり、この値はほとんどの状況で有効です。

サスペンションシステムの設計で、シャーシの最大加速度に上限があるとします。

以下のコードは、MaxValを使用してこの応答を定義する方法を示しています。


>>> # Define the maximum of acceleration
>>> maxAcc = MaxVal(function = "ACCZ({})".format(p.cm.id))