Is it possible to pass simulink NMPC parameters as struct?
조회 수: 6 (최근 30일)
이전 댓글 표시
Eduardo
2022년 11월 21일
댓글: Osamah Ali Mohammed Saad
2024년 3월 5일
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
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Plant Specification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!