1

Python でステップ応答の次のステップ特性を決定しようとしています。

  • 立ち上がり時間
  • 整定時間
  • 整定最小
  • セトリングマックス
  • オーバーシュート
  • アンダーシュート
  • ピーク
  • ピーク時

Matlab は関数stepinfoを提供していますが、Python で適切な代替手段を見つけることができません。numpy と scipy を使用して自分で作成しようとしましたが、まだあまり運がなく、信号処理の知識が不足しています。

インターネットで見つけることができるほとんどの情報はかなり複雑に見えますが、これについてもっと知りたいと思っています. だれかが、より多くのことを学べる良い本やその他の情報源を私に勧めてくれたら、私はそれを感謝します! ありがとうございました!

これは私が現在持っているステップ応答です:

ステップ応答

4

2 に答える 2

3

この議論は、一種の実装を示唆しています:

def step_info(t,yout):
    print "OS: %f%s"%((yout.max()/yout[-1]-1)*100,'%')
    print "Tr: %fs"%(t[next(i for i in range(0,len(yout)-1) if yout[i]>yout[-1]*.90)]-t[0])
    print "Ts: %fs"%(t[next(len(yout)-i for i in range(2,len(yout)-1) if abs(yout[-i]/yout[-1])>1.02)]-t[0])

次に、信号処理セクションで numpy 関数を使用して、必要な他の情報を取得する必要があります。

于 2014-07-11T14:24:27.257 に答える
0

数式を実装するだけではありませんか? (これが 2 次系であると仮定した場合 / 2 つの支配的な極があり、2 次として近似できる)

%OS = 100 \cdot e^{\left ({\frac{-\zeta \pi}{\sqrt{1-\zeta^2}}}\right)}

立ち上がり時間と安定時間については、いくつかの異なる概算があるため、インターネットはあなたの味方です。

また、(プロット データの最大値と最小値から) 減衰周波数を計算し、それを使用して固有周波数を計算することもできます。

\omega_d = \omega_n \cdot (\sqrt{1-\zeta^2})

あなたが知っていることに応じて、これらのさまざまな量を関連付ける式がいくつかあります。

于 2014-07-12T00:17:55.490 に答える