Nu klampade han in på ett av mina områden, den gode Joakim.
PID brukar uttydas Proportionell, Integrerande och Deriverande.
Den regleråtgärd man utför är proportionell mot hur stort felet är, hur länge det varit fel och hur snabbt felet ändrar sig.
Om absolutbeloppet av skillnaden mellan är- och börvärden är tillräckligt litet gör man ingenting alls. Detta kallas dödband och är till för att inte skapa oro när man ändå är nästan rätt.
Motorstyrningar som körs med konventionell PID-reglering har ofta tre reglerloopar utanpå varandra - position, hastighet och moment. Men till de vanliga PID parametrarna lägger man ofta en eller flera feedforward, värden som framkopplas utan att gå genom reglerlooparna. Framkoppling kan man göra i mer än en reglerloop. Principen kan användas för att snabba upp inregleringen, då man direkt kopplar fram önskade värden innan felet har hunnit uppstå.
Canon skriver i sina white papers att Servo AF både är och inte är predikterande. Med predikterande menas att man framkopplar felet i fokusering, så att man redan nu, när du trycker ner avtryckaren, kan se hur stort felet kommer att bli, när bilden tas, och då köra AF-motorn dit med en gång. Det är som när du kör bil och trycker på gasen innan du kommer till en backe, för du inser redan nu att det kommer att behövas. Men om AF algoritmen kommer fram till att motivet står still, eller i alla fall tillräckligt still, bryr den sig inte om att aktivera denna prediktering, utan nöjer sig med att ett antal gånger i sekunden uppdatera objektivets position enligt vad AF sensorn ger signal om.
Förmodligen gör de så för att få bättre stabilitet med Servo AF vid långsamma rörelser.
Detta är alltså inget jag mätt upp eller sett, utan det står i Canons tekniska beskrivningar.
Till skillnad från i en del motorstyrningsfall kan man inte veta var ett motiv tänker ta vägen, när man sitter som konstruktör och ska programmera AF-algoritmen. I motorstyrningssammanhang har man nytta av den gamla iakttagelsen att kroppar som sätts i rörelse tenderar att förbli i rörelse. Men i en kamera är det ju inget som säger att det som nyss rörde sig mot kameran, och som kamerans AF försökte följa, gör det i nästa ögonblick. Den rackarns fotografen kan ju låta AF-punkten glida över på något som går på andra hållet. Den stackars kameran måste då bestämma sig för hur länge den ska fortsätta att tro att motivet kommer hitåt, innan den ger upp och ska börja jaga ikapp det nya motivet, som då tydligen rör sig på andra hållet.
Rotationströghetsmoment i motorstyrningssammanhang hindrar alltför våldsamma sådana ändringar. Dessutom kan man ibland ta nytta av att man har repetitiva förlopp, som ändrar sig likadant vid varje varv. En plötslig ökning av momentbehovet, som motsvarar att man lika plötsligt byter från ett motiv som rör sig i en riktning till en annan, blir mycket lättare att hantera om man vet att momentbehovsökningen återkommer vid varje varv på lasten. Sådana knep används i en del maskiner som jag varit med om att konstruera, för att hålla nere följefelet under gång. Ett annat knep man kan ta till är att byta reglerparametrar under gång, beroende på något, exempelvis hastigheten. Både jag och Canon har tydligen använt den utvägen, eftersom de skriver att en funktion som predikteringen av motivets hastighet kopplas in och ur beroende på omständigheterna.
Att jag har gjort så vet jag själv!
Varför nu detta pladder om motorstyrningar i ett kameraforum?
Ja, bortsett från att det var Joakim som började, så är en del av de problem man möter identiska. Den stora utmaningen för en kameras AF-system är att man ska följa något som kan ändras med ljusets hastighet, nämligen det ljus som kommer till kameran, med något som är mekaniskt och har begränsad hastighet.
Så länge fotografen klarar av att peka ut ett detekterbart föremål med en rimlig massa är det inte så svårt, men just det faktum att man kan darra omkring så fokuspunkten ger oregelbunden feedback, eller rent av råka peka på något som inte alls är den del av motivet som rör på sig, gör det mycket svårare att konstruera algoritmer som är tillräckligt aggressiva för att följa med i snabba svängar men ändå tillräckligt stabila för att inte försöka följa sånt som inte finns. Då blir det spökjakt.
En annan komplikation är att kameran, med dagens konstruktion, inte har någon möjlighet att se hur resultatet blir. Det hamnar på filmen eller sensorn, där det är mer eller mindre oåtkomligt för AF-logiken. Därför finns det ingen möjlighet att införa något slags adaption eller offset, som skulle kunna utvärderas automatiskt och efterhand ge allt bättre precision. I maskiner jag gjort har jag exempelvis funktioner där jag ansätter en viss reglerparametrering, kör med den och låter maskinen själv observera resultatet. Genom att då se om det blev bra, eller för lite eller för mycket, justerar jag parametrarna (kanske en förändring av framkopplingen, om PID-loopen är sund i sig själv) för att lyckas bättre nästa gång.
I mitt fall handlar det ofta om mångaxliga system, som är betydligt mycket mer komplicerade än ett AF-system i en kamera. Men just bristen på information i kameran begränsar möjligheterna att göra något vettigt åt de begränsningar vi har. Egentligen borde man ju reglera in fokus så att det blir rätt i bilden, men hur den blir vet vi inte förrän det är så dags, när det redan är tagen. Om vi inte ger oss på kontrastavkännande fokus direkt på sensorn, och alla som testat den typen av fokus i live view vet ju hur bra det kan bli. Men inte speciellt snabbt.
Bättre vore en kombination av fasdetekteringens snabbhet och kontrastdetekteringens noggrannhet. Men förhoppningsvis finns det ju kunnigare människor än jag som sitter och funderar på detta hos kameratillverkarna, så det kommer säkert bättre system med tiden.
Ovanpå problemet att försöka beräkna vad det egentligen är som förväntas av kamerans AF-system ska man dessutom dras med en högst normal motorstyrning, med sina begränsningar, som ska driva objektivets inställningssnäcka till rätt läge.
Egentligen är det mer märkligt att det blir rätt någon gång alls än att det blir fel ibland.