S-Functionブロックのマスクパラメータ取得について
10 ビュー (過去 30 日間)
古いコメントを表示
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使用時、エラーが出てビルドできない)
モデルをビルドするケースでも使用できる方法はありますでしょうか。
0 件のコメント
回答 (1 件)
Akihiro Yasuda
2017 年 7 月 31 日
すでにご確認済みでしたら申し訳ありませんが、
S-Functionのデモモデルsfcndemo_stvctf.slxでは、
ssGetSFcnParam 1つに対し、複数の値を入力していますが、こちらの方は如何でしょうか?
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!