モデルチェック用の関数「sldiagnostics」を実行した際のエラー,「cell から double に変換できません。」の原因について
37 views (last 30 days)
Show older comments
Simscapeで作成したモデルのチェックのために,sldiagnostics関数を実行すると,タイトルの通り「cell から double に変換できません。」というエラーが出ますがその解決策がわかりません.(エラーメッセージは本文一番下に記載)
現状わかっていること
- 外部のプログラムの干渉によりエラーは生じており,外部プログラムを実行しない場合はこのエラーは生じない
- Simscapeモデル(Simscape ElectricもSimscape Fluid)を実行する場合にエラーを生じるが,Simlinkだけのモデルであればエラーは生じない
上記のことから,Simscapeで用いられる何かしらの変数や関数と外部プログラムが干渉していることが原因ではないかと考えていますが,
どの関数/変数がバッティングしているのかまではわからず解決することができません.
エラーの原因の箇所を見ると,loc_sldiagnosticsの543行目(下記の太字部)であるとのことです.
---------------------------------------------------------------
statsTxt = [ ...
evalc( 'feval(mdl,[],[],[],''compile'');' ), ...
evalc( 'feval(mdl,[],[],[],''term'');' ) ]; %#ok<NASGU>
---------------------------------------------------------------
「cellからdoubleに変換できません」というエラーメッセージですが,上記のエラー部のどこがcellからdoubleへの変換を必要としている部分でしょうか?
ご存知の方がいられましたら,ご教授よろしくお願いいたします。
*****エラーメッセージ*****
エラー: sldiagnostics>loc_sldiagnostics (line 572)
sldiagnostics が compilestats を収集できませんでした
エラー: sldiagnostics (line 90)
[textout, report] = loc_sldiagnostics(sys, nargout, varargin{:});
エラー: check_simulink_model (line 2)
sldiagnostics(sys, 'CompileStats')
原因:
エラー: sldiagnostics>loc_sldiagnostics (line 543)
cell から double に変換できません。
******************
実行環境: MATLAB 2019b
9 Comments
stozaki
on 5 Nov 2020
「 evalc( 'feval(mdl,[],[],[],''compile'');' ), ...」 ですが、このコマンドは対象モデルをコンパイル(ブロック線図の更新)を行っているものです。このコマンド自体がdouble型変換等を行っているわけではございません。
つまり、モデルをコンパイルした際にエラーとなり、停止した。と読み取れます。
何れにしても、モデルコンパイルエラーなので、その原因はモデルのコンフィギュレーション設定やブロック設定等、モデル側に何かしらの設定ミスマッチが発生しております。
診断エラーメッセージに詳細が出力されないのであれば、おそらくSimulinkとSimscapeの接続で信号属性のミスマッチ等が考えられます。
> こちらで持っている外部のプログラムとの干渉によりエラーが生じている
コメント頂いた、外部プログラムとは具体的にどの様なものでしょうか?
Answers (0)
See Also
Categories
Find more on シミュレーションの設定 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!