Implement MPCC with ACADO Toolkit

이전에 정리해둔 2023-08-18-ImplementingMPCCwithACADO에서 Cost function이 acado를 사용하기에 맞지 않게 정리되었음.

CMPCC에서 아래와 같이 Quadratic form으로 정리하였다.

이러한 이유는 OSQP 솔버를 사용하기 때문이고, MPCC에서 reference trajectory에 해당하는 부분이 에 들어가 있었다.

ACADO 에서는 Code Generation Tool에서 아래 이미지에 표현된 것처럼 weighted -norm으로 Cost function이 구성된다.

실제 export 된 c 코드에서 reference state와 input을 에 넣어주어야 하기 때문에, CMPCC에서 정리해둔 것 처럼 Quadratic form으로 코드를 작성할 수 없었다.

그러면 위에 정리한 Cost function 중 2번째 줄까지 가져올 수 있다. 이렇게 되면 문제는 에 해당하는 부분이 가 되어 기존에 state로 두고자 하였던 으로 사용할 수 없게 된다.

굳이 표현해주자면 아래와 같이 바꿔줄 수 있을 것이다.

그러므로 acadoVariable의 reference 에 0을 넣어주어야 한다.