Simulink Control Design™ - MathWorks

(Tuis.) #1
Trim the model across the parameter set.

op = findop(mdl,ops,params,fopt);

Linearize the model across the parameter and operating point set.

sysBatch = linearize(mdl,io,op,params);

Calculate the elapsed time.

timeElapsedBatch = cputime - t;

Run Linear Analysis Commands in a Loop with fastRestartForLinearAnalysis

The fastRestartForLinearAnalysis command will configure the model to minimize
compilations even when compiling commands are run inside a loop. The model will be
compiled once with calls to operspec, findop, and linearize in a loop.

Run the loop and record execution time with fastRestartForLinearAnalysis "on".

t = cputime;

Turn fastRestartForLinearAnalysis "on". Provide AnalysisPoints to minimize
compilations between calls to findop and linearize.

fastRestartForLinearAnalysis(mdl,'on','AnalysisPoints',io);
ops = operspec(mdl);
for i = N:-1:1
kp = KP(i);
ki = KI(i);
% make sure the block initialization is called after the parameters
% are updated when the model is in a compiled state
Simulink.Block.eval(blk);
% trim the model
op = findop(mdl,ops,fopt);
[j,k] = ind2sub(sz,i);
% linearize the model
sysFastRestartLoop(:,:,j,k) = linearize(mdl,io,op);
end

Turn fastRestartForLinearAnalysis "off". This will uncompile the model.

fastRestartForLinearAnalysis(mdl,'off');

Calculate the elapsed time.

3 Batch Linearization

Free download pdf