基本的なことなのですが伝達関数の離散化について教えてください。
sysc=tf([01],[1 1])
にて一次遅れの連続時間の伝達関数を定義し、
sysd=c2d(sysc,1)
にてサンプル時間1secで離散化します。
sysd=0.6321/(z-0.3679)
となるのですが、一般的な入門書には連続時間系の1/(s+a)を離散化するとz/(z-e^a*T)とあり、a=1,T=1とすると
sysd=1/(z-0.3679)
となりますがこの0.6321倍の違いは何なのでしょうか?

 Akzeptierte Antwort

Toshinobu Shintai
Toshinobu Shintai am 24 Apr. 2023

0 Stimmen

c2dコマンドは、デフォルトでは「ゼロ次ホールド」という手法を用いて離散化しています。詳しくはこちらをご確認ください。以下、syscがsysdになる過程について説明させていただきます。
syscは、1次遅れの伝達関数です。
sysc=tf([01],[1 1])
sysc = 1 ----- s + 1 Continuous-time transfer function.
ここから、ゼロ次ホールドの離散化を行います。まず最初に、一定時間入力をホールドする関数 G(s) を掛け算します。
Gは、ラプラス変換のsを用いると となります。代入すると、
ここで、 に変換し(z変換の定義通り)、 に変換します。
ここで、T = 1を代入すると、
となります。

1 Kommentar

NaoyaImai
NaoyaImai am 11 Mär. 2024
便乗で質問させてください。
ゼロ次ホールドの離散化に関して記述のある書籍等ご存知でしょうか。
現在購入可能なものであれば助かります。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 動的システム モデル finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!