MATLAB Course Designer での Simulink 演習評価テスト
評価テストを使用すると、MATLAB® Course Designer™ で Simulink® 演習に対する受講者の解答を自動的にテストできます。

Simulink 演習を作成する方法の例については、MATLAB Course Designer を使用した Simulink 演習の作成を参照してください。
タスクの解答を開く
MATLAB Course Designer でコースを開きます。評価テストを追加する演習に移動し、[編集] をクリックします。
評価テストを追加するタスクの解答を開くには、次のようにします。
タスク ペインで、タスクをクリックします。
まだ解答を追加していない場合は追加します。解答を追加するには、タスクの解答の追加を参照してください。
解答が開いている場合は、[解答] タブをクリックします。それ以外の場合は、左側のナビゲーション ペインの [タスクの編集] タブで、[解答] をクリックします。次に、解答ファイル名の横にある [開く] をクリックします。
解答には、テストを追加するのに役立つ [評価] ペインが含まれています。

ブロック線図の依存関係を考慮したテストの追加
ブロックや接続などの要素をテストするには、要素を選択してからテストを追加しなければなりません。解答モデル内またはそのサブシステム内に存在するものを要素とすることができます。

モデルの階層構造を移動すると、現在のブロック線図に対するテストのみが編集可能になります。他のブロック線図のテストは暗く表示されます。
別のブロック線図のテストを編集するには、テストをクリックして対応するブロック線図を開きます。
テストに対応するブロックまたは信号線を強調表示するには、テストをクリックします。

ブロックの有無に関するテストの追加
指定されたブロックが受講者の解答に含まれているかどうかをテストするには、次のようにします。
現在のブロック線図で、1 つ以上のブロックを選択します。
[評価] ペインで、[テストの追加] 、 [ブロックの有無] の順に選択します。選択したブロックごとに新しいテストが表示されます。

受講者は、モデルに Step ブロックなどの特定の種類のブロックが含まれているかどうかについての質問を受けます。

同じタイプのブロックが複数存在するかどうかをテストする場合、かっこ書きでそのタイプの想定されるブロック数を示します。

ブロック パラメーター値に関するテストの追加
ブロック パラメーター値と指定された値が一致するかどうかをテストするには、次のようにします。
現在のブロック線図で、1 つ以上のブロックを選択します。
[評価] ペインで、[テストの追加] 、 [ブロック パラメーター値] の順に選択します。選択したブロックごとに新しいテストが表示されます。
[パラメーター] リストで、テストするブロック パラメーターを選択します。ドキュメンテーションにあるブロック パラメーターのみを選択します。ドキュメンテーションにないブロック パラメーターは、内部使用専用です。
パラメーター値が期待どおりであることをチェックします。
同じブロックの追加のパラメーター値をテストするには、[パラメーターの追加] をクリックします。それぞれの追加について、テストするブロック パラメーターを選択し、パラメーター値をチェックします。
ブロック パラメーターの値を更新した場合、新しい値を反映するようにテストが自動的に更新されます。

受講者は、ブロックのパラメーター設定が正しいかどうかについての質問を受けます。

信号線に関するテストの追加
想定どおりに信号線がブロックを接続しているかどうかをテストするには、次のようにします。
ブロック線図で、1 つ以上の信号線を選択します。
[評価] ペインで、[テストの追加] 、 [信号線] の順に選択します。選択した信号線ごとに新しいテストが表示されます。
信号が複数の宛先に分岐する場合は、オプションで、信号が追加の宛先に接続されるかどうかをテストします。テストする宛先ごとに、[接続先の追加] をクリックし、信号を受信するブロック端子を選択します。

受講者は、信号線がブロック同士を接続しているかどうかについての質問を受けます。

モデル パラメーター値に関するテストの追加
モデル パラメーターの値と指定された値が一致するかどうかをテストするには、次のようにします。
[テストの追加] 、 [モデルのパラメーター値] の順に選択します。
[パラメーター] リストで、テストするモデル パラメーターを選択します。
入れ子のパラメーター値が期待どおりであることをチェックします。
追加のモデル パラメーター値をテストするには、[パラメーターの追加] をクリックします。それぞれの追加について、テストするモデル パラメーターを選択し、パラメーター値をチェックします。
モデル パラメーターの値を更新した場合、新しい値を反映するようにテストが自動的に更新されます。

受講者は、選択したモデル パラメーターが正しく設定されているかどうかについての質問を受けます。

信号データに関するテストの追加
受講者の解答で生成される信号データが、指定された許容誤差内で想定されている信号データと一致しているかどうかをテストするには、次のようにします。
[テストの追加] 、 [信号データ] の順に選択します。このアクションにより、Signal Assessment ブロックが追加されます。
信号を Signal Assessment ブロックに接続します。
[信号データの取得] をクリックします。ソース ブロックを示すように [信号ソース] の値が更新されます。
取得した信号データを Figure ウィンドウでチェックするには、[信号データを取得しました] をクリックします。
必要に応じて、[許容誤差] ボックスで絶対許容誤差を指定します。受講者の解答が模範解答とは異なるアプローチを使用する場合、許容誤差によってテストの合否を判定できます。各タイム ステップにおいて、このテストは、受講者の信号データと期待値の差が、指定された絶対許容誤差を超えているかどうかをチェックします。
モデルを更新する場合は、信号データを再取得します。取得した信号データはスナップショットであり、モデルを更新しても自動的に更新されません。

受講者は、信号要件のプロットと、信号が要件を満たしているかどうかについての質問を受けます。

各タスクでは、1 つの信号のデータのみをテストできます。
カスタム テストの追加
MATLAB 関数を使用してカスタム テストを記述するには、次のようにします。
[テストの追加] 、 [カスタム] の順に選択します。
[質問] ボックスに、受講者への質問を入力します。
[関数] の横にあるハイパーリンクをクリックします。関数が [カスタム テスト] タブで開きます。カスタム テストが複数ある場合、タブ名には一意性を保つための番号が含まれます。
関数内で、受講者の解答をテストするカスタム ロジックを実装します。
関数では、入力引数
mdlを使用して、解答モデルの名前を"SolutionModel"のように引用符で囲んで指定できます。入力引数を使用しない場合でも、関数には必ず入力引数がなければなりません。
関数は、受講者の解答がテストに合格したかどうかを数値または logical の
1(true) または0(false) として返さなければなりません。
カスタム テストにエラーがないかどうかをチェックするには、[テストの実行] をクリックします。
テストが有効かどうか、また解答がテストに合格するかどうかをチェックします。
たとえば、1 つの入力信号をもつ Cruise Control という名前の PID Controller ブロックが解答にあり、受講者が入力信号に error という名前を付けているかどうかをチェックしたいとします。カスタム テストは以下のようになります。
function pass = customTest(mdl) ports = get_param(mdl+"/Cruise Control","PortHandles"); in1 = ports.Inport(1); signal = get_param(in1,"Name"); pass = (signal == "error"); end
テストを実行すると、解答がテストに合格したかどうかを示すメッセージが表示されます。

作成した問題のみが受講者に表示されます。関数は受講者には表示されません。

別の例として、値が 5 である k という名前の変数が受講者によってベース ワークスペースに追加されていることをチェックしたいとします。カスタム テストは以下のようになります。
function pass = customTest(mdl) k = evalin('base','k'); pass = (k == 5); end
ベース ワークスペースで k を 5 に設定してからテストを実行すると、解答がテストに合格したというメッセージが表示されます。

作成した問題が受講者に表示されます。
