Visst kan man implementera detta i min STM32? Jag använder F401RE modellen.
https://www.gnu.org/software/gsl/doc/html/index.html
Detta bibliotek är rent C bibliotek. Om den fungera för inbyggda system vet jag inte. Men jag vet att den har SVD-funktion, vilket man kan göra både Observer Kalman Filter och Eigensystem Realization. Dessa två algoritmer är utmärkta för systemidentifiering då dessa kräver:
1. Lite data till skillnad från annat
2. Inga intrimningsparametrar
Enkelt förklarat kan man säga att om vi har lite dötid + PWM till en matematisk modell:
Kod: Markera allt
>> G = tf(1, [1 2 3]); % Matematisk modell;
>> [u,t] = gensig('square', 3, 10, 50);
>> y = lsim(G, u, t);
Skärmbild från 2019-01-06 17-40-25.png
Nu har vi både y som är utgång, u som är ingång och t som är tidsvariabeln.
Om vi stoppar in dessa i Observer Kalman Filter Identification algoritmen. Egentligen är inte denna rad den faktiska algoritm. Denna algoritm är den teoretiska då den praktiska är mer invecklad för att den praktiska algoritmen applicerades på gamla system från 80-talet. Medan den här kan kan användas enkelt i en enda rad för datorerna idag är mycket mer kraftfullare.
Då får vi markov-parametrarna, vilket betyder impulssvar.
Om jag simulerar min modell, med ett impulssvar och jämför sedan med markov-parametrarna.
Kod: Markera allt
u2 = u*0; % Vi nollställer en ny insignalsvektor
>> u2(1) = 1; % Vi gör om u2 till en impulsvektor.
>> y2 = lsim(G, u2, t); % Nu simulerar vi
Då får vi vårat impulssvar.
Skärmbild från 2019-01-06 17-48-02.png
Sedan jämför vi det med markovparametrarna.
Vilket ger exakt samma resultat som impulssvaret. Varför är impulssvaret viktigt? Jo! För eigensystem realization vill ha ett impulssvar för att kunna räkna fram den matematiska modellen. Men ett impussvar så kan man få reda på exakt allt! Höjd, dämpning, insvägning...ja allt!
Skärmbild från 2019-01-06 17-46-41.png
Då återkommer vi till att om vi kan kvadratiskt programmera en sådan modell i en uC igenom att använda en förenklad kvadratisk programmerare som endast kan ha hänsyn till signalmättning.
Då är min fråga till er:
1. Kan man använda GNU Scientific library i STM32
2. Klarar STM32, iallafall min uC av att beräkna matriser och flyttal på en snabb nivå?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.