I would like to improve the performance of my script which use linmod to linearize a simulink model in Matlab 2016b. The linmod function is used many times with different state/input vectors so I think compiling the model only once could improve performance.
The structure of my scipt would be :
feval(model,[],[],[],'lincompile');for i = 1:numel(x) out = linmod(model,x{i},u{i});endfeval(model,[],[],[],'term');
But unfortunalty, it only works with the 'v5' linarization algorithm. With the default block by block algorithm, an error is raised when changing model parameters :
Error using dlinmod>local_push_context (line 293)Cannot change the 'AnalyticLinearization' parameter while the model 'MyModel' is runningError in dlinmod (line 181)have = local_push_context(models, want);Error in linmod (line 59)[varargout{1:max(1,nargout)}] = dlinmod(model, Ts, varargin{:}, Args);
Is there any way to make linmod work with a compiled model ? Do you have any other idea to improve performance of many linearizations of the same model ?
Best Answer