モデルチェック用の関数「sldiagnostics」を実行した際のエラー,「cell から double に変換できません。」の原因について
39 次查看(过去 30 天)
显示 更早的评论
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 个评论
stozaki
2020-11-5
「 evalc( 'feval(mdl,[],[],[],''compile'');' ), ...」 ですが、このコマンドは対象モデルをコンパイル(ブロック線図の更新)を行っているものです。このコマンド自体がdouble型変換等を行っているわけではございません。
つまり、モデルをコンパイルした際にエラーとなり、停止した。と読み取れます。
何れにしても、モデルコンパイルエラーなので、その原因はモデルのコンフィギュレーション設定やブロック設定等、モデル側に何かしらの設定ミスマッチが発生しております。
診断エラーメッセージに詳細が出力されないのであれば、おそらくSimulinkとSimscapeの接続で信号属性のミスマッチ等が考えられます。
> こちらで持っている外部のプログラムとの干渉によりエラーが生じている
コメント頂いた、外部プログラムとは具体的にどの様なものでしょうか?
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 シミュレーションの設定 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!