-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MPC Swing-up #4
Comments
Doladil jsem vahy a uz swing-up zvlada i s +-12V a omezenim Xc na +-0.5. Priznam se vsak ze mi to pripada jako magie, musim se vice podivat na teorii. Taky mi přijde blbé že kontroler rozeznává mezi polohou pi a -pi -> když se zadá pi jako požadovaná poloha, tak umožňuje swing-up pouze counter-clockwise, přestože by clockwise z určité polohy bylo mnohem jednodušší.
Edit: Přidal jsem vizualizaci predikce kontroleru v každém vzorku dt. Docela mi to pomohlo pro ladění a pochopení fungování. |
Tak překvapivě se mi povedlo udělat ten nelineární MPC, který zvládá i swing-up. Kroky však počítá dost pomalu, zvlášť se kousá ve fázi kdy je kyvadlo v horizontální poloze. Taky limitaci vstupu (napětí na motor) jsem mu musel výrazně zvýšit na +- 25V, protože pro naši limitaci +- 12V asi potřebuje udělat na začátku několik kyvů, a na to mu nestačí prediction horizont. Překvapivě když se vstup vůbec neomezí a jediná limitace je poloha vozítka, tak se MPC naprosto podělá a začne posílat vstupy kolem 500V a dokonce prolomí omezení polohy vozítka.
Ve skriptu taky podvádím a MPCčku posílám stav přímo, místo abych používal estimátor; rozšířený KF mi na první pokus nefungoval tak jsem ho prozatím vynechal. Všechno je ve skriptu MPC_Controlled.m, taky jsem udělal skript visualizeData.m na vizualizaci výsledků po simulaci, která běží plynuleji než simulace která běží ve for smyčce se soustavou.
The text was updated successfully, but these errors were encountered: