Simulink optimization 사용시, optimization 중인 Parameter A,B 간의 상호관계를 줄 수 있는지 여부
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
HyunGwang Cho
2023년 7월 12일
시뮬링크는 아니지만 도움이 될까해서 올려봅니다.
아마 시뮬링크에서도 비슷한 방식으로 시도해보시면 될듯 합니다.
매트랩에서 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
추가 답변 (1개)
Jongil Lee
2023년 7월 12일
안녕하세요, 복잡한 관계를 가지는 두 변수(Table) 들에 관한 최적화는 MBC(Model-Based Calibration) Toolbox를 활용하면 효과적으로 진행할 수 있습니다.
엔진이나 모터와 같이 여러개의 Table 들의 관계를 규정하고 최적화 하는데 적합한 제품으로 활용됩니다.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Optimization Toolbox 시작하기에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!