Transfer Functionブロ​ックのパラメータを時​変で与えるS-fun​ctionブロック ​端子幅または次元のエ​ラー 要素数が一致し​ない

4 views (last 30 days)
優佑 熊谷
優佑 熊谷 on 23 Jun 2022
Edited: COVAO on 5 Oct 2022
コマンドウィンドウに、sfcndemo_stvdtf と入力することで得られるデモを参考に、伝達関数の係数が時間変化するシミュレーションを行おうと考えています。
左側のn1~d3は、ワークスペースから値を入力しており、中身は一列目に時間、二列目にデータが入っています。
伝達関数の係数(n~d3)を変化させ、結果をシミュレーションしたいのですが、s function前のブロックの出力要素数が7、s functionの入力要素数が2401となり一致しません。入力の要素数の2401は、n1~d3の中の全てのデータの合計数になってしまっているようです。
原因がわかりましたら教えていただきたいです。

Accepted Answer

COVAO
COVAO on 5 Oct 2022
Edited: COVAO on 5 Oct 2022
sfcndemo_stvdtfにあるS-functionで、伝達関数の係数に時系列パラメータを設定しているためと推測されます。
このS-functionでは、伝達関数の係数の時系列パラメータではなく、初期値を設定します。
以下に関連する情報があります。
  • 'sdvctf.c'のプログラム構造上、1ステップ前の係数で求めた状態空間行列が計算に使われることで応答に1ステップ分の遅れが生じます。
  • MATLAB 7.0(R14)以降のバージョンでは、Additional Math & Discrete-> Additional Discrete->Transfer Fcn Direct Form II Time Varyingで係数が時変である離散時間伝達関数を作成できます。

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!