このコースでは、これからMBDを学んでいきたいという人から、すでにモデルを描いている人まで幅広いコンテンツを用意しています。
以下では、コンテンツの先頭部分を少しお見せします。リンク先は有料コースです。一部のコンテンツは体験版として公開しており、無料会員登録で
コンテンツ名 | 内容 |
---|---|
MBD の意義・効能 |
本コンテンツにおけるMBD本コンテンツ(MBD学習)ではMBD(※)の中でも特にMathWorks社のMATLAB/SimulinkというMBDツールを用いた組込みソフトウェアの開発をMBDとして取り扱い、学習していきます。
MBDの意義・効能ソフトウェアの「開発規模の増加」と「開発ライフサイクルの短縮」を背景として、昨今の組込みソフトウェアの開発(特に自動車制御用ソフトウェアの開発)においてMBDが広く用いられています。 MBDでは以下のようなSimulinkモデルによる可読性の高い表現とシミュレーションを用いた検証によって短い期間で多くの機能の開発を実現しています。 <続きを見る> |
コンテンツ名 | 内容 | ||||||
---|---|---|---|---|---|---|---|
開発プロセス (概要) |
MBDの開発手法MBDの活用範囲は幅広く、解決したい課題や開発対象(製品)の特性、開発スタイルなどによって、どの手法を導入するか見極める必要があります。
|
||||||
開発プロセス (ソフトウェア詳細設計) |
これらのうち、MBD導入により大きく変わるのは、「ソフトウェア詳細設計書」となります。 これに対し、MBD導入時はこの成果物がSimulinkモデルに置き換わります。
<続きを見る> |
||||||
開発プロセス (実装) |
自動コード生成の課題もちろん、MBDを導入=実装コストゼロ、という単純な話ではなく、いくつか乗り越えるべき課題があります。 コード生成環境の構築コストコード生成ツールを使えば、どのようなモデルでも期待通りのソースコードが生成されるわけではありません。 |
||||||
開発プロセス (テスト) |
MBDを導入すると、開発プロセスのテスト(検証)の構成が変わります。 動的テスト概括的には、従来は実装(ソースコード作成)後に実施していた検証の大部分を、ソフトウエア詳細設計(モデル作成)時に前倒しで実施するようになります。 |
||||||
ツールチェーン |
システム・エンジニアリング・プロセスSYP1 システム要求定義要件定義およびモデルとのトレーサビリティ確保[S/W] Simulink Requirements(MathWorks社)モデルの要素(ブロックなど)と要件を関連付ける。※要件に限らず、設計やコード、テストなども対象。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
プログラマーがモデラーになるために |
Simulinkモデルはデータフロー図です。 制御工学などを学び、ブロック線図の読み書きに慣れている人は、あまり違和感なくSimulinkモデルを読み書きできるでしょう。 一方、C言語のように多くのプログラミング言語は、データフローではなくコントロールフロー(処理の流れ)を記述します。 このため、プログラマーがモデラーに転向(ジョブチェンジ)する際は、モデルがデータフロー図であることに最初は戸惑うかもしれません。
本コンテンツの狙い と 扱う題材本コンテンツでは、プログラミング経験のある人が、円滑にモデラーとなれるように
C言語プログラムではC言語をはじめ、多くのプログラミング言語は手続き型であり、制御構文(順次、分岐、反復)の組み合わせで実装していきます。 この結果、プログラム(コード)には「処理の流れ」が記述されます。 フローチャートは、処理をアクティビティで、制御構文をシーケンスフローで可視化したものと言えます。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
Simulink クイックツアー | <続きを見る> |
コンテンツ名 | 内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
基本的なブロック (概要) |
本コンテンツでは、Simulink モデル、特に制御系のコントローラ向けの Simulink モデルの開発初級者が最初に押さえておくべき Simulink ブロックを紹介します。 本篇では、Simulink が提供するブロックの概要について述べ、以降で紹介する Simulink ブロックを列挙します。
Simulink が提供するブロックSimulink では、プログラムをブロック線図モデルとして構築します。 Simulink は優に 200 を超えるブロックを標準で提供しています。 そのような豊富なブロックの中から自身の用途に合致したブロックを見つけ出すのは大変と思われるかも知れませんが、実際にはコントローラ(制御器)用のモデル、それもオートコードを前提としたモデルを作成する際に使用されるブロックの種類はさほど多くはありません。 本コンテンツでは、コントローラ用のモデルを作成する、あるいは読む上で、最低限知っておくべきブロックを紹介します。 <続きを見る> |
||||||||
基本的なブロック (1) |
本篇では、モデルの構造およびデータ(信号)の生成・保持に関連する下記ブロックについて説明します。 ・Subsystem
SubsystemSubsystem は複数のブロックをグルーピングして1つの機能単位を作るためのブロックです。 モデルは通常多数のブロックで構成されるため、それらのブロック群を機能的なまとまりに分割するのに Subsystem は使用されます。
Subsystem を作成する際に留意すべき事項としては、"名前"が挙げられます。 |
||||||||
基本的なブロック (2) |
本篇では、モデルのデータ(信号)に対する演算、例えば算術演算、論理演算、関係(比較)演算に関連する下記ブロックについて説明します。 ・Add
AddAdd は入力信号を加算あるいは減算するブロックです。
上表のアイコンに示した通り、Simulink のブロックライブラリには Add 以外に Subtract や Sum というブロックも存在しますが、実際には全て同じ種類のブロックです(どれもブロック種別は Sum になります)。 ブロックパラメータの「アイコン形状」を"四角形"に設定すると Add や Subtract の見た目に、また"円形"に設定すると Sum の見た目になります。 |
||||||||
基本的なブロック (3) |
本篇では、Lookup Table(ルックアップテーブル)を紹介します。 Lookup Table(n-D)Lookup Table は、入力値に対応する出力値を、予め定義しておいた「表」に基づいて演算するブロックです。 1つの入力に対応して1つの出力を返すものを 1-D の Lookup Table、2つの入力に対応して 1 つの出力を返すものを 2-D の Lookup Table と呼びます。
1-D Lookup Table1-D の Lookup Table の使用方法を説明します。 |
||||||||
信号の種類と使用方法 |
本コンテンツでは、Simulink モデル内を流れるデータ=信号、特に複数の信号で合成されるベクトル信号とバス信号について説明します。
信号の種類Simulink モデルでは、配線されたブロック間を流れるデータのことを信号と呼びます。
|
||||||||
【未】コメント・注釈の設定方法 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】発展的なブロック | <続きを見る> |
【未】列挙型導入のすすめ | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
Simulink の可視化機能 (基本) |
シミュレーションデータを可視化するにはどのような方法があるか、またそれらをどのように使い分けると良いかについて説明します。
可視化方法の種類と特徴開発した制御ロジックが自分の意図通りに動作しているかを視覚的に確認できる、つまりシミュレーション結果の可視化機能は、Simulink の重要な機能の一つです。
|
Simulink の可視化機能 (使用方法) |
Simulink はバージョンを重ねるごとに、機能面でも UI 面でも様々な改善が図られています。 そういった事情を踏まえ、本コンテンツでは、各可視化機能のバージョン毎の操作方法の差異について紹介します。
Scope ブロック特にバージョン間での差異はありません。
Display ブロック特にバージョン間での差異はありません。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】デバッガの使い方 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】プロファイラの使い方 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
Stateflow と Simulink の使い分け |
Stateflow の主要機能Stateflow は非常に豊富な機能を持つツールですが、その主要機能は以下の2つになります。
ステートチャートの作成とシミュレーション"モード"あるいは"状態"に応じて処理を切り替えたい、例えば出力する値の算出方法を切り替えたい場合に、
といった内容をステートチャート(状態遷移図)として記述できます。また、そのシミュレーションが可能です。 開始ボタンと停止ボタンしかもたない単純なストップウォッチを例としたステートチャートの実装例を以下に示します。 <続きを見る> |
コンテンツ名 | 内容 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
00. はじめに |
ここからは、いくつかのコンテンツに渡って、チュートリアル形式で Stateflow チャートの作成方法やデバッグの方法について説明していきます。 構成本チュートリアルの構成を以下に示します。
|
||||||||||
01. 作成するモデル |
本コンテンツでは、チュートリアルを通じて作成していくモデルとその「お題」について説明します。 お題下記のような機能を持った「扇風機」を題材とします。 |
||||||||||
02. 準備 |
モデル作成・編集用の画面 (エディタ)以降では、Simulink エディタや Stateflow エディタを使用して、モデルを作成していきます。
Simulink エディタSimulink モデルを作成するための画面です。 |
||||||||||
03. チャートの作成 |
Stateflow モデルは Chart ブロックの中で作成していきます。
チャートの新規追加Chart ブロックを 先に作成したSimulinkモデル上に新しく追加します。 [例] Chartブロック「FanConteroller」を追加する
|
||||||||||
04. 使用するデータの定義 |
本コンテンツでは、以下の定義方法について説明します。
入力データの新規追加Simulink モデルから Stateflow チャートに入力されるデータ(信号や定数)を定義します。 |
||||||||||
05. ステートの定義 |
本コンテンツでは、状態を表現するステートの定義方法について説明します。
ステートの新規追加Stateflow チャート内に新しいステートを追加します。 [例] 「PowerOff」ステートを定義する
|
||||||||||
06. 遷移の定義 |
本コンテンツでは、ステートの変化・移り変わりを表現する遷移の定義方法について説明します。
デフォルト遷移デフォルト遷移は最初に遷移する状態を示します。 [例] Chart が最初にアクティブになったとき、PowerOffステートに遷移させる
|
||||||||||
07. アクションの定義 |
ステートアクションの定義ステートアクションには以下の種類が存在します。
(※)実際には、on イベントアクションや bind アクションなども存在しますが、本チュートリアルでは扱いません。 ここでは、entry アクションと during アクションの定義方法について説明します。 |
||||||||||
08. その他の定義や設定 |
本コンテンツでは、ここまでは扱わなかった以下の3つの内容について説明します。
ヒストリジャンクションの使用方法今回の扇風機には、以下のような仕様が含まれています。
上記のような仕様を実現するために、ヒストリジャンクション(履歴ジャンクション)という機構が用意されています。 あるスーパーステート(サブステートをもつステート)にヒストリジャンクションを配置すると、そのスーパーステートを退状して別のステートに移る際、直前にどのサブステートにいたかが記憶されます。そして、再度そのスーパーステートに遷移してきたときに、記憶していた直前のサブステートに遷移させることができます。 <続きを見る> |
||||||||||
09. チャートのデバッグ |
本コンテンツでは、Stateflow チャートをデバッグする方法について説明します。
入力信号の生成シミュレーションを実行するには、入力信号を生成する必要がありますが、その方法は通常の Simulink モデルをシミュレーションするときと変わりません。 以下では、既にシミュレーションの実行に必要な入力信号は生成できていると仮定します。
シミュレーションの実行シミュレーションを開始するには、Stateflow エディタのメニュー[シミュレーション]-[実行]を選択します。 |
||||||||||
10. 終わりに |
本チュートリアルでは、扇風機のコントローラモデルの作成を通じて、Stateflow チャートの作成方法やデバッグの方法について解説しました。 本チュートリアルでは、Stateflow が提供する機能のうち、特にステートマシン(状態遷移図)の作成機能にフォーカスしましたが、Stateflow にはそれ以外にもフローチャートの作成機能や真理値表の作成機能など、非常に豊富な機能が備わっています。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】条件分岐の定義 | <続きを見る> |
【未】アクションの定義 | <続きを見る> |
コンテンツ名 | 内容 | ||||||
---|---|---|---|---|---|---|---|
設計データの管理方法 |
さらに以下の情報が含まれることも想定して記載しています。 <続きを見る> |
||||||
データディクショナリを用いない設計データ管理 |
パラメーターはスクリプトに直接定義し実行することで、ベースワークスペースにMATLAB変数として格納します。
|
||||||
データディクショナリを用いた設計データ管理 |
専用機能だけあって、とてもシンプルな構成で設計データの管理を実現できますが、以下のような課題があります。
また、成果物として別途Excelファイルが必要なことも多いため、以下のような運用も現実的な選択肢となります。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】モデルの初期化および終了用の設定 | <続きを見る> |
【未】シミュレーション実行用の設定 | <続きを見る> |
【未】設計ミス防止用の設定 | <続きを見る> |
【未】モデル可読性向上のための表示設定 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】サブシステム化の方法 | <続きを見る> |
【未】信号のバス化 | <続きを見る> |
コンテンツ名 | 内容 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Simulink ライブラリの作成・使用方法 |
ライブラリの作成方法ライブラリを作成するには、以下の手順を踏む必要があります。 ・ 再利用したいブロックをライブラリファイルに配置する ライブラリ作成の具体的な方法と、その過程での注意事項について見ていきます。 なお、本コンテンツの内容は R2018b で動作確認しています。
1. ライブラリファイルを作成するライブラリブロックを格納するためのライブラリファイルを作成します。
|
|||||||||
Stateflowライブラリの作成方法 |
Chartに定義した関数はエクスポートすることでモデル全体の共通関数として利用可能になります。 また、複数モデルで関数を共有したい場合は、Chartブロックをライブラリブロックとして作成し、モデルにリンクさせる(モデル上に配置する)ことで実現できます。 ここでは、ライブラリブロックとして作成したChartブロック内の関数を再利用する手順を解説します。
制約エクスポートするには、引数・戻り値のデータ型や次元などを明確に定義しなければなりません。
作成手順関数のエクスポート関数を定義したChartブロックのプロパティで、「チャートレベルの関数をエクスポート」をチェックします。 使われ方に応じて、「エクスポートされた関数をグローバルに可視として扱う」もチェックします。
<続きを見る> |
|||||||||
マスクの設定・使用方法 |
本コンテンツではブロックにマスクを設定する方法について説明します。また、マスクの便利な使い方についても紹介します。
マスクとはマスクはブロックの中身・詳細を隠蔽するための仕組みです。 例えば、ライブラリブロックは、利用者にロジックの詳細を晒すことなく(意識させることなく)、必要なパラメータだけ設定すれば動作するブロックとして提供するのが基本ですが、マスクを使用することでそういったことが実現できます。 具体的にはブロックにマスクを設定することで、以下のようなことが可能になります。
マスクの設定方法下記のようなライブラリブロックを作成する例を通じて、マスクの設定方法を見ていきます。 |
コンテンツ名 | 内容 |
---|---|
【未】モデルリファレンスの作成方法 | <続きを見る> |
【未】モデルリファレンスの参照方法 | <続きを見る> |
【未】サブシステムリファレンスの作成方法 | <続きを見る> |
【未】サブシステムリファレンスの参照方法 | <続きを見る> |
コンテンツ名 | 内容 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
可変性の実現(概要) |
本コンテンツでは、Simulink モデルで可変性を実現する方法について説明します。
「可変性の実現」とは聞き慣れない言葉かも知れませんが、要は「複数の選択肢を切り替える必要があるときに、どのような仕組みで切り替えるか」ということです。
|
|||||||||
可変性の実現(1) |
本コンテンツでは、以下による可変性の実現方法について説明します。
Switch または Multiport Switch を用いた可変性の実現Switch ブロックあるいは Multiport Switch ブロックでは、切替の条件を表す値を制御ポートに指定して選択肢の切替を行います。 Switch ブロックや Multiport Switch ブロックの使用方法については改めて説明する必要はないでしょう。 |
|||||||||
可変性の実現(2) |
Variant Subsystem の利用手順Variant Subsystem ブロックを用いると、「インタフェース」は共通だが「中身(実装)」が異なるモジュール(選択肢)を複数定義し、条件に応じて使用するモジュールを切り替えることができます。
1. 可変点の設計本ケースでは、2つの入力信号に対して行う「演算」として"加算"と"減算"という選択肢が存在します。 |
コンテンツ名 | 内容 | ||||
---|---|---|---|---|---|
処理の共通化手段 |
モデルの規模がある程度大きくなると、同じ (または似ている) 処理が複数個所で必要になることがあります。
C言語プログラミングにおける処理の共通化手段は、基本的に関数となります。(関数形式マクロを使った共通化も可能) これに対し、モデルでは様々な共通化手段が用意されています。 本コンテンツでは、処理の共通化手段と、それらの手段を選択する際の観点を紹介します。 <続きを見る> |
||||
ベクトルを用いた処理の共通化 |
共通化の基本モデルの同一階層において、同じ処理が複数箇所で登場する場合は、信号をベクトル化することで処理を共通化することができます。
適用例ベクトルは同一階層であれば、処理の規模が大きくても問題なく、また他の共通化手段との併用もできるなど、柔軟に用いることができます。 |
||||
Simulink関数を用いた処理の共通化 |
Simulink関数の定義・利用Simulink関数は、様々な手段で定義・利用(呼び出し)することができます。
|
||||
モデル参照を用いた処理の共通化 |
本コンテンツでは、モデル参照を用いた処理の共通化について紹介します。 大きなモデルを複数人で並行開発する際、モデルファイルを分割するために、モデル参照を利用していることは多いと思います。
振る舞いのカスタマイズモデル参照は、「モデル引数」という仕組みを使って、利用箇所ごとにモデルで使用するパラメータの値を切り替えることができます。
通常、モデル内で利用するパラメータは、ベースワークスペースやデータディクショナリに定義されたパラメータの値を利用します。 モデル参照の場合、参照箇所ごとに「モデルワークスペース」が確保されており、同ワークスペースのパラメータを優先的に利用させることができます。 <続きを見る> |
コンテンツ名 | 内容 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Simulinkモデル改善パターン |
本コンテンツでは、Simulink モデルの「保守性」を向上させる方法を紹介します。 保守性とはソフトウェア品質特性について定めた JIS X 0129-1では、保守性を「修正のしやすさに関するソフトウェア製品の能力」と定義しています。
本コンテンツでは、上記のうち、主に解析性・変更性・試験性を向上する方法を紹介します。 また、本コンテンツでは、解析性・変更性・試験性の中でも、特に試験性=テスト容易性=テストのしやすさを重視しています。 |
コンテンツ名 | 内容 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MILS/SILS/HILS の使い分け |
XILSMILSやHILSなどの in the Loop Simulation はXILSと総称されます。in the Loop Simulation とは検証対象となる電子制御コントローラに接続される外部環境を仮想的に作成し、外部環境に動作指令や動作条件を与え、そのフィードバックをコントローラに与えることにより、コントローラと仮想的な外部環境とでループを形成し、コントローラの振る舞いをシミュレーションを用いて評価することを指します。 XILSの種類XILSにはコントローラや外部環境(プラントモデル)が割り当てられる範囲は開発フェーズや環境によっていくつかのシミュレーションモードが存在し、シミュレーションモードによってコントローラ及び外部環境は完全・あるいは部分的に疑似的な要素で構成されます。
|
||||||||||||||||||||||
モデルの検証の種類 |
シミュレーション検証とプロパティ検証モデルの検証は主に「シミュレーション検証」と「プロパティ検証」の2種類に分類されます。 シミュレーション検証モデルの検証として最も多く用いられている検証がこのシミュレーション検証です。 シミュレーション検証ではSimulinkモデルにおいてシミュレーションを実行し、その振る舞いから詳細仕様との一致性や要求に対する妥当性を検証します。 |
コンテンツ名 | 内容 |
---|---|
単体検証で利用可能な機能 |
コンテンツの概要ここからは Simulink モデルのサブシステムを対象としたシミュレーションによる検証(サブシステム単体検証)について学習していきます。 本コンテンツではサブシステム単体検証環境の概要と、検証環境構築の際に利用できる方法
サブシステム単体検証の概要サブシステム単体検証では入力パターンと期待値を定義したテストベクタを作成し、テストベクタに定義されている入力パターンを検証対象のサブシステムへ入力し、得られた出力を期待値と比較した上で合否判定を行うために以下のような検証実施環境が必要となります。 詳細は次の項目「テストベクタの定義」に記載していますが、テストベクタには入力パターンや期待値の他にも想定する状況を表現するテストシナリオや、他の成果物とのトレーサビリティに関する情報などを記載するため比較的記述の自由度が高い形式のファイルで保管することが望ましいです。 今後は上図のように検証実施環境の外部で定義されたテストベクタを使用して検証を実施していくことを想定した解説を行います。 <続きを見る> |
テストベクタの定義 |
コンテンツの概要本コンテンツでは Simulink でモデルを作成した際に、サブシステムを対象として実施される単体テスト(サブシステム単体シミュレーション)を題材にテストベクタの定義の方法を学習します。
テストベクタに記載すべき情報単体テストの実施に利用するテストベクタには入力値/期待値を含め、それら以外にもいくつか記載しておきたい情報があります。本項目ではそれらの記載しておきたい情報とその理由を解説します。 1. テスト対象テスト対象となるサブシステムを特定するための情報です。対象のサブシステムが実装されているモデルとサブシステムを特定するためのモデル内パスを把握できる記述が必要です。 <続きを見る> |
テストの実行と結果確認方法 |
コンテンツの概要本コンテンツではサブシステム単体検証環境の構築と検証の実施方法を解説します。
構築する検証環境の概要今回は「単体検証で利用可能な機能」で紹介したうち、以下のブロックを利用した検証環境の構築を実施していきます。
概念としては以下のようにテストベクタに記述されている入力信号値を検証対象のサブシステムに入力し、サブシステムから出力から出力された信号値とテストベクタに記述されている期待値とを比較し、一致性を判定する検証用モデルを作成します。 このような役割を実行するモデルを作成する際にはテストベクタに記述されている入力信号値と期待値を出力するブロックは1か所にまとめられるので実際のモデル構成は以下のようになります。 <続きを見る> |
コンテンツ名 | 内容 |
---|---|
カバレッジの基礎 |
本コンテンツでは、テストが十分に行えているかを判断するための指標として用いられる「カバレッジ」について説明します。 別のコンテンツで Simulink モデルのカバレッジ計測方法について説明しますが、そこに登場する用語や概念を理解しておくことが本コンテンツの狙いです。
カバレッジとはカバレッジ(網羅率)とは、プログラムに対するテストを行ったときに、そのテストがプログラム(テスト対象)が辿り得る経路(パス)のうち、どれだけの経路を実行したかを示す割合のことです。
カバレッジの種類カバレッジには代表的な「網羅条件」が存在し、テストがその網羅条件をどれだけ満たしているかによって測定されます。 |
Simulinkモデルのカバレッジ測定方法 |
カバレッジ測定ツールとして Simulink Verification and Validation (SLVV) を使用し、測定の手順や測定結果の見方などについて説明します。
モデルカバレッジとはSimulink では、プログラムをブロック線図モデルとして構築します。 モデルカバレッジを測定できるツールはいくつか存在しますが、ここでは Simulink Verification and Validation (以降、SLVV と表記) を利用します。 |
Stateflowモデルのカバレッジ測定方法 |
Stateflow モデルに対するカバレッジ計測早速 SLVV で Stateflow モデルのカバレッジを計測してみましょう。 モデルおよびテストデータの準備以下のようなモデルおよびテストデータを使用します。 また、シミュレーションのオプションは以下のように設定します。 <続きを見る> |
カバレッジの充足(テストの追加)方法 |
概要本コンテンツでは SLDV (Simulink Design Verifier) を用いたカバレッジ (網羅率) の充足方法について解説します。
SLDV (Simulink Design Verifier) を用いたカバレッジ充足のためのテスト生成SLDV では既存のテストをベースとして、既存のテストでは網羅できないパス・判定を網羅できるようなテスト入力を生成することが出来ます。 以下のテストハーネスとテストベクタを既存のテストのサンプルとして、そのカバレッジの充足方法を解説します。 |
コンテンツ名 | 内容 |
---|---|
【未】命題モデルの作成 | <続きを見る> |
【未】プロパティ検証の実行と反例確認 | <続きを見る> |
コンテンツ名 | 内容 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
HILS とは |
本コンテンツの狙い本コンテンツでは主に車載制御用コントローラを対象としたHILSに関する以下の概要を知ることを目的としています。
HILSとはHILS(Hardware in the Loop Simulation)とは検証対象となるコントローラは実機、コントローラに接続される環境は疑似である環境下で実施するシミュレーションのことを指します。
|
コンテンツ名 | 内容 |
---|---|
【未】ライブラリに置換 | <続きを見る> |
【未】ベクトル化、バス化 | <続きを見る> |
【未】サブシステム化、サブシステム展開 | <続きを見る> |
【未】領域・注釈の活用 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】シミュレーションによる一致性確認 | <続きを見る> |
【未】プロパティ検証による一致性確認 | <続きを見る> |
コンテンツ名 | 内容 | ||||
---|---|---|---|---|---|
何はともあれコード生成 |
本コンテンツでは、Simulinkモデルから組込み用Cコードを生成する手順を紹介します。
動作確認環境本文書の記載内容は、以下の環境で確認しています。
必要なツールボックス本コンテンツの記載内容を試すには、以下のツールボックスが必要となります。
何はともあれコード生成
単純な足し算モデルを作るMATLABを起動し、以下のようなSimulinkモデルを新規作成します。 |
コンテンツ名 | 内容 |
---|---|
【未】コード生成範囲、結合方法の検討 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】インターフェース(シグネチャ)定義 | <続きを見る> |
【未】スタイルの変更 | <続きを見る> |
【未】ファイルや関数への分割 | <続きを見る> |
【未】プリプロセス | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】変数の宣言、定義、初期化 | <続きを見る> |
【未】パラメータの宣言、定義、インライン化 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】MATLAB プロジェクト(旧Simulinkプロジェクト)の紹介 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】モデル履歴の活用方法 | <続きを見る> |
【未】モデルの差分検出、マージ | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】SVN 連携(組込み、外部ツール利用) | <続きを見る> |
【未】Git 連携(組込み、外部ツール利用) | <続きを見る> |
【未】[オマケ] SVN サーバ構築方法 | <続きを見る> |
【未】[オマケ] Git サーバ構築方法 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】CI ツール連携で出来ること | <続きを見る> |
【未】[オマケ] Jenkinsサーバ構築方法 | <続きを見る> |
【未】[Jenkins] MATLAB連携ジョブの作成方法 | <続きを見る> |
コンテンツ名 | 内容 |
---|---|
【未】モデル構成要素 | <続きを見る> |
【未】要素の検索 | <続きを見る> |
【未】要素のプロパティ取得・設定 | <続きを見る> |