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

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

採用された回答

covao
covao 2022 年 10 月 5 日
編集済み: covao 2022 年 10 月 5 日
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で係数が時変である離散時間伝達関数を作成できます。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink Function についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!