MATLAB Unit Test Framework を利用した単体テスト時の入力データ設定「setExternalInput」のエラーに関して
Show older comments
作成したモデルに対して、「matlab.unittest.TestCase」でのテストスクリプト(.m)を作成しています。
モデルは2入力となっているため、以下のようにオブジェクト関数「setExternalInput」にて入力データのセットを行いました。
% 入力1 (Simulink Timeseries形式)
input1 = timeseries(ones(size(time_s)) * Current, time_s, 'Name', 'I1');
input1.DataInfo.Interpolation = tsdata.interpolation('zoh');
% 入力2 (Simulink Timeseries形式 - 最初のみ有効な信号として扱う)
initial_waveform = [Initial_V; zeros(numel(time_s)-1, 1)];
input2 = timeseries(initial_waveform, time_s, 'Name', 'I2');
input2.DataInfo.Interpolation = tsdata.interpolation('zoh');
simIn = Simulink.SimulationInput(testCase.ModelName);
simIn = simIn.setExternalInput({input1, input2});
結果、以下エラーとともに入力データが正しくモデルに入っていないようです。
'Simulink:Logging:InvInputLoadNameList'
[入力] パラメーターを使用して指定する外部入力の数 (1) は、ルートレベルの Inport ブロック、Enable ブロック、およびトリガータイプが関数呼び出し以外の Trigger ブロックの合計数 (2) と一致していなければなりません。
確認したこととしては以下2つになります。
1.モデルのinportブロック名(ブロックの下の名前)とテストケースの各入力信号名(Name)が合っている
※find_system コマンドにて以下を確認
--- Simulink Model Inport Block Details ---
Block Path: ****model/I1
Block Name: I1
Block Port Number: 1
--------------------------
Block Path: ****model/I2
Block Name: I2
Block Port Number: 2
--------------------------
2.テストケースのデバッグ出力では 「simIn.ExternalInput が {1×1 timeseries} {1×1 timeseries}」 と表示されていた
<質問>
上記エラーが発生する原因と処置方法がわかればご教示をお願いできますでしょうか。
※Matlab_ver= バージョン 24.2 (R2024b)になります。
Accepted Answer
More Answers (0)
Categories
Find more on Sources in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!