Metrics to characterize control performance without simulation

11 views (last 30 days)
Hello,
I am trying to find a metric to tune the parameters of a variable structure controller but right now I am using metric computed after simulation and it is very long plus the metrics cannot be computed in some cases. Is there a metric that could be used to tune the controller without simulating the model and that could be computed in any case?
Thank you
  2 Comments
Mathieu NOE
Mathieu NOE on 17 Dec 2024 at 11:31
hello , do you have a simple working code we can use ?
IMO,performance is related to error signals and I don't see how you could have a somewhat equivalent info without simulating your closed loop on a given test signal
Lucas
Lucas on 17 Dec 2024 at 16:37
I am trying to use PSO to optimize the parameters with a code like this :
% x0 : initial parameters
% x_best : optimized parameters
mdl = 'sys_2';
load_system(mdl);
x0 = %depends on controller structure
nvars = numel(x0);
lb = %depends on controller structure
ub = %depends on controller structure
n_iter = 100;
swarm_size = min(20, 5*nvars);
options = optimoptions('particleswarm', 'MaxIterations', n_iter, 'SwarmSize', swarm_size, 'InitialPoints', x0);
x_best = particleswarm(@(x)fitness_function(x, mdl), nvars, lb, ub, options);
Right now the fitness function is derived from simulation. In the future, I want to create an evolutionnary algorithm that optimize the structure of the controller and where this process would be an iteration of the algorithm. This is what I would like to find a faster way to optimize the parameters of the controller.

Sign in to comment.

Answers (1)

Naga
Naga on 23 Dec 2024 at 4:09
Tuning controller parameters without running simulations can be tricky, but there are ways to speed up or avoid simulations entirely:
  1. Use simplified models, replace full simulations with analytical models or reduced-order approximations.
  2. Evaluate controller parameters directly using stability margins, control effort, or robustness criteria.
  3. Surrogate model, train a machine learning model (e.g., Gaussian Process) to approximate performance metrics based on a few simulations, then use it for optimization.
  4. Add constraints or rules to exclude obviously unstable or infeasible parameters before simulation.
For your PSO code, you could integrate a surrogate model. This might look like replacing your current fitness function with a trained model or pre-checking parameter stability to avoid wasting time on bad candidates.

Categories

Find more on Simulink Design Optimization 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!