Simulink optimization 사용시, optimization 중인 Parameter A,B 간의 상호관계를 줄 수 있는지 여부
2 views (last 30 days)
Show older comments
Yeong-Beom Jo
on 12 Jul 2023
Answered: Jongil Lee
on 12 Jul 2023
Simulink optimization 사용시, Optimization을 하려는 대상 Parameter들은 현재 숫자로 된 Min,MAX 제한치만 입력이 가능합니다.
저희가 하고 싶은 일은 Parameter A, Paraemeter B 간의 상하 관계를 설정하고자 합니다.
Parameter A< B 인 값을 항상 찾아야 하도록 값을 설정하고 싶습니다.
여기서 A는
(X1 X2) 로 된 테이블 데이터 이며,
B 는
(X1 X3)으로 된 테이블 데이터 입니다.
이 둘간의 관계를 만들고, 이에 따라 Parameter Optimization이 가능한(Simulink 시스템) Solution이 Matlab에 존재하나요?
0 Comments
Accepted Answer
HyunGwang Cho
on 12 Jul 2023
시뮬링크는 아니지만 도움이 될까해서 올려봅니다.
아마 시뮬링크에서도 비슷한 방식으로 시도해보시면 될듯 합니다.
매트랩에서 fmincon 으로 최적화를 할 때 inequality constrain 를 줄 수 있습니다.
최적화 하는 파라미터가 3개의 숫자일 때 ( x = [x1, x2, x3] 와 같은 상황 ) x1 < x2 로 제약을 걸 수 있습니다.
아래는 예시 코드입니다.
% objective function
problem.objective = @objfun;
% initial guess
problem.x0 = [1, 2, 3];
% lower, upper bound
problem.lb = [0, 0, 0];
problem.ub = [10, 10, 10];
% inequality constraint (A*x <= b)
problem.Aineq = [1,-1,0];
problem.bineq = 0;
% option
problem.options = optimoptions(@fmincon, ...
'Algorithm','sqp', ...
'Display', 'iter');
problem.solver = 'fmincon';
% run optimization
[x,fopt] = fmincon(problem);
코드에서 inequality constraint 부분에 들어간 [1, -1, 0] 과 0 은
1*x1 + -1*x2 + 0*x3 <= 0 이런 의미 입니다.
시뮬링크에서도 이렇게 inequality constraint 를 적용하여 최적화를 수행하는 방법을 찾아보시면 될듯 합니다.
0 Comments
More Answers (1)
Jongil Lee
on 12 Jul 2023
안녕하세요, 복잡한 관계를 가지는 두 변수(Table) 들에 관한 최적화는 MBC(Model-Based Calibration) Toolbox를 활용하면 효과적으로 진행할 수 있습니다.
엔진이나 모터와 같이 여러개의 Table 들의 관계를 규정하고 최적화 하는데 적합한 제품으로 활용됩니다.
0 Comments
See Also
Categories
Find more on Optimization Toolbox 시작하기 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!