S-Function​ブロックのマスクパラ​メータ取得について

10 次查看(过去 30 天)
Toshitaka Koga
Toshitaka Koga 2017-7-28
S-Functionブロックのマスクパラメータに、数式が入力されているときに、 S-FunctionブロックのCソース上で、当該パラメータを、数式の演算結果の値として取得する方法について質問があります。 マスクパラメータが1つの数式(例:1.0/5.0)の場合、下記コードにて取得できることは確認できました。 例: mxGetPr(ssGetSFcnParam(S,1)) ※数式が 1.0/5.0 であれば 0.2 が取得されます。
これを応用して、S-Functionブロックの1つのマスクパラメータに 例:1.0/5.0;4.0/5.0;7.0/5.0 のように、 複数の数式が入力されている場合、それぞれを別々に演算結果の値として取得する方法はありますでしょうか。 (※それぞれを別々のマスクパラメータとして設定する---という方法は除外させてください)
ssGetSFcnParam(S,1) でマスクパラメータ全体(例:1.0/5.0;4.0/5.0;7.0/5.0)を取得した後、 「;」で分割、 mexEvalString で演算し、ワークスペースより演算結果を取得する----という方法は思いつくのですが、 当該環境はモデルをビルドして使用したいため、ワークスペースを活用する方法は採用できません。 (※mexEvalString使用時、エラーが出てビルドできない)
モデルをビルドするケースでも使用できる方法はありますでしょうか。

回答(1 个)

Akihiro Yasuda
Akihiro Yasuda 2017-7-31
すでにご確認済みでしたら申し訳ありませんが、
S-Functionのデモモデルsfcndemo_stvctf.slxでは、
ssGetSFcnParam 1つに対し、複数の値を入力していますが、こちらの方は如何でしょうか?

Community Treasure Hunt

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

Start Hunting!