Is it possible to pass simulink NMPC parameters as struct?
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Eduardo
el 21 de Nov. de 2022
Comentada: Osamah Ali Mohammed Saad
el 5 de Mzo. de 2024
Currently I am developing a NMPC controller and the functions used for the algorithm (state definition, cost, etc.) make use or a broad array of parameters.
In Matlab I have used a structure to pass the parameters without problem, e.g.:
p.param1 = 2
p.param2 = 3
p.param3 = 4
nloptions = nlmpcmoveopt
nloptions.Parameters = {p} % <--- works without a problem with nlmpcmove
While implementing the controller on Simulink I have found that the parameters should be given using a "Bus Creator" which should be predefined in Matlab with createParameterBus. This doesn´t allow the use of "struct".
I tried encapsulating my structure in a cell array but to no avail. When using my structure as a constant to the bus creator I get the following error:
Invalid setting in 'Bus Creator1' for parameter 'OutDataTypeStr'.
Caused by:
Error evaluating properties of Simulink.Bus object 'busNPC_2' in workspace 'base' (used by block 'Bus Creator1')
Error evaluating DataType property.
Not enough input arguments.
Component:Simulink | Category:Block error
If I cannot use the structure I would have to pass the parameters separately to the functions (e.g. fun1(x,u, p1, p2, p3, p4, .......))
This would be rather bothersome and unappealing.
Any help/suggestions provided are really appreciated :)
4 comentarios
Osamah Ali Mohammed Saad
el 5 de Mzo. de 2024
Hi Eduardo,
Have you found a solution for this problem yet?
Respuesta aceptada
Emmanouil Tzorakoleftherakis
el 25 de En. de 2023
Please take a look at my answer here
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Linear Plant Specification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!