Electrokit Buggfix Plus
Aktuellt datum och tid: 17.12 2019-03-18

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 1021 inlägg ]  Gå till sida 1, 2, 3, 4, 5 ... 69  Nästa
Författare Meddelande
InläggPostat: 19.42 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
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.


Upp
 Profil  
 
InläggPostat: 20.31 2019-01-08 

Blev medlem: 09.51 2009-02-24
Inlägg: 132
Ort: Göteborg
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?


Upp
 Profil  
 
InläggPostat: 20.32 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
Jag saknar SVD och QR-faktorisering.

Jag kör F401RE.


Upp
 Profil  
 
InläggPostat: 20.36 2019-01-08 

Blev medlem: 13.39 2007-04-06
Inlägg: 28
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?


Upp
 Profil  
 
InläggPostat: 20.45 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
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?


Upp
 Profil  
 
InläggPostat: 20.51 2019-01-08 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 31121
Ort: Borås
Citera:
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.


Upp
 Profil  
 
InläggPostat: 20.52 2019-01-08 

Blev medlem: 13.39 2007-04-06
Inlägg: 28
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.


Upp
 Profil  
 
InläggPostat: 21.02 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
TomasL skrev:
Citera:
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.


Upp
 Profil  
 
InläggPostat: 21.03 2019-01-08 
Co Admin
Användarvisningsbild

Blev medlem: 16.04 2006-04-16
Inlägg: 9509
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.


Upp
 Profil  
 
InläggPostat: 21.20 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
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.


Senast redigerad av Al_Bundy 21.24 2019-01-08, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 21.23 2019-01-08 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 31121
Ort: Borås
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


Senast redigerad av TomasL 21.43 2019-01-08, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 21.26 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
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.


Upp
 Profil  
 
InläggPostat: 21.29 2019-01-08 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 31121
Ort: Borås
Eftersom jag inte vet vad GSL är, så är det omöjligt att svara på den frågan


Upp
 Profil  
 
InläggPostat: 21.36 2019-01-08 
Användarvisningsbild

Blev medlem: 22.59 2012-09-11
Inlägg: 2796
Ort: The U.S - Chicago
Det är GNU Scientific Library. Ett enormt stort C-bibliotek för numeriska beräkningar.


Upp
 Profil  
 
InläggPostat: 21.39 2019-01-08 
Användarvisningsbild

Blev medlem: 21.16 2009-02-22
Inlägg: 15192
Ort: 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?


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 1021 inlägg ]  Gå till sida 1, 2, 3, 4, 5 ... 69  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 2 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010