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.
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.