パケット損失およびチャネルエラを伴うワヤレスメッセジ通信のモデル化
この例では,万博1manbetx仿真软件®のメッセージ,Stateflow®,およびSimEvents®を使用してパケット損失およびチャネルエラーを伴うワイヤレスメッセージ通信をモデル化する方法を説明します。
このモデルには,メッセージを送信する2つのコンポーネントとメッセージを受信する2つのコンポーネントがあります。メッセジは伝送遅延を伴う共有ワヤレスチャネルを使用して伝送されます。Stateflow® チャートはワイヤレス コンポーネントのメッセージ送信ロジックをモデル化し、SimEvents® ブロックはワイヤレス メッセージ送信、チャネル エラー、およびパケット損失をモデル化します。
メッセジの概要にいては,万博1manbetxSimulinkメッセ,ジの概要を参照してください。
メッセ,ジを送受信するコンポ,ネントの作成
モデルには,メッセージを出力するWirelessSendとWirelessStateflowSendという2つのソフトウェアコンポーネントがあります。
无线发送コンポ,ネントでは,正弦波ブロックは信号ソ,スです。正弦波ブロックは振幅が1
の正弦波を生成します。このブロックでは,[サンプル時間]は0.1
に設定されています。发送ブロックは信号値のデータを搬送するメッセージに信号を変換します。WirelessSendComponent は Send Buffer 1 に接続されます。
WirelessStateflowSendコンポーネントで,別の正弦波ブロックは正弦波信号を生成し,噪音ブロックは信号へのノイズの挿入に使用されます。噪音ブロックは,平均が0
で分散が1
のガウス分布から値が生成される信号を出力します。Stateflow® チャートは信号をフィルター処理し、メッセージを送信するかどうかを決定する単純なロジックを表します。StateflowSend コンポーネントはメッセージを Send Buffer 2 に送信します。
モデルには,メッセージを受信するWirelessReceiveとWirelessListenerという2つのソフトウェアコンポーネントがあります。
WirelessReceiveコンポーネントで,接收ブロックはメッセージを受信してそのメッセージデータを信号値に変換します。コンポ,ネントは接收缓冲区1に接続されます。
WirelessListenerコンポ,ネントには,関数onOneMessage(数据)
を実行するS万博1manbetximulink命令功能ブロックがあります。メッセ,ジが Receive Buffer 3 に到着すると、Simulink Function ブロックはメッセージ データからの値である引数数据
を入力信号として取ります。このブロックでは,数据
の値が2
で乗算されます。ブロックは新しいデータ値を出力します。
これらのコンポネントの作成の詳細にいては,複数の送信側および受信側をも共有通信チャネルのビルドを参照してください。
マルチキャストを使用したワ▪▪ヤレスメッセ▪▪ジ通信のモデル化
WirelessSendコンポーネントとWirelessStateflowSendコンポーネントは发送缓冲区1と发送缓冲区2にメッセージを送信します。これらは,ワイヤレスでメッセージを送信できるSimEvents®实体多播ブロックです。传输缓冲区ブロックは,发送缓冲区1と发送缓冲区2によって送信されるメッセージを受信できるSimEvents®マルチキャスト受信キューです。
发送缓冲区1发送缓冲区2および无线频道ブロック内の传输缓冲区ブロック間でこのワイヤレス通信を実現するには,次のようにします。
发送缓冲区1ブロックと发送缓冲区2ブロックで,(多播标记)パラメ,タ,を
一个
に設定します。传输缓冲器ブロックで,(多播标记)パラメ,タ,を
一个
に設定します。
(多播标记)パラメーターはメッセージがどの实体多播ブロックから受信されるのかを定義します。
チャネルエラ,のモデル化
SimEvents®实体门ブロックはチャネルエラのモデル化に使用されます。ブロックには入力端子が2あります。1つの入力端子は Transmission Buffer からの受信メッセージ用です。2 番目の入力端子はゲートを開くタイミングを決定する制御端子です。
登机门ブロックの(操作模式)パラメ,タ,を使门
に設定します。このモ,ドでは以下が行われます。
その制御端子から
0
より大きい値を搬送するエンティティを受信すると,ブロックはゲートを開いてメッセージが進むことを許可します。これは操作可能チャネルを表します。
エンティティが
0
以下の値のデ,タを搬送すると,ブロックはゲ,トを閉じてメッセ,ジの受け渡しをブロックします。これはチャネルエラ,を表します。
门ブロックを制御するために,この例では控制门というラベルが付いたSimEvents®实体发电机ブロックを使用して,さまざまなデータ値を搬送するエンティティを生成できます。
控制门ブロックでは,(事件动作)の(生成的行动)フィ,ルドで,下のコ,ドを使用して大门ブロックを開閉するエンティティを生成します。最初,エンティティデ,タは1
であり,ゲ,トは開いていて,チャネルは操作可能状態です。新しいエンティティが生成されると,その値は0
に変化し,これによってゲ,トが閉じられます。エンティティが生成されるたびに、ゲートのステータスは開いた状態から閉じた状態、または閉じた状態から開いた状態に変化します。
控制门ブロックでは,【代际时间动作】フィ,ルドで下のコ,ドを使用し,チャネルの操作可能状態とエラ,状態を表します。このコ,ドはチャネルを操作可能として初期化します。生成された各エンティティは门ブロックのステ,タスを変更するため,dt
はエンティティの生成間時間であり,チャネルのステ,タスを変更するために使用されます。
このコ,ドでは,0
と10
の間の値を取る一様分布から修復時間が生成されます。エラ,の時間間隔は0
と50
間の値を取る別の一様分布から生成されます。
パケット損失のモデル化
パケット損失をモデル化するには,SimEvents®实体输出开关ブロックを使用します。
ブロックには入力端子が2あります。1つの入力端子はメッセージを受け入れます。もう 1 つの入力端子は出力端子の選択を決定するエンティティを受け入れます。エンティティが1
に設定されている場合,ブロックは出力端子1
を選択してメッセ,ジを无线共享消息ブロックに転送します。エンティティが2
に設定されている場合,ブロックはパケット損失を表す实体终结者ブロックに接続されている出力端子2
を選択します。
输出开关ブロックでは次のようになります。
【输出端口数】は
2
に設定されます。
選択されている出力を特定するために,(切换准则)は
从控制口
に設定され,[初始端口选择]は1
に設定されます。
パケット損失の0.1
の確率をモデル化するには,概率丢包ブロックで(事件动作)タブを選択します。(生成的行动)フィ,ルドには次のコ,ドが含まれます。
持续的rngInit;如果isempty(rngInit) seed = 12345;rng(种子);rngInit = true;结束
%模式:均匀分布% m:最小值,m:最大值M = 0;M = 1;x = m + (m - m) * rand;
% x由均匀分布和%取值范围为|0|和|1|。如果X > 0.1%实体携带数据|1|,这将强制输出开关选择% output |1|用于转发实体到接收组件。实体= 1;其他的%实体携带数据|2|,这将强制输出开关选择% output |2|,表示丢包。实体= 1;结束
まり,制御端子に入るエンティティには1
に設定される0.9
の確率があり,これによりブロックは无线分享消息ブロックにメッセージを出力します。
モデルのシミュレ,ションと結果の確認
モデルをシミュレ,トします。
传输缓冲区ブロック上部で接続されている范围ブロックを開きます。ブロックには共有チャネルから送信されたメッセ,ジの合計数が表示されます。
4255
メッセ,ジがチャネルを介して送信されます。
プロットにはチャネルエラ,も表示されます。たとえば,最初のOne hundred.
秒を拡大します。チャネルエラ,はメッセ,ジ送信がブロックされた40
と49
の間に発生していることを確認します。
デタンスペクタを開き,Gateを制御するエンティティを可視化します。生成されたエンティティごとにエンティティデ,タが1
から0
に変わります。
損失したメッセージの数を確認するには,包丢失ブロックに接続された范围ブロックを開きます。
409
メッセ,ジは送信中に失われます。これは,メッセ,ジの9.6
パ,セントです。
参考
正弦波|发送|收到|队列|实体终结者(SimEvents)|实体输出开关(SimEvents)|实体门(SimEvents)|实体多播(SimEvents)