主要内容

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

生成コードのテスト

システムレベルs函数の使用または外部環境でのコード実行により,生成したコードを検証します。

参照項目:

  • 生成したコードのさまざまなテスト方法

  • 生成したコードの仿金宝app真软件®内でのテスト方法

  • 生成したコードの仿金宝app真软件®外でのテスト方法

モデル例とこのシリーズの他の例の詳細については,Cコード生成のためのコントロールアルゴリズムモデルの準備を参照してください。

検証法

金宝app仿真软件®では,生成したコードの動作を検証するために複数のシステムテスト方法がサポートされています。

Windows®ランタイム実行可能ファイル: Microsoft®Windows®実行可能ファイルを生成し,コマンドプロンプトからその実行可能ファイルを実行します。

  • 利点:簡単に作成でき,コード評価にCデバッガーを利用可能

  • 欠点:ターゲットハードウェアのエミュレーションが部分的

ソフトウェアインザループ(SIL)テスト:功能を使用して,生成したコードを仿真软件モデルに含めま金宝appす。

  • 利点:簡単に作成でき,仿金宝app真软件テスト環境を再利用でき,コード評価にCデバッガーを利用可能

  • 欠点:ターゲットハードウェアのエミュレーションが部分的

プロセッサインザループ(公益诉讼)テスト:非リアルタイムのコシミュレーションを実行します。ターゲットプロセッサがモデルのある一部分(通常,コントローラー)を実行する間,仿真软金宝app件はモデルの別の部分(通常,プラントモデル)を実行します。コードをターゲットプロセッサにダウンロードした後,プロセッサインザループテクノロジーは,コシミュレーション中の仿真软件とタ金宝appーゲット間の通信を処理します。

  • 利点:仿金宝app真软件テスト環境を再利用でき,シミュレーションとともにCデバッガーを利用でき,ターゲットプロセッサを伴う

  • 欠点:テスト環境の設定に追加ステップが必要,プロセッサがリアルタイムで実行されない

ターゲット上のラピッドプロトタイピング:生成したコードをターゲットプロセッサ上でフルシステムの一部として実行します。

  • 利点:実際のハードウェアの制約を判断でき,フルシステムでコンポーネントのテストを行える。プロセッサがリアルタイムで実行される

  • 欠点:ハードウェアが必要であり,テスト環境の設定に追加ステップが必要である

エクスターナルモード:生成したコードをターゲットプロセッサ上でフルシステムの一部として実行します。

  • 利点:実際のハードウェアの制約を判断でき,フルシステムでコンポーネントのテストを行える

  • 欠点:ハードウェアが必要であり,テスト環境の設定に追加ステップが必要である

金宝app仿真软件®外部におけるテストデータの再利用

このシリーズの他の例で,金宝app仿真软件のシミュレーションによってシステムをテストします。そのテスト入力データは,テストハーネスモデルの信号生成器ブロックから得られます。

金宝app仿真软件®外部でシステムをテストする際,このテスト入力データを再利用できます。

  1. 金宝app仿真软件テストデータをファイルに保存します。

  2. システムコードがアクセスできる形式でデータをフォーマットします。

  3. データファイルをシステムコードプロシージャの一部として読み取ります。

金宝app仿真软件を使用して検証する場合,外部環境で得られたテスト出力データをMATLAB®が読み取り可能な形式で保存できます。

この例では,ファイルhardwareInputs.cにはテストハーネスモデルの信号生成器ブロックからのデータが含まれています。

ソフトウェアインザループ(模型ブロックSIL)によるテスト

模型ブロックの作成とSIL用の構成

金宝app模型仿真软件はブロックからコードを生成し,そのコードをs函数にラップし,ソフトウェアインザループテストのためにこのs函数をモデル内に戻すことができます。

モデル例rtwdemo_PCG_Eval_P6を開きます。

テストハーネスモデルを開きます。

テストハーネスは模型ブロックを使用してモデル例にアクセスします。この例では,モデル例に対してソフトウェアインザループテストを実行します。

  1. 模型ブロックを右クリックし,[ブロックパラメーター(ModelReference)]を選択します。

  2. [モデル名)にテストするモデルの名前を設定します。

  3. [シミュレーションモード]を[Software-in-the-loop(银)]に設定します。

模型ブロックに(银)タグが表示されるようになりました。

SIL用にモデルを構成

ハードウェア実行パラメーターを調整して,モデル例rtwdemo_PCG_Eval_P6,テストハーネスモデルrtwdemo_PCGEvalHarnessHTGTSILをSILシミュレーション用に構成します。

モデル例を開きます。

[コンフィギュレーションパラメーター]ダイアログボックスで,両方のモデルに対して(很久のサポート]チェックボックスをオンにします。

モデル例rtwdemo_PCG_Eval_P6のコピーを現在のフォルダーに保存します。

模型ブロックSILの実行

この例では,テストハーネスモデルに,SILシミュレーション用に構成された模型ブロックが含まれます。

テストハーネスを開きます。

テストハーネスを実行します。

生成されたコードとシミュレーションから,同じ結果が得られます。

テストベクトルのインポート/エクスポートテスト用のシステム構成

この例は,金宝app仿真软件環境外での統合コードの作成の統合の例題を拡張します。このケースでは,example_main.cはシミュレーションされたハードウェアI / Oを使用します。

拡張されたexample_main.cファイルは,次の実行順で構成されています。

1.データの初期化(1回)

而< endTime

2.シミュレートされたハードウェア入力の読み取り

3.PI_cnrl_1

4.PI_ctrl_2

5.Pos_Command_Arbitration

6.シミュレートされたハードウェア出力の書き出し

结束时

example_main.cを表示します。

2つの関数植物およびhardwareInputsは,入力テストデータを提供します。

Plant.c:この関数は,テストハーネスのプラント部分から生成されたもので,スロットルコマンドに対するスロットル本体の応答をシミュレートします。

无效的植物(空白)

HardwareInputs.c:この関数は,pos_req信号を与えて,Input_Signal_Scalingサブシステムからプラントフィードバック信号にノイズを追加します。

空白hardwareInputs(空白)

WriteDataForEval.c内の手書きの関数は,テスト出力データをログ記録します。テスト終了後,この関数が実行され,データをPCG_Eval_ExternSimData.mファイルに書き込みます。データにアクセスするには,このスクリプトファイルをMATLABで実行します。その後,データを仿金宝app真软件®のシミュレーションデータと比較できます。

これらの追加ファイルを有効にするには,[コンフィギュレーションパラメーター],[コード生成],[カスタムコード],[追加のビルド情報]を使用してこれらのファイルを特定します。

テストベクトルのインポート/エクスポートを使用したテスト(Eclipse™環境)

Eclipse™環境で実行可能ファイルをビルドする前に,s函数インターフェイスを使用せずにコードを再生成します。

統合用にCコードをビルドします。

Eclipse™とGCCをインストールおよび使用する方法については,CygwinとEclipseのインストールと使い方を参照してください。

この例のファイルを自動的にインストールするには,このハイパーリンクをクリックしてください。

ビルドフォルダーを自動的に設定します。

あるいは,手動でインストールするには,次のようにします。

  1. ビルドフォルダー(Eclipse_Build_P6)を作成します。

  2. rtwdemo_PCG_Eval_P6.zipファイルをビルドフォルダーに解凍します。

  3. ファイルrtwdemo_PCG_Eval_P6.cert_main.cおよびrt_logging.cexample_main.c。で置き換えられるために削除します。

Eclipse™で制御コードを実行します。writeDataForEval.c内の関数は,eclipseData.mファイルを作成します。このファイルには,出力テストデータが格納されます。MATLAB® でスクリプト ファイルを実行し、この Eclipse™ データを読み込みます。次に、情节を使用して,このデータを仿金宝app真软件®テストハーネスモデルによるデータと比較します。

このシリーズの次の例については,生成されたコードのパフォーマンス評価を参照してください。

関連するトピック