To workspace ブロックでの間引き設定

4 vues (au cours des 30 derniers jours)
Hikari Shirakata
Hikari Shirakata le 21 Nov 2021
To workspace ブロックの間引きの設定を、以下のように dt_out/dt = 10000 に設定したいのですが、「パラメータ 'decimation' に対する 'To workspace' 内の設定が無効です。」とのエラーで設定できません。ヘルプを見ると、間引きに指定するパラメータは文字ベクトル型なので、整数型ではなく文字ベクトル型も試しましたが指定できません。なぜですか。
dt = 1e-6; % s
dt_out= 1e-2; % s,
mabiki = int16(dt_out/dt);
mabiki_str = num2str(mabiki);
  2 commentaires
Atsushi Ueno
Atsushi Ueno le 21 Nov 2021
Modifié(e) : Atsushi Ueno le 21 Nov 2021
どうやってもだめですね。回避策としてコマンドラインで設定できる事を確認したので、試してみては如何でしょうか?untitledは拡張子を除くモデル名、/以下はモデル内のTo Workspaceブロックに至るパスです。
set_param('untitled/To Workspace','Decimation','10000'); % または
set_param('untitled/To Workspace','Decimation',mabiki_str);
>ヘルプを見ると、間引きに指定するパラメータは文字ベクトル型なので、
そんな事書いてないぞ?と思いましたが、コンフィギュレーションパラメータに同じ名前の設定項目があり「コマンドライン情報:パラメーター: Decimation:型: 文字ベクトル」との記述がある事に気付きました。
本質問の原因を含め謎が多いので引き続き調べて、原因が分かったら回答として報告致します。
Atsushi Ueno
Atsushi Ueno le 21 Nov 2021
To Workspaceのパラメータ「間引き」の説明にも「型: 文字ベクトル」と書いてありました

Connectez-vous pour commenter.

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 21 Nov 2021
>ヘルプを見ると、間引きに指定するパラメータは文字ベクトル型なので、整数型ではなく文字ベクトル型も試しましたが指定できません。なぜですか。
今回は"mabiki"の型がint16型なので受け付けられませんでした。これをdouble型にすると動作しました。
dt = 1e-6; % s
dt_out= 1e-2; % s,
mabiki = dt_out/dt; % またはround(dt_out/dt);やdouble(int16(dt_out/dt));等の形
mabiki_str = num2str(mabiki);
「文字ベクトル型」は「プログラムでの使用」における型の事で、具体的には下記の様に設定します。
set_param('untitled/To Workspace','Decimation','10000'); % または
set_param('untitled/To Workspace','Decimation',mabiki_str);
  1 commentaire
Hikari Shirakata
Hikari Shirakata le 21 Nov 2021
ご回答ありがとうございました。整数しか取りえないパラメータなので int 型を指定するのだと勘違いしていましたが、double 型でいいのですね。また、文字ベクトルとして指定しなければならないのは、simulink モデル外部のプログラムから指定する場合のみであること、理解いたしました。

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!