3

私は JavaScript アプレットを書いており、他の人が比例コントローラーの有無にかかわらずシステムがどのように機能し、出力が何であるかを簡単に確認できます。

最初にアプレットについて少し説明します (必要に応じてこれをスキップできます。本当の問題は最後の段落にあります)。

システムへの入力方法 (周波数ドメイン) を実装することができたので、アプレットは計算を実行し、提供されたシステムをユーザーに表示できます。現時点では、アプレットはシステムの極と零点を計算し、それらをルート軌跡と共にプロットし、システムのナイキスト曲線をプロットし、システムのボード線図をプロットします。

次にアプレットに実行させたいのは、インパルス応答の計算とプロットです。そのためには、システムの伝達関数に対して逆ラプラス変換を実行する必要があります。

ここで本当の質問: 周波数領域に関数 (伝達関数) があります。関数は有理関数であり、2 つの多項式 (係数によって格納される分子と分母) としてプログラムに格納されます。この関数を時間領域に変換する最良の方法は何でしょうか? (逆ラプラス) . または、これを既に実装しているオープンソースのライブラリがあります。私はすでにそれを検索しましたが、より単純な数学の数学ライブラリしか見つかりませんでした。

前もって感謝します

4

2 に答える 2

2

これはかなり複雑で興味深い問題です。いくつかのアイデア。

(1) 解が厳密に JS でなければならない場合: 一部の有理関数の逆 LT は、部分分数分解によって見つけることができます。多項式の数値係数がありますね。JS で部分分数分解を実装してみるか、見つけることができます。ここで難しいのは、逆 LT を部分分数で求めることができるとは限らないことです。

(2) JS をグルー コードとして使用し、有理関数を別のプロセス (Sympy や Maxima などを実行中) に送信して、逆 LT を計算します。そうすれば、利用可能なすべての機能を利用できますが、他のプロセスに接続して結果を解析するには多少の作業が必要になります。少なくとも Maxima については、Maxima を計算バックエンドとして使用する多くのプロジェクトがありました。参照: http://maxima.sourceforge.net/relatedprojects.html

于 2014-08-19T17:21:45.623 に答える
2

問題は解決しました。いくつかの数値的方法を確認した後、システムの極と最小二乗法を使用して係数を計算することにより、部分分数分解を行いました。この後、逆 LT を見つけるのはそれほど難しくありませんでした。

あなたの提案のためのThx ;)

コードを見たいかどうか私に尋ねてください。

于 2014-09-04T14:45:03.177 に答える