•  

コラム

  1. TOP
  2. コラム
  3. コラム
  4. 第5回 MBD(モデルベース開発)Simulinkモデルを流れるデータ

第5回 MBD(モデルベース開発)Simulinkモデルを流れるデータ

MBD
  • LINEで送る
  • このエントリーをはてなブックマークに追加
第5回 MBD(モデルベース開発)Simulinkモデルを流れるデータ

第5回 MBD【モデルベース開発】解説 コラム

第5回 MBD(モデルベース開発)コラム、今回は、Simulinkモデル内を流れるデータについて紹介します。

この連載コラムでは、Simulink を使った MBD の基礎的な内容を数回に分けてわかりやすくお伝えします。



はじめに

Simulinkモデルでは、配線されたブロック間を流れるデータのことを信号と呼ぶ
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

Simulinkモデルでは、配線されたブロック間を流れるデータのことを信号と呼びます。

信号は3種類に大別できます。スカラー信号は、単一の値データです。ベクトル信号は、複数の値で構成される「配列」データです。どの値も同じ型になります。バス信号は、複数の値で構成される「構造体」データです。個々の値には名前が付与され、それぞれの型は異なっても構いません。

このコンテンツでは、ベクトル信号およびバス信号の生成・分解の方法、また、使い方のポイントなどを説明します。



ベクトル信号:生成、分解

ベクトル信号:生成:Muxブロック、分解:Demuxブロック
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

まず、配列に該当するベクトル信号から見ていきましょう。

ベクトル信号は、スカラー信号をMuxブロックで合成して生成できます。また、右のように、1行N列の行ベクトル、あるいはN行1列の列ベクトルが指定されたConstantブロックも、ベクトル信号を出力します。

逆に、ベクトル信号を分解して各要素を取り出すには、Demuxブロックを使用します。



ベクトル信号:要素の抽出

ベクトル信号:要素の抽出(Selectorブロック)
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

ベクトル信号から任意の位置の要素を取り出すには、Selectorブロックを使用します。取り出す位置(添え字)は、Selectorブロックのプロパティとして直接指定することができます。ただしその場合、ダイアグラム上では上のように表示されるため、要素数が増えると取り出す要素がわかりにくくなります。ダイアグラムの可読性を上げるには、下のようにSelectorの入力信号として与える方法もあります。



ベクトル信号:使いどころ

ベクトル信号:使いどころ(配列の単位で演算)
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

ベクトル信号はどのような場合に使うとよいのでしょうか。

たとえばC言語の場合、配列の要素の値を合計する、あるいは各要素の値を変換するといった場合には、forループを使うのが一般的です。

それに対してSimulinkでは、配列をベクトル信号としてそのまま入力に取り、演算できるブロックが多数用意されています。そのおかげで、forループを用いることなく、配列の単位で演算することが可能になります。

上の例では、Sumブロックにベクトルを入力して、各要素の値を集計しています。同様に下の例では、ProductブロックとSumブロックにベクトルを入力して、各要素の値を2倍して1を足すということを実現しています。

Simulinkのテクニックとして、「複数の値に同一の処理を適用したい場合はベクトル化する」と覚えておくとよいでしょう。



ご不明点・ご相談ごとがあれば
お気軽にご連絡ください

ソフトウエア開発オンライン学習Eureka Box

Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。

詳細はこちら
人材開発支援助成金


バス信号:生成、分解

バス信号:生成(Bus Creatorブロック)分解(Bus Selectorブロック)
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

次は、「構造体」データを表すバス信号です。

バス信号は、Bus Creatorブロックで生成し、Bus Selectorブロックで分解します。バス信号の要素となるBus Creatorへの入力信号には名前を設定し、その名前に基づいて信号の取り出しを行います。



バス信号:値の設定

バス信号:値の設定(Bus Assignmentブロック)
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

バス信号の一部の要素の値を書き換えるには、Bus Assignmentブロックを使用します。この例では、3つの信号のうちの2つの値を書き換えています。

バス信号は、関係の深いデータをまとめるために使うことができます。通常、Simulinkモデルには多数の信号が入力されます。それをバラバラのままで引き回すと、モデルが非常に煩雑になります。そのような場合に、意味的に関連の深い信号をバス信号にまとめ、その単位で引き回すことがよく行われます。



これからのMBD(モデルベース開発)に求められる技術を知るには

MBDの技術を実際に学んでみたいという方、まずは無料でお試しいただけるオンライン学習を準備しています。

業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。

エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
エンジニア独学、オンライン学習、ソフトウェア開発独学、エンジニア教材、無料コンテンツ、Eureka Box ユーリカボックス



無料会員登録だけでも以下の特典が受けられます。

Eureka Box会員登録特典(無料)
  1. 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
  2. USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
  3. ソフトウェア開発に関わる無料お試しコンテンツも充実


まとめ

MBDまとめ:Simulinkモデルで扱われる信号
※引用 Eureka Box(ユーリカボックス)Simulinkモデルを流れるデータ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2158661784

本コラムでは、Simulinkモデルで扱われる信号のうち、特にベクトル信号とバス信号を取り上げて、使い方や用途について説明しました。モデル中を流れる信号を配列や構造体として扱うと、ロジックを簡潔かつすっきりと記述することが可能になります。本コラムで紹介した使いどころなどを参考に、有効に活用していきましょう。



株式会社エクスモーション エグゼクティブコンサルタント 小浜 宗隆

執筆者プロフィール

株式会社エクスモーション エグゼクティブコンサルタント

小浜 宗隆

 

専門分野:

医療機器、自動車、MBD、USDM、解説書作成



診断・現場支援・人材育成をトータルで

コンサルティングサービスのご案内

システム・ソフトウェア開発の問題を解決するエクスモーションのコンサルティング。

エクスモーションのコンサルタントは、自動車業界・医療機器業界で多くの支援実績があります。開発現場の皆さまと一緒に手を動かし、状況に合った最適解を見つけることで問題解決に導きます。

MBD(モデルベース開発)のソリューションはこちらをご覧ください。

モデルベース開発(MBD)支援のコンサルティングなら


トップ企業をサポートしてきた技術と知見を1冊に「ソリューションガイドブック」

私達エクスモーションが行った、日本を代表する企業へのコンサルティングやトレーニングとは?
オンライン学習 Eureka Box誕生のベースとなった技術や知見が満載!
実際に支援を行ったお客様からのメッセージも掲載し、読み応えある1冊に仕上げています。

関連コラム

  • LINEで送る
  • このエントリーをはてなブックマークに追加

技術別コラム一覧

要求の定義と仕様化(USDM)

ROS

システムズエンジニアリング

クラウド技術
(AWS Greengrass)

Docker

モデルベース開発(MBD)

派生開発(XDDP)

SPL

用語集