Nejaka pokrocila nahrada PID
https://github.com/Boyyt357/DC-Motor-Servo-Converter
ADRC
- petr-kubac
- Příspěvky: 205
- Registrován: 24 úno 2013, 14:43
- Bydliště: Prostřední Suchá
- Kontaktovat uživatele:
Re: ADRC
Vy matfyzáci byste ADRC neboli "active disturbance rejection control" - měli trošku teoreticky prozkoumat, protože mně - matematickému imbecilovi - se zdá, že (marketingové) kecy na začátku zmiňují, že metoda je převratně jiná a výrazně lepší, ale vzorečky na konci se mi zdají podezřele podobné PID.
Už to někdo z robotiků prakticky zkoušel ?
Už to někdo z robotiků prakticky zkoušel ?
"The best computer language is a solder" - "Nejlepší programovací jazyk je pájka" - Bob Pease
Re: ADRC
Já na první kouknutí došel k tomu co píše Petr - bude to chtít nějakou kapacitu, která to dokáže prozkoumat více 
"all your robots are belong to us"
robodoupe.cz
robodoupe.cz
Re: ADRC
Podle mě je celá chytrost v tom, že na rozdíl od PID to používá nelineární funkce. Ale přijde mi dost podezřelé, že by to fungovalo na skoro jakýkoliv systém, o němž skoro nic nevím bez nějakého "tunění" parametrů. Četl jsem o tom jen na wiki, kde je popis dost vágní, ale předpokládám, že tam nějaké háčky budou - nemusím sice hledat optimální PID parametry (které se mohou s časem měnit), ale asi bude třeba tipnout správné nelineární funkce, což dává ještě nekonečnější výběr.
Re: ADRC
Omlouvám se že se ze mě stává jeden z "těchhle lidí" co na všechno hodí AI, ale tady je shrnutí toho repozitáře
:
Co tento kód je
Lineární ADRC (LADRC) řízení serva pro ESP32-S3 s enkodérem AS5600. Jádro (runADRC(), V2.5.ino:126) využívá rozšířený stavový pozorovatel (ESO) 3. řádu, který pouze z polohy odhaduje polohu (z1), rychlost (z2) a souhrnnou poruchu (z3). PD zákon pak poruchu přímo kompenzuje:ADRC vs PIDKód: Vybrat vše
u = (kp*(cíl-z1) - kd*z2 - z3) / b0
Tvrzení o „samoladění"
- PID reaguje na chybu (P), nasčítanou chybu (I) a sklon chyby (D). Zátěž/offset kompenzuje pomalu přes integrátor a derivuje zašuměnou měřenou chybu.
- ADRC odhaduje poruchu (z3) v reálném čase a přímo ji odečítá — žádné přebuzení integrátoru, rychlejší potlačení měnící se zátěže a využití hlazené rychlosti z pozorovatele. Jeho tři parametry (ωc = tuhost, ωo = rychlost pozorovatele, b0 = zisk motoru) jsou fyzikálnější a méně provázané než Kp/Ki/Kd.
Kód se sám neladí. Prošel jsem všechny soubory — žádná rutina pro automatické ladění ani učení neexistuje. Webové rozhraní má ruční textová pole pro ωc, ωo a b0, která vyplňujete sami.
Co je reálné a co se nejspíš volně označuje jako „samoladění": z3 průběžně přeodhaduje zátěž/tření při ~500 Hz, takže se řízení samo přizpůsobuje poruchám bez nutnosti přeladění. To je skutečné — ale jde o potlačení poruch, ne o ladění parametrů. Skutečné samoladění by si samo upravovalo ωc/ωo/b0; toto ne. Navíc b0 se zadává plně ručně a celé schéma závisí na jeho správném nastavení — další známka, že jde o ruční ladění.
Závěr: rozdíl ADRC vs PID je reálný a správně implementovaný; „samoladění" je nadsázka pro to, co je ve skutečnosti online přizpůsobování se poruchám.
Re: ADRC
Jako zdejší připodotýkatel se k tomu ochotně vyjádřím; mě to totiž dost zaujalo, takže jsem si stáhnul tři relevantní články a za dlouhých letních večerů si je čtu.
Jak jsem to pochopil, základní myšlenka je, že PID je lineární, takže když systém není lineární, dá se čekat, že to nebude úplně dobrý. Navíc pro PID potřebuju znát matematický model chování systému, abych byl schopný správně nastavit ty tři koeficienty. PID je klasická cesta pro řízení se zpětnou vazbou, rutinně používaná už řadu let nebo spíš řadu století (formálně popsaná kolem 1920, ale reálné použití je mnohem starší a že to je vlastně PID, se ukazovalo zpětně), takže v praxi asi nejrozšířenější (v době vzniku ADRC prý přes 90%). Nelineární způsoby řízení taky už nějak existují, ale jak tomu rozumím, buď to převádí na lineární řízení, anebo taky potřebujou ten matematický model. Takže co s tím, když systém není lineární a/nebo ten model nemám nebo aspoň ne moc dobrý?
Celé to kolem r. 1990 dal dohromady J. Han, který se profesně dlouhé roky řídícími systémy (a dalšími souvisejícími obory) zabýval a chtěl udělat něco, co by pomohlo překonat ty dvě inherentní vlastnosti PID. Prý nechtěl PID nahradit, ale přidat něco, co by se chovalo líp v situacích, kde si PID z principu nemusí vést dobře. Zdá se, že měl dost rozsáhlé výsledky, jenže on žil v Číně a řadu let o tom publikoval jen v Číně čínsky, první článek anglicky je z r. 2001.
Tady jsou dva obrázky, nahoře PID, dole ADRC. Rozdíl jasně vidíte:
Jak jsem to pochopil, základní myšlenka je, že PID je lineární, takže když systém není lineární, dá se čekat, že to nebude úplně dobrý. Navíc pro PID potřebuju znát matematický model chování systému, abych byl schopný správně nastavit ty tři koeficienty. PID je klasická cesta pro řízení se zpětnou vazbou, rutinně používaná už řadu let nebo spíš řadu století (formálně popsaná kolem 1920, ale reálné použití je mnohem starší a že to je vlastně PID, se ukazovalo zpětně), takže v praxi asi nejrozšířenější (v době vzniku ADRC prý přes 90%). Nelineární způsoby řízení taky už nějak existují, ale jak tomu rozumím, buď to převádí na lineární řízení, anebo taky potřebujou ten matematický model. Takže co s tím, když systém není lineární a/nebo ten model nemám nebo aspoň ne moc dobrý?
Celé to kolem r. 1990 dal dohromady J. Han, který se profesně dlouhé roky řídícími systémy (a dalšími souvisejícími obory) zabýval a chtěl udělat něco, co by pomohlo překonat ty dvě inherentní vlastnosti PID. Prý nechtěl PID nahradit, ale přidat něco, co by se chovalo líp v situacích, kde si PID z principu nemusí vést dobře. Zdá se, že měl dost rozsáhlé výsledky, jenže on žil v Číně a řadu let o tom publikoval jen v Číně čínsky, první článek anglicky je z r. 2001.
Tady jsou dva obrázky, nahoře PID, dole ADRC. Rozdíl jasně vidíte:
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
- petr-kubac
- Příspěvky: 205
- Registrován: 24 úno 2013, 14:43
- Bydliště: Prostřední Suchá
- Kontaktovat uživatele:
Re: ADRC
Davide - to je skvělé
Mohl bych na konec tvého čtení poprosit o shrnující článeček pro Robodoupě ?
Ono už PID řízení - je (na mé schopnosti) docela složitá matematika a disciplíny výrazně závislé na PID ( třeba pořádné ježdění po čáře) - to jsou orgie - obtížně řešitelných - diferenciálních rovníc.
ERGO - článeček o ADRC - považuju za základní osvětu - asi jako když jsem před 20 lety - vám programátorům - nutil filtrační kondenzátory ke každému integrovanému obvodu a ke každému motoru.
Mohl bych na konec tvého čtení poprosit o shrnující článeček pro Robodoupě ?
Ono už PID řízení - je (na mé schopnosti) docela složitá matematika a disciplíny výrazně závislé na PID ( třeba pořádné ježdění po čáře) - to jsou orgie - obtížně řešitelných - diferenciálních rovníc.
ERGO - článeček o ADRC - považuju za základní osvětu - asi jako když jsem před 20 lety - vám programátorům - nutil filtrační kondenzátory ke každému integrovanému obvodu a ke každému motoru.
"The best computer language is a solder" - "Nejlepší programovací jazyk je pájka" - Bob Pease