Matrisberäkningar med för STM32?
Matrisberäkningar med för STM32?
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.
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?
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?
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?
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?
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?
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.
Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?

Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?
Re: Matrisberäkningar med för STM32?
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.Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?
Re: Matrisberäkningar med för STM32?
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?
>> och gör det man villTomasL skrev: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.Dom är ganska dyra dessa kort. Kanske därför gamm C finns kvar?
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?
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.
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?
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:
Det som är viktigt för mig är:
- Multiplikation
Addition
Division
Substraktion
SVD
QR
Senast redigerad av Al_Bundy 8 januari 2019, 21:24:52, redigerad totalt 1 gång.
Re: Matrisberäkningar med för STM32?
er det inte alla språk?Al_Bundy skrev:>> och gör det man vill
Gäll
[/quote]
Nej, i Pyton exempelvis har du en massa processer du inte kan konmtrollera
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.Al_Bundy skrev: >> dvs kod som är effektiv
Gäller det inte alla vektoriserade språk? Python är ett vektoriserat språk.
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
Senast redigerad av TomasL 8 januari 2019, 21:43:56, redigerad totalt 1 gång.
Re: Matrisberäkningar med för STM32?
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?
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?
Det är GNU Scientific Library. Ett enormt stort C-bibliotek för numeriska beräkningar.
Re: Matrisberäkningar med för STM32?
Jag som inte förstår så mycket av det här, vad är det för "bibliotek" ni talar om hela tiden?