「インデックスが配列​要素数を超えています​。」とエラーが出ます​。

224 vues (au cours des 30 derniers jours)
大輝
大輝 le 10 Mar 2023
Simscapeでプラントモデリングの接続を行なっていました。
solidworksからインポートしたアセンブリ同士を合体させたところ「インデックスが配列要素数を超えています。」とエラーが表示されました。
原因をご教授願います。
  1 commentaire
Norihiro Kobayashi
Norihiro Kobayashi le 13 Juin 2024
こんにちは、アセンブリを合体させて発生しているという背景から、SolidWorksから取り込まれた変数名が重複してしまい、いずれかの変数が小さい配列で上書きされたために、発生しているエラーではないかと想像しています。
SolidWorksから変数を取り込む際の変数の命名に関しては、smimportコマンドで一部設定が可能ですので、simimportで改めて取り込む方法で良ければ、対応は可能かもしれません。
smimport('xxx.xml','VariableName','custom_Var_name')
以上参考になりましたら

Connectez-vous pour commenter.

Réponses (1)

Hernia Baby
Hernia Baby le 12 Mar 2023
おそらく入出力の要素数(サイズ)があってません。
MATLABでのエラーでいうとこんな感じです。
a = zeros(1,10)
a = 1×10
0 0 0 0 0 0 0 0 0 0
size(a)
ans = 1×2
1 10
a(11)
Index exceeds the number of array elements. Index must not exceed 10.
サイズが10こまでなのに11番目なんかないぞ。
つまりインデックス(11)が要素数(10)を超えているぞって言ってます。
-----
デバッグ > 診断 > 情報のオーバーレイ > 信号 > 信号の次元
で次元数を表示してみてください。
もしくはDisplayブロックで確認するのもありです。
  2 commentaires
大輝
大輝 le 13 Mar 2023
ご回答ありがとうございます。
次元数を確認したところ合っていないところがありました。
solidworksからインポートしたアセンブリ同士を合体させた際に参照先が混ざってしまうようなのですが,解決方法ご存じでしょうか。
Rigid Transformの値「smiData.RigidTransform(22).translation」が合体させたいアセンブリの二つにあるような状態です。
Hernia Baby
Hernia Baby le 16 Mar 2023
信号がわかるのであればBus等で束ねたりするのはいかがでしょうか?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Applications dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!