Parameter sweep using simscape
16 views (last 30 days)
Show older comments
I am trying to use Simscape to model the simple cross-over filter below.
Using the linearisation tool box I am able to extract its state-space representation and plot its transfer function. I would like to run a parameter sweep where I vary the inductance of Ind1.
I have managed to get this working, but the simulation has to recompile everytime it is linearised. When I use the fastRestartForLinearAnalysis( ) function (taken fropm the example in https://uk.mathworks.com/help/slcontrol/ug/fastrestartforlinearanalysis.html) the model no longer recompiles with each iteration, but the variable L_LP doesnt seem to get updated anymore... How can I avoid recompiling the model everytime, whilst still varying parameter values?
The main peice of code I am using is given below.
set_param('test1/Ind1','L','L_LP');
L_LP = 1e-3;
% fastRestartForLinearAnalysis(mdl,'on')
for n = 1:100
L_LP = L_LP + 0.0001 ; % Value of an inductor in circuit
% Simulink.Block.eval('test1/Ind1')
linsys = linearize(mdl,io);
[magLP(n,:), phaseLP(n,:)] = bode(linsys(1),w);
end
% fastRestartForLinearAnalysis(mdl,'off');
0 Comments
Answers (1)
Juan Sagarduy
on 12 Jan 2021
Hi Joshua
Is the inductance parameter set as Run-time in the Simscape component? By default it is not, so maybe you can check this and test out.
https://se.mathworks.com/help/physmod/simscape/run-time-parameters.html
Regards / Juan
See Also
Categories
Find more on Electrical Sensors 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!