2016-09-28 27 views
1

フィルタ係数を持つPIDのアルゴリズムを作成する際に問題があります。フィルタ係数を持つPIDのブロック図は次のようになります。 enter image description hereMATLAB PIDフィルタ係数

このリンクにアルゴリズム/コードがあります。 https://www.mathworks.com/matlabcentral/answers/63762-filter-coefficient-n-in-pid-block

enter image description here

質問:なぜ、フィルタ係数は、フィルタ係数の未知の変数を持つ未知の変数Filter_DSTATEを持っているということでしょうか? FilterCoefficientのコードには未知の変数Filter_DSTATEがあり、Filter_DSTATEのコードには未知の変数FilterCoefficientがありますか?

仮説。それはある価値によって初期化されるはずのものですか?

答えて

2

空白のSimulinkモデルを開き、PID controllerを追加する場合は、PIDコントローラの微分項が、その理由は、純粋な誘導体として実装さ決してでダブルクリックし

enter image description here

後にダイアログが表示されますノイズに非常に敏感です。したがって、カットオフ周波数が追加されます。

ので、D項は、あなたが言及したフィルタ係数で

  Ns 
s ---> -------- 
     s + N 

Nを経由してほとんど周波数まで派生のように動作します。これはまた、ノイズの多い微分操作を避ける積分器を用いてD項を実施することを可能にする。

enter image description here

+0

なぜこのようなコードがあるのですか?そのアルゴリズムは次のようになります。 x = y;次に、 y = x; ソフトウェアで実装することは不可能です。 – mubuss

+0

@PaulJabinesこれはシミュレーションループ内にあります。そして最後の2つは '+ ='を持っていますが、これはmatlabの表記ではありませんが、元の作者はCやPythonを覚えておいてください。したがって、それは平等ではなく、追加です。これはインテグレータの動作をシミュレートするためのものです。したがって、任意の値で初期化することができます。 – percusse

+0

ああOKです。 FILTER_DSTATEは値で初期化されます。ほとんどその0、右? – mubuss

関連する問題