MATLAB: Error “Accelerator mode is not supported through the S-Function API” when calling set_param in Accelerator mode.

acceleratorset_paramsimulink test

I have a model open in accelerator mode. When I call 'set_param' to change the values of several model parameters, I get the following confusing error:
>> set_param(vdp,'StopTime','100')
Accelerator mode is not supported through the S-Function API
Why is this? How can I fix this?

Best Answer

This error message is misleading, but there is a syntax error in the call to 'set_param' used here. The object input argument is supposed to be passed in as a string, character array, or handle to the object being modified.
In this case, passing in vdp (without quotes) is invalid because vdp is not evaluated correctly by set_param. Instead, pass in the name of the model in single quotes. The correct syntax is as follows:
>> set_param('vdp','StopTime','100')
If you change the model back to Normal mode then re-run the original command without quotes, the error message becomes more clear:
>> set_param(vdp,'StopTime','100')
Warning: Non-scalar data in first argument to set_param is detected.
Only first handle in the matrix is processed.
Invalid Simulink object handle
An enhancement request has been filed with the development team to improve the clarity of this error message for this scenario in Accelerator mode.