-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Ve složce interface dělám simulink řešení toho rozhraní - v podstatě jsem vzal nějaké vnitřnosti těch simulink modelů od Quanseru a upravil je. Myslím, že rozhraní by fungovat mělo, bohužel to nemám jak otestovat. Simulink model má problém s EKF, odchází tam xhat do nekonečna. Pokud se do NLMPC hodí stav přímo ze simulace, tak to funguje. Je trochu otravné, že nemůžu použít ten objekt EKF, který jsem si vytvořil už v Matlabu - NLMPC to třeba umí (nebo přesněji to vyžaduje).
EDIT: U EKF je problém s measurement funkcí, není mi úplně jasné, jak dát tomu bloku najevo, že měřím stavové proměnné x1 a x3.
EDIT2: Už jsem to vyřešil, zadávání těch measurement funkcí je poměrně neintuitivní
Rozhraní je v tom oranžovém zakomentovaném modelu, až někde na druhé vrstvě subsystému - Quanser to tak měl. Jsou tam i nějaké kontroly proti nárazu - nastavení napětí na nulu, pokud je vozík daleko od středu. Ta Quanserovská je úplně v tom nejnižším subsystému, udělal jsem i jednu kontrolu v subsystému nad tím. Jinak to vypadá, že v x souřadnici je prostor tak v rozsahu -0.3m až 0.3m; můj NLMPC se roztahoval víc - přidal jsem tedy váhu na x souřadnici a už to docela zvládá. Explicitně MPCčku omezení x bohužel dát nemůžeme, strašně to zvyšuje výpočetní časy.