伝達関数の離散化について

47 views (last 30 days)
mukky
mukky on 23 Apr 2023
Commented: NaoyaImai on 11 Mar 2024
基本的なことなのですが伝達関数の離散化について教えてください。
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倍の違いは何なのでしょうか?

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 24 Apr 2023
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 Comment
NaoyaImai
NaoyaImai on 11 Mar 2024
便乗で質問させてください。
ゼロ次ホールドの離散化に関して記述のある書籍等ご存知でしょうか。
現在購入可能なものであれば助かります。

Sign in to comment.

More Answers (0)

Categories

Find more on 動的システム モデル in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!