Documentation

Synchronizing Data between a Model and a Test Harness

Synchronize and rebuild a test harness from the main model.

This example shows how to synchronize parameters and data from a test harness to the main model. It also shows how to rebuild a test harness from the main model. Open the model.

mdl = 'sltestPushRebuildExample';
open_system(mdl);

Open the test harness attached to the Controller subsystem.

sltest.harness.open([mdl '/Controller'],'Controller_Harness1');

The test harness contains a copy of required variables from the main model workspace.

Update the value of a variable in the test harness model workspace.

ws = get_param('Controller_Harness1', 'ModelWorkspace');
evalin(ws, 'Ka = 0.7');
clear ws;
Ka =

    0.7000

The model workspace in the test harness is now out-of-sync with the main model. To synchronize, 'push' changes back to the main model. Select Analysis > Test Harness > Push Parameters to main model or enter:

sltest.harness.push([mdl '/Controller'], 'Controller_Harness1');

Close the test harness.

sltest.harness.close([mdl '/Controller'], 'Controller_Harness1');

The main model workspace has been updated. Confirm this by opening the Model Explorer and browsing to the Model Workspace node for the main model.

Next, change a variable in the main model workspace. Also change the solver in the main model configuration to 'ode23'.

ws = get_param(mdl, 'ModelWorkspace');
evalin(ws, 'Kf = -1.71');
set_param(mdl, 'Solver', 'ode23');
clear ws;
Kf =

   -1.7100

Open the test harness

sltest.harness.open([mdl '/Controller'],'Controller_Harness1');

The test harness is now out-of-sync with the main model. To synchronize, rebuild the harness with these new settings. Select Analysis > Test Harness > Rebuild harness from main model or enter:

sltest.harness.rebuild([mdl '/Controller'],'Controller_Harness1');

The test harness has been updated with the new model workspace values and a new active Configuration Set. Confirm this by opening the Model Explorer and browsing to the Model Workspace node for the test harness model.

sltest.harness.close([mdl '/Controller'],'Controller_Harness1');

Close the test harness and the model.

close_system(mdl, 0);
clear mdl;
Was this topic helpful?