主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

システムの定義とレイアウト

金宝app®モデルの最上位レイアウトは,多くのエンジニアチームが利用できる共通のコンテキストであり,モデルベースデザインパラダイムの多くのタスク(解析,設計,テスト,実装)のベースでもあります。構造と個々のコンポーネントを特定することにより,最上位のシステムを定義します。そして,コンポーネントに対応する階層構造によってモデルを整理します。次に,各コンポーネントのインターフェイスと,コンポーネント間の接続を定義します。

このチュートリアルで取り上げるモデルは,家庭用お掃除ロボットに似た,2つの車輪によって移動や回転が可能な平型ロボットです。このモデルは,ロボットが次の2つの方法のいずれかで動くものと仮定します。

  • 直線——両輪が同じ方向に向かって,同じ速度で回転し,ロボットは直線運動します。

  • 回転——各車輪が反対方向に向かって,同じ速度で回転し,ロボットはその場で回転運動します。

いずれの運動タイプも,休止状態から始まります。休止状態とは,回転および直線運動の速度が0である状態です。以上の仮定の下で,直線運動コンポーネントと回転運動コンポーネントを別々にモデル化します。

モデリング目標の決定

モデルを設計する前に,目的と要件を考慮します。目標によって,モデルの構造と,その詳細度が決まります。目標がロボットの速度を求めるだけなら,直線運動をモデル化するだけで事足ります。目標がデバイスが指定された経路をたどるのに必要な入力セットを設計することであれば,回転運動コンポーネントが必要です。目標が障害物を回避することであれば,システムにはセンサーが必要になります。このチュートリアルでは,経路上に障害物を検出するとロボットが停止するようなセンサーパラメーターを設計することを目標として,モデルを作成します。この目標を達成するには,モデルは以下のことを実現できなければなりません。

  • モーターが停止したとき,ロボットが停止する速度を特定する

  • ロボットが2次元空間を動き回れるよう,直線運動と回転運動のための一連のコマンドを提供する

1つ目のモデリング目標は,運動を解析して,センサーの設計を可能にします。2つ目の目標では,設計のテストを可能にします。

システムコンポーネントとインターフェイスの特定

モデル化の要件を理解したら,システムのコンポーネントの特定を開始できます。個々のコンポーネントを特定し,最上位構造内におけるコンポーネント間の関係性を把握することは,複雑になり得るモデルを体系的に作成するのに役立ちます。この手順は,モデルの作成を開始する前に,金宝app仿真软件外部で行っておきます。

このタスクには,以下の質問に答えることが含まれます。

  • システムの構造的コンポーネントおよび機能的コンポーネントは何か。レイアウトが物理的構造および機能的構造を反映していると,システムの理解,構築,通信,およびテストに役立ちます。このことは,設計プロセスのさまざまな段階でシステムの一部分を実装するときに重要になります。

  • 各コンポーネントの入力と出力は何か。コンポーネント間の接続を示す図を描画します。この図は,モデル内の信号フローの可視化,各信号のソースおよびシンクの特定,すべての必要なコンポーネントが存在しているかどうかの判定に役立ちます。

  • どのくらいの詳細度が必要か。図に主なシステムパラメーターを含めます。システムの図を作成すると,観察すべき動作に不可欠な部分を特定してモデル化するのに役立ちます。モデルには,モデル化の目標に関与する各コンポーネントおよびパラメーターの表現が存在しなければなりませんが,複雑度と可読性はトレードオフの関係にあります。モデル化は,反復的なプロセスになることがあります。詳細情報をあまり持たない上位のモデルから着手し,必要に応じて複雑度を徐々に上げていきます。

多くの場合,次のことを検討すると有益です。

  • システムのどの部分にテストが必要か。

  • テストデータと成功条件は何か。

  • 解析タスクと設計タスクに必要な出力はどれか。

ロボットの運動コンポーネントの特定

このチュートリアルのシステムでは,2つの電動車輪を使って2次元的に移動するロボットを定義します。以下が含まれます。

  • 直線運動の特性

  • 回転運動の特性

  • システムの位置を2次元的に特定するための変換

  • 障害物からロボットまでの距離を測定するセンサー

このシステムのモデルは,同一の2つの車輪,車輪に働く入力の力,回転のダイナミクス,座標変換,およびセンサーによって構成されます。このモデルでは,各コンポーネントを子系统を使って表現します。

  1. 新しい仿金宝app真软件モデルを開きます。新しいモデルを開くを参照してください。

  2. ライブラリブラウザーを開きます。金宝app仿真软件ライブラリブラウザーを開くを参照してください。

  3. 子系统ブロックを追加します。港口和子系统ライブラリから5つの子系统ブロックを新しいモデルにドラッグします。

  4. サブシステムをクリックします。[書式設定]タブで,[自動]名前ドロップダウンをクリックします。(自動ブロック名の非表示)チェックボックスをオフにします。

  5. 次に示すように,子系统ブロックを配置し,名前を変更します。ブロック名を変更するには、ブロック名をダブルクリックしてテキストを編集します。

コンポーネント間のインターフェイスの定義

サブシステム間の入出力の接続を特定します。入力値と出力値はシミュレーション中に動的に変化します。ブロックを結ぶ線はデータ転送を表します。次の表は、各コンポーネントの入力と出力を示しています。

ブロック 入力 出力 関連情報
输入 なし

右車輪への力

左車輪への力

該当なし
右轮 右車輪への力 右車輪の速度 方向を持つ。負は逆方向を意味
左车轮 左車輪への力 左車輪の速度 方向を持つ。負は逆方向を意味
旋转 右車輪と左車輪の速度差 回転角度 反時計回りに測定
坐标变换

通常の速度

回転角度

X方向の速度

Y方向の速度

該当なし
传感器

X座標

Y座標

なし モデル化のためのブロックは不要。

一部のブロック入力はブロック出力と完全には一致していません。そのため,各コンポーネントのダイナミクスに加えて,以下についてもモデル内で計算しなければなりません。

  • 旋转への入力- 2つの車輪の速度を減算し,2で割ります。

  • 坐标变换への入力- 2つの車輪の速度の平均を求めます。

  • 传感器への入力-坐标变换の出力を積分します。

車輪の速度の絶対値は常に等しく,その仮定の下において,計算は正確になります。

必要なコンポーネントを追加し,接続を確定します。

  1. 各サブシステムに必要な入力端子と出力端子を追加します。子系统ブロックをダブルクリックします。

    新しい子系统ブロックにはそれぞれ1つの轮廓尺寸三机一体1)ブロックとつの外港着干活)ブロックが含まれます。これらのブロックは,モデルの階層構造における次の上位レベルとの信号インターフェイスを定義します。

    轮廓尺寸ブロックはそれぞれ子系统ブロックに入力端子を作成し,外港ブロックはそれぞれ出力端子を作成します。これらのブロックの名前が,モデルにより入力端子/出力端子名として利用されます。入力信号と出力信号にブロックをさらに追加します。金宝app仿真软件エディターのツールバーで,[親に移動する]ボタンをクリックして最上位レベルに戻ります。

    各ブロックについて,次のように轮廓尺寸ブロックと外港ブロックを追加し,名前を変更します。

    轮廓尺寸ブロックをコピーして新しいブロックを作成するときは,[貼り付け](Ctrl + V)オプションを使用します。

  2. 左車輪と右車輪の速度から坐标变换および旋转サブシステムに必要な入力を計算します。

    1. 坐标变换サブシステムに入力する直線運動速度を計算します。数学操作ライブラリから添加ブロックを追加し2つの車輪コンポーネントの出力を接続します。获得ブロックを追加してゲインパラメーターを1/2に設定します。添加ブロックの出力をこの获得ブロックに接続します。

    2. 旋转サブシステムに入力する速度差を計算します。数学操作ライブラリから减去ブロックを追加します。右車輪の速度を[+]入力に,左車輪の速度を[-]入力に接続します。2つの車輪のコンポーネントの出力を接続します。Gain ブロックを追加してゲイン パラメーターを1/2に設定します。减去ブロックの出力をこの获得ブロックに接続します。

  3. XとYの速度からX座標とY座標を計算します。连续ライブラリから积分器ブロックを2つ追加し,坐标变换ブロックの出力を接続します。积分器ブロックの初期条件を0に設定したままにします。

  4. システムの接続を完成させます。

パラメーターとデータ

モデルに含まれるパラメーターと,その値を特定します。各値を常に固定にするか,シミュレーションごとに変化させるかは,モデリング目標に基づいて決定します。モデリング目標に関与するパラメーターは,モデル内に明示的に表現する必要があります。以下の表は,各コンポーネントをモデル化するときの詳細度を決定するのに役立ちます。

パラメーター ブロック 記号 タイプ
質量

左车轮

右轮

2.5公斤 変数
転がり抵抗

左车轮

右轮

k_drag 30 Ns2/ m 変数
ロボットの半径 旋转 r 0.15米 変数
初期角度 旋转 なし 0ラジアン 固定
初期速度

左车轮

右轮

なし

0米/秒

0米/秒

固定
初期(X, Y)座標 積分器 なし (0,0) m 固定

金宝app仿真软件MATLABは®ワークスペースを使用してパラメーターを評価します。MATLABコマンドウィンドウで、以下のパラメーターを設定します。

m = 2.5;k_drag = 30;r = 0.15;

関連するトピック