MATLAB Answers

MATLAB/Sim​ulinkのオートコ​ードで差異が発生する​件について

9 views (last 30 days)
道生 早川
道生 早川 on 2 Apr 2021
現在、MATLAB 2019bを用いて、Simulinkモデルをオートコードしているのですが、
バージョンが同じでも、生成されるコード内の変数名称などの差異がみられます。
---------------------------------------------------------------------------------------
差異の一例:
a)グローバル変数の名称が異なる xxx_g → 変数xxx_b
b)static関数の名称が異なる zzz_b → zzz_m
c)構造体変数の名称が異なる xxx.is_zzz_i → xxx.is_zzz_n
d)cast処理が異なる
---------------------------------------------------------------------------------------
同バージョンであっても、自動コード生成したコードに差異が見られます。差異が発生する理由を教えていただけないでしょうか?
ツールの設定等で差異がでないようにコードを生成することは可能でしょうか?
また、上記以外に発生し得る差異を教えてください。もし、整理されたものがございましたら、ご提示いただけると助かります。
よろしくお願いします。

Answers (2)

Toshinobu Shintai
Toshinobu Shintai on 2 Apr 2021
モデリングの違いで生成されるコードの形が変わることはあります。
Embedded Coderを用いると、生成コードの関数、変数、データ型の宣言、定義などをある程度制御することができます。以下のリンク先を参照してください。

道生 早川
道生 早川 on 5 Apr 2021
Shintani様
お世話になっております。
追加のご質問となります。
Matlab CoderとSimulink Coderを用いた場合は、
「生成コードの関数名、変数名」はコードの差分が出てしまうのがTool Boxの仕様ということでしょうか?
※数KStepのソースで数百の差異がでています。
”「生成コードの関数名、変数名」に差異がでるのはMatlab CoderとSimulink Coderの仕様であり、同一のコードを生成するなどのコントロールはできない。ただし、自動コード生成されたコードの動作に差異はでない”ということでしょうか?
よろしくお願いします。
  1 Comment
Toshinobu Shintai
Toshinobu Shintai on 5 Apr 2021
おっしゃっている「コードの差分」ということが具体的にどの部分を指しているのか分かりませんので、明確には申し上げられませんが、モデリング次第で生成されるコードが異なることは、ツールボックスの仕様です。
一方で、モデルの実行結果に対する生成コードの実行結果は、必ず同一になるように生成されています。しかし、MathWorksの方でその結果を担保するものではありませんので、SIL検証などの機能を用いて一致性の確認をしていただくことを推奨します。

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!