ACG(Automatic Code Generation)
ACG とは
ACG(Automatic Code Generation)とは、「自動コード生成」を指し、設計したコントローラモデルをECU上で実行できるC/C++等のコードへ自動変換する仕組みです。手書き実装(ハンドコーディング)を最小化することで、人手による記述ミスを減らし、モデルで設計したアルゴリズムを意図通りにコードへ反映できます。結果として、試作~検証サイクルの高速化、実装の一貫性・再現性の向上、トレーサビリティ確保(モデル⇄コードの対応関係の明確化)に役立ちます。RCPやHILと組み合わせることで、モデル設計→コード生成→実機/疑似実機検証までを短期間で回す開発プロセスを実現します。
ACGが必要とされる背景
従来、制御アルゴリズムを実機に実装する際には、設計者が要求仕様書(モデルを利用して制御アルゴリズムを検討した場合は、制御モデル)を基に手作業でC言語やアセンブリコードを書き起こす必要がありました。
しかし、この方法には以下の課題がありました。
- 人手によるコーディング(変換)のため ヒューマンエラーの可能性が排除できない
- コードの品質や書き方が 担当者に依存する
- モデルとコードが乖離し、トレーサビリティが失われる
- 手戻りが発生した際に 修正コストが大きい
これらの問題を解決する手段として、モデルを直接コードに変換するACGが登場しました。
ACGの仕組み
1. モデル作成:Simulinkなどのツールで制御アルゴリズムをブロック図で設計
2. コード生成:専用のコードジェネレータ(例:Simulink Coder, TargetLink)を用いてC/C++コードに自動変換
3. ターゲット適合化:生成コードをECUやリアルタイムシステム向けにコンパイル・ビルド
4. 実行・検証:生成コードを実機やシミュレータに実装して評価
なぜ ACG が必要なのか?
・開発効率の向上
モデル変更をそのままコードに反映できるため、設計→実装→検証のサイクルが短縮されます。
・品質・信頼性の向上
手書きコードに比べてヒューマンエラーを削減し、標準化されたコードを自動生成できます。
・トレーサビリティの確保
モデルの各要素と生成コードが対応しているため、検証や安全規格(ISO 26262など)の適合が容易になります。
事例/活用例

モデルベース開発(MBD)プロセス構築支援ソリューションのご紹介
MBD導入では手順不明やノウハウ不足が課題となります。サイバネットは40年の実績と研究経験を活かし、要件定義、制御・プラントモデル構築、RCP/HILS検証、テスト実行まで、MATLAB/Simulinkをベースにしたモデルベース開発を支援します。

モデルベース開発におけるSILSの適用と環境構築手法 ~MATLAB/Simulinkで構築するSILS検証環境~
本資料では、組み込みソフトウェア開発におけるSILS(Software In the Loop Simulation)環境構築についてMATLAB/Simulink にて使用可能な手法や、シミュレーション実行速度の高速化事例をご紹介いたします。

制御開発におけるRCP/HILS検証環境の構築と事例紹介
本資料は、制御アルゴリズム試作・最適化を行うRCP、制御システムの動作検証を行うHILSに着目し、それぞれの検証環境構築のソリューションや事例を紹介します。
