Har ni lust att hjälpa mig starta upp qpOASES? Det är ett C++ bibliotek men det finns en utbrytning som heter qpOASES_e där e står för embedded. Projektet är gjort i C.
https://projects.coin-or.org/qpOASES/
qpOASES är en QP-lösare och med en QP-lösare så kan man optimera in- och utsignaler för ett reglerobjekt. Exempelvis om ni ska värma ett hus så kanske insignalen kan endast vara 0-100 % och utsignalen är endast 15-25 grader C.
Resultatet man får med en QP-lösare är insignaler som anpassas mot verkligheten. Det kan t.ex vara att man eliminerar dötid, överskjut och svängningar och undantag. Samtidigt som man får det optimerat.
Jag har kollat lite i koden och försökt skriva om den så att man ska behöva bara köra den utan att installera koden. Mitt mål är att få qpOASES_e portabelt i projektform. Då kan jag bara lägga in den i t.ex Kiel, IAR eller Atollic och kompilera. Slippa länka för det vet jag inte hur man gör riktigt.
qpOASES_e hittar ni här
https://github.com/acados/qpOASES
Den minimerar en objektiv funktion med begränsningarna.
Kod: Markera allt
min 1/2*x'Hx + x'g
s.t. lb <= x <= ub
lbA <= Ax <= ubA
Obs. qpOASES_e använder malloc och free. Men man behöver bara anropa dom en gång till exempelvis vid uppstart. Ska nog inte skada. Den ska dock enligt tillverkarna ha så mycket statisk minne som det går.