主要内容

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

エクスターナル モードを使用したパラメーターの調整と信号の監視

エクスターナル モード シミュレーションは、ラピッド プロトタイピングに使用できます。エクスターナル モード シミュレーションでは、開発用コンピューター (ホスト) の 金宝app模拟®と、コードの生成およびビルド プロセスにより作成された実行可能ファイルを実行するターゲット ハードウェアの間に、通信チャネルが確立されます。

この通信チャネルでは次のことが可能です。

  • ブロック パラメーターのリアルタイムでの変更または調整。モデルのパラメーターを変更すると、金宝app模拟により新しい値が実行中のターゲット アプリケーションにダウンロードされます。

  • 実行中のターゲット アプリケーションからの信号データの監視と保存。

チャネルの下位トランスポート層により、メッセージの送信が処理されます。金宝app模拟と生成されるモデル コードは、この層に依存しません。トランスポート層とそのインターフェイス コードは、メッセージとデータ パケットの形式設定、送信、および受信を行う個別のモジュールに分離されています。

TCP/IPまたはシリアル (RS-232)通信チャネルを使用するエクスターナル モード シミュレーションを設定して実行します。

  1. 単純なモデルを作成して構成します。

  2. ターゲットの実行可能ファイルをビルドします。

  3. ターゲット アプリケーションを実行します。

  4. パラメーターを調整します。

例:マンデルブロ集合

説明

チュートリアルを完了するためにこの例のアルゴリズムを熟知している必要はありません。

マンデルブロ集合とは、下記の方程式で定義された軌跡が K→∞ のときに有限の範囲内にとどまる値 Z0で構成された複素平面の領域です。

Z K + 1. = Z K 2. + Z 0 , K = 0 , 1. ,

マンデルブロ集合の全体的な幾何形状を図に示しています。この図には,集合の境界の外側周辺における詳しい構造を十分に示すための解像度がありません。拡大率を上げていくと,マンデルブロ集合の詳細な境界が示され,そこでは徐々に細かくなりながら細部が繰り返されていることがわかります。

アルゴリズム

このチュートリアルでは、メインのカージオイドとその左側にある p/q球状部との谷間にある、マンデルブロ集合の大きく拡大された部分を指定する一連の範囲を選択します。これらの 2.つの範囲間に、実数部 (十)と虚数部 (y)の 1000x1000のグリッドを作成します。次に、マンデルブロ アルゴリズムを各グリッド位置で反復します。完全な解像度のイメージをレンダリングするには 500回の反復回数で十分です。

maxIterations=500;gridSize=1000;xlim=[-0.748766713922161,-0.748766707771757];ylim=[0.123640844894862,0.123640851045266];

このチュートリアルでは、中央处理器で実行される標準の MATLAB®コマンドを使ったマンデルブロ集合の実装を使用します。この実装は,電子書籍”用MATLAB进行实验(克利夫摩尔)著) で提供されているコードに基づきます。この計算はすべての場所が同時に更新されるようにベクトル化されています。

マンデルブロ モデルの作成

  1. 新しい 金宝app模拟モデルを作成し、[ユーザー定義関数]ライブラリからMATLAB函数ブロックを挿入します。

  2. MATLAB函数ブロックの1つをダブルクリックします。既定の関数シグネチャがMATLAB函数ブロック エディターに表示されます。

  3. マンデルブロ アルゴリズムを実装する関数曼德布罗特计数を定義します。関数ヘッダーは、最大迭代次数xGrid,およびyGridを関数曼德布罗特计数の引数として宣言し、また计数を戻り値として宣言します。エディター ドキュメントをファイルに保存します。

    函数count=mandelbrot\u count(最大迭代次数、xGrid、yGrid)%曼德布罗特计算z0=xGrid+1i*yGrid;计数=个(尺寸(z0));将计算映射到GPUcoder.gpu.kernelfun;z=z0;对于n=0:maxz=z.*z+z0;内部=abs(z)<=2;计数=计数+内部;终止计数=对数(计数);

  4. MATLAB函数ブロックを右クリックし、[ブロックパラメーター(子系统)]を選択します。

  5. [コード生成]タブで、[関数のパッケージ化]について(再利用可能な関数)を選択します。

  6. (来源)および[水槽]ライブラリから轮廓尺寸(金宝appSimulink)ブロックと外港(金宝appSimulink)ブロックを追加します。

  7. これらのブロックを,次の図に示すように接続します。モデルをmandelbrot_top.slxとして保存します。

    金宝app显示块之间连接的Simulink模型。

ターゲットの実行可能ファイルのビルド

エクスターナルモードターゲットアプリケーションに必要なモデルおよびコード生成パラメーターを設定します。次に,コードを生成してターゲットアプリケーションをビルドします。

  1. 金宝app模拟ツールストリップの[アプリ]タブの[ハードウェアで実行するように設定]セクションで、[ハードウェア ボードで実行]をクリックします。

  2. [ハードウェア ボード]セクションの[ハードウェア ボード]リストから、[NVIDIA Jetson]を選択します。

  3. [準備]セクションで[ハードウェア設定)をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開き、[ハードウェア実行]設定が表示されます。この設定は,選択したボードに応じて決まります。

  4. [ソルバー]ペインで次を行います。

    1. [タイプ]フィールドで[固定ステップ]を選択します。

    2. [ソルバー]フィールドで[離散 (連続状態なし)]を選択します。

    3. [ソルバーの詳細]をクリックします。[固定ステップ サイズ]フィールドで[0.1]と指定します(このようにしないと、コードの生成時に GPU编码器™ ビルド プロセスにより警告が出力され、値が指定されます)。

    4. [適用]をクリックします。

  5. [データのインポート/エクスポート]ペインで[時間]および[出力]チェックボックスをオフにします。この例では,データのログはワークスペースまたは垫ファイルに記録されません。[適用]をクリックします。

  6. [コード生成][最適化]ペインで、[既定のパラメーター動作][調整可能]に設定します。変更が完了したら、[適用]をクリックします。

  7. [コード生成][インターフェイス]ペインの[データ交換インターフェイス]セクションで[エクスターナルモード]を選択します。

  8. [エクスターナルモード構成)セクションで、[トランスポート層]パラメーターの既定値(tcpip)が選択されていることを確認します。

    [MEXファイル名]には,ホストターゲット通信を実装する墨西哥人ファイルの名前が示されます。TCP / IPの場合の既定値は(ext_comm)です。これは、金宝app仿真软件编码器™ソフトウェアに付属の 墨西哥ファイルです。

    [MEXファイルの引数]フィールドには,外部インターフェイスプログラムに渡す引数(TCP / IPサーバーのポート番号など)を指定できます。これらの引数は,使用している外部インターフェイスに固有です。

    このチュートリアルでは既定の引数を使用しています。[MEXファイルの引数]フィールドは空白のままにします。

    [静的なメモリ割り当て]チェックボックスは,ターゲットのエクスターナルモード通信バッファーへのメモリの割り当て方法を制御します。このチュートリアルでは,このチェックボックスはオフにしておきます。

  9. [適用]をクリックして、エクスターナル モード設定を保存します。

  10. モデルを保存します。

  11. [コード生成]ペインを選択します。[コード生成のみ]がオフになっていることを確認します。

  12. コードを生成してターゲット アプリケーションを作成するには、モデル ウィンドウでCtrl + Bを押します。あるいは[ハードウェア]タブの[ハードウェアで実行]セクションで[監視と調整]をクリックします。次に[ステップ単位のコマンド][監視用のビルド]をクリックします。

    作業フォルダーに曼德布罗特托普酒店実行可能ファイルが作成されます。

ターゲット アプリケーションの実行

曼德布罗特托普酒店ターゲット実行可能ファイルを実行し、実行中のターゲット アプリケーションの対話型フロント エンドとして 金宝app模拟を使用します。この実行可能ファイルは作業フォルダーにあります。ターゲット アプリケーションを実行して、模拟とターゲットの間の通信を確立します。

ターゲット アプリケーションを実行するには、次を行います。

  1. [ハードウェア]タブの[ハードウェアで実行]セクションで、次を行います。

    1. [終了時間]フィールドにを指定します。これにより、ターゲット アプリケーションが 金宝app模拟から停止メッセージを受信するまで、モデルが実行されます。

    2. [監視と調整]をクリックします。次に[ステップ単位のコマンド][配布]をクリックします。

    ターゲット アプリケーションが実行を開始し、待機状態になります。

  2. [ハードウェア]タブの[ハードウェアで実行]セクションで、[監視と調整]をクリックします。次に[ステップ単位のコマンド][接続]をクリックします。このアクションにより、金宝app模拟とターゲット アプリケーションの間でハンドシェイクが開始されます。模拟とターゲットが接続されたら、[接続] ボタンが[切断]に変わります。

  3. [ハードウェアで実行]セクションでをクリックします。生成されたモデル コードの実行が開始されます。

これで、金宝app模拟と実行中のターゲット アプリケーションの間で通信が確立されました。

ターゲット アプリケーションの停止

ホスト/ターゲット通信から 金宝app模拟を切断する操作とターゲット アプリケーションの実行を終了する操作を同時に実行するには、[ハードウェア]タブの[ハードウェアで実行]セクションで[停止]をクリックします。

参考

関数

関連するトピック