Sida 1 av 70

Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 19:42:23
av Al_Bundy
Hej!

Jag undrar om det är någon här som har lyckas med matrisberäkningar för en STM32? Matrisberäkningar används för exempelvis reglerteori eller artificiell intelligens eller allmänna numeriska beräkningar.

Jag läser nu en artikel av Steve Brunton, som jag har kontakt med lite då och då. Han och hans kollegor har utvecklat en ny metod för att estimera olinjära reglersystem med hjälp av grundläggande linjär algebra.
https://epubs.siam.org/doi/pdf/10.1137/15M1013857

Därför tänkte jag fråga er om det finns möjligt att implementera matrisberäkningar för STM32? Självklart vet jag att CPU:n måste stödja flyttal, men sådant gör väll alla CPU:er idag?

Ett välkänt och beprövat bibliotek för allmänna vetenskapliga beräkningar för C är GNU Scientific Library (GSL)
https://www.gnu.org/software/gsl/doc/html/index.html

Jag hittade även ett bibliotek för matrisberäkningar för C hos Keil. Men det verkar vara ett rätt fattigt bibliotek som saknar det mesta för matrisberäkningar. https://www.keil.com/pack/doc/CMSIS/DSP ... atrix.html

Om ni undrar varför SVD kommer in i artikeln så handlar det att man kan lösa minsta kvadratmetoden med SVD för matriser, vilket betyder att man behöver inte kurvanpassa data mot någon funktion, vilket man brukar göra vid minsta kvadratmetoden.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:31:37
av jockwe
Det finns ju olika varianter av stm32, vissa med och vissa utan flyttalsprocessor. de utan kan fortfarande utföra flyttalsoperationer men rätt mycket långsammare.
Vilken stm32 använder du?
Vad är det specifikt för matrisberäkningar du saknar i keil biblioteket?

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:32:20
av Al_Bundy
Jag saknar SVD och QR-faktorisering.

Jag kör F401RE.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:36:20
av Sado
Inte provat själv så här kommer ett höftskott.

Det verkar finnas MicroPython till STM32 och det verkar finnas passande bibliotek för ändamålet (umatrix, ulinalg). Men du kanske inte är intresserad av att köra Python om det ens skulle vara möjligt?

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:45:11
av Al_Bundy
Jag fick reda på det idag att man kunde köra MicroPython på STM32. Ibland undrar jag varför folk hela tiden kör andra programmeringsspråk när Python verkar vara ett universalspråk som kan göra allt. :humm:

Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:51:08
av TomasL
Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?
Nej, C finns kvar eftersom det är nödvändigt när man skall göra tids och platsoptimerad kod, dvs kod som är effektiv och gör det man vill.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 20:52:49
av Sado
Ja, det går verkligen att göra "allt" i Python även om det inte passar i alla lägen. Det enda jag inte är bekväm med är GUI-design (TkInter osv) och paketering/distribution. Så länge jag sitter och kör själv på kommandorad och i miljön fungerar det utmärkt för mig.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:02:22
av Al_Bundy
TomasL skrev:
Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?
Nej, C finns kvar eftersom det är nödvändigt när man skall göra tids och platsoptimerad kod, dvs kod som är effektiv och gör det man vill.
>> och gör det man vill
Gäller det inte alla språk?

>> dvs kod som är effektiv
Gäller det inte alla vektoriserade språk? Python är ett vektoriserat språk.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:03:37
av mrfrenzy
Jag är själv en stor förespråkare för Python men i just detta fall, att göra matematiska beräkningar som ligger på gränsen till vad processorn orkar med skulle jag nog förespråka C. Förmodligen blir det bättre optimerat.

Om inte annat vore det en intressant jämförelse. Börja med att göra den i Python om du kan det, blir det för långsamt så gör om den i C och se ifall det går snabbare.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:20:32
av Al_Bundy
Jag vill helst göra det i C på en gång. Det är därför jag söker ett C-bibliotek som fungerar för inbyggda system.

Det som är viktigt för mig är:
  • Multiplikation
    Addition
    Division
    Substraktion
    SVD
    QR
Då känner jag att jag klara mig.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:23:33
av TomasL
Al_Bundy skrev:>> och gör det man vill
Gäll
er det inte alla språk?
[/quote]
Nej, i Pyton exempelvis har du en massa processer du inte kan konmtrollera
Al_Bundy skrev: >> dvs kod som är effektiv
Gäller det inte alla vektoriserade språk? Python är ett vektoriserat språk.
Spelar ingen roll huruvida språket är vektoriserat, eftersom python kräver en RTM, blir det per definition långsammar och mindre kodefektivt än till exempel C.

C kodar direkt tilolo assembler, sedan beror det på violken kompilator du har och hur mycket du betalt, hur effektiv koden skall bli.
I Python och andra interpreterandce språk, blir det rätt mycket annorlunda.

Som svar, vill du ha effektiv och snabb kod, använd C.
Vill du ha Bloatad och innefektiv kod, använd allt annat.

Alla C-bibliotek fungerar på alla system, oavsett om det är en PIC16 eller en i7-X64.

edit:fixat citeringstaggarna

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:26:28
av Al_Bundy
Okej! Tack :) Så jag kan i praktiken bara installera GSL och göra lite matrisberäkningar på min STM32? Självklart ska jag skaffa fetare STM32 där jag kan vara säker på att den hanterar talen rätt.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:29:05
av TomasL
Eftersom jag inte vet vad GSL är, så är det omöjligt att svara på den frågan

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:36:15
av Al_Bundy
Det är GNU Scientific Library. Ett enormt stort C-bibliotek för numeriska beräkningar.

Re: Matrisberäkningar med för STM32?

Postat: 8 januari 2019, 21:39:29
av säter
Jag som inte förstår så mycket av det här, vad är det för "bibliotek" ni talar om hela tiden?