Ja och nej. Gimbal lock är ett fysiskt OCH matematiskt fenomen. Fysiskt kan kardborre som delar samma axel orsaka ett lås, och matematiskt kan en representation av en fleraxlig rotation vara i ett tillstånd som är singular, beroende på hur det representeras och beräknas internt.
Normalt , vi diskuterar och tänker på flygplanets attityd intuitivt som uppsättning vinklar: rullning, tonhöjd och kurs. I matematiska kretsar är detta känt som en uppsättning eller 3-2-1 Euler-vinklar. Om du tittar på den tråkiga (eller spännande, om du är den typen av person) matematik, kan du se en vektormatrisekvation som hänför sig till förändringen i Euler-vinklar med en uppsättning vinkelhastigheter som anges i flygplanets ram, enligt gemensam konvention kallas dessa för p, q och r för rullhastighet, stigningshastighet respektive girhastighet. Hur dessa hastigheter påverkar vinkelförändringen beror på vinklarnas nuvarande tillstånd, t.ex. när flygplanet är uppåt kommer en kroppsram-girhastighet att ändra stigningsvinkeln. Matematiskt betyder detta att "tillståndsmatrisen" är tillståndsberoende och måste uppdateras kontinuerligt med den färskaste uppsättningen tillgängliga tillstånd. Varje uppsättning Euler-vinklar kommer att ha en uppsättning tillstånd som får tillståndsmatrisen att bli dåligt konditionerad, vilket resulterar i numerisk instabilitet vid dessa förhållanden. För uppsättningen vinklar med rullning-stigning sker detta när tonhöjden är + eller - 90 grader.
Det sätt som vi undviker singulariteter när vi skriver programvaran för en AHRS är att representera attityden i en icke-singular form. Detta görs genom att använda fler siffror för att skapa representationen och sedan lägga till begränsningar som bevarar unikhet. En cosinusmatris i 3x3 riktning (DCM) kan göra detta, den har begränsningar som gör att dess egenvärden ligger på en enhetscirkel i det komplexa planet. Min favoritrepresentation är dock en kvaternion som är begränsad till att ha enhetslängd. Kvaternionen kan tänkas på i termer av Eulers rotationssats. Det finns den Euler-killen igen, han måste ha varit ett slags geni. Hur som helst är tanken att du kan definiera en rotationsaxel med tre siffror och använda en fjärde för att representera en vinkel runt den axeln för att rotera. Detta ger dig ett system fritt från "matematiskt kardanlås" Tillståndsmatrisen förblir tillräckligt konditionerad under alla stater. Allt du behöver göra för att hålla saker vänliga är att normalisera kvaternionen då och då, och du har alltid ett "bakgrundstillstånd" som du kan översätta till flygvänliga Euler-vinklar.