Hur kan jag få tag på prestandaversionen av Nucleo?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av Lennart Aspenryd »

Ett bra och ärligt sätt att få respons på sina tankar är ju att lägga ut en viss problemställning.
Det finns alltid lösningar, men Tid Pengar och allmänna Resurser kan ställa till det.
Så Upp till bevis Lägg ut problem och lösning. Jag antar att TomasL inte vill släppa sina egna regleringar, men exempel på del lösningar kan vara sevärda! Samma för dig DanielM ! Ge konkreta exempel!
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

TomasL bluffar nog lite.

Men visst ska jag ge ett gott exempel! Här är ett problem som löste. Adaptiv PI-regulator. Nu börjar många säkert yra "För avancerat". Men lyssna nu noga :)

Vi alla vet att en PI-regulator kan beskrivas lite enkelt på formeln:
\(u(t) = Pe(t) + I \int e(t)\)

Där \(P, I\) väljs utav användaren. En PI-regulator används oftast för att D-delen kan ställa till det vid brus, eller om man har dålig intepolering.

Detta är en Adaptive Model Reference Control regulator. I praktiken en självinställande PI-regulator. Ja, den fungerar.
\(u(t) = -\gamma r(t) \int(r(t)y(t) - r^2(t)) - \gamma y(t)\int(y^2(t) - y(t)r(t))\)

Där \(\gamma\) är ett litet tal t.ex. 0.0001. Det är inlärningsfaktorn. Hemligheten bakom detta är att man "konverterar" om "P":et till ett "I" där P:et växer grundat på hur långt ifrån vi ligger från felet och I:et växer grundat på hur starkt felet är, dock inte hur långt det är från referensen.

Om man känner för det så kan man seriekoppla en överföringsfunktion tillsammans med \(r(t)\)
Senast redigerad av DanielM 2 december 2019, 23:30:23, redigerad totalt 2 gånger.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

TomasL bluffar nog lite.
Varför skulle jag bluffa, och vad skulle jag bluffa om?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

Vore intressant att veta hur du hanterar slumpmässiga störningar, av slumpmässig storlek och slumpmässig längd och slumpmässiga i tid. Dvs reglera ett system där ditt ärvärde i princip är vitt brus.

Eftersom Ditt system kräver en noggrant definierad modell (dvs inte slumpmässig), och inlärning (det går per definition inte att lära ett system baserat på slumpmässiga förändringar).
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

TomasL skrev:
TomasL bluffar nog lite.
Varför skulle jag bluffa, och vad skulle jag bluffa om?
Du verkar mystiskt hemlighetsfull och du var inte medveten om att brus finns i verkligheten, men du var snabb på att hänvisa att du har lång arbetserfarenhet och du förkastar andras metoder utan att ens veta vad diskussionen handlar om.

Vitt brus är något som alla känner till som håller på med signaler. Jag gav dig även ett praktiskt sätt där man kan räkna på det vita bruset. Jag klandrar inte folk som inte kan allt. Men jag får misstankar att du gillar gärna att blåsa upp dig lite. Jag vet att du är duktig och har enorm kompetens, men skryt märks faktiskt. :)
TomasL skrev:Vore intressant att veta hur du hanterar slumpmässiga störningar, av slumpmässig storlek och slumpmässig längd och slumpmässiga i tid. Dvs reglera ett system där ditt ärvärde i princip är vitt brus.

Eftersom Ditt system kräver en noggrant definierad modell (dvs inte slumpmässig), och inlärning (det går per definition inte att lära ett system baserat på slumpmässiga förändringar).
Jag brukar framkoppla störningar som stör processen. I eventuellt identifiera om processen. Märker jag att störningen har en fix dödtid så brukar jag sätta in en medveten fördröjning.

Japp! Det går att lära på slumpmässiga signaler. Det är väldigt svårt och kräver mycket data. Men LSTM-nätverk används för "forecasting" och då kan du skapa en modell som räknar fram att "snart" så kommer störningen tillbaka. LSTM-nätverk används först och främst vid skrivning av text på google, men används mycket väl inom aktiemarknaden. Jag har dock inte stött på stokastiska processer än. Närmast är väll en LQG med kalman filter. Men enklaste att styra en process som utsätts slumpmässig störning är att identifiera om processen.

För att bygga ett LSTM-nätverk så krävs t.ex. kunskaper i Java, statistik (regression) och Deeplearning4J.
http://deeplearning4j.org/

Det jag håller på med är deterministiska processer som är linjära inom visst område (0-100 grader t.ex.), men dom behöver den där automatiska intrimmningen. Det kan vara en PID eller så kan det vara det jag beskrev ovan. :tumupp:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

Nja, jag tror du inte riktigt fattat, det går inte förutse slumpmässiga störningar, på grund av att de är just slumpmässiga, det går ej heller att förutse storleken på störningarna eftersom även den är slumpmässig, samt att det inte går att förutse längden på störningen, eftersom den också är slumpmässig.
Följaktligen är det fullständigt omöjligt att lära ett system utifrån detta.

Om du då som du säger filtrerar bort det vita bruset, ja, då har du ingen signal kvar, eftersom signalen är just vitt brus (i princip), dvs slumpmässiga störningar av slumpmässig magnitud med slumpmässig längd.
Du verkar mystiskt hemlighetsfull och du var inte medveten om att brus finns i verkligheten, men du var snabb på att hänvisa att du har lång arbetserfarenhet och du förkastar andras metoder utan att ens veta vad diskussionen handlar om.
Hmm, my bad, jag tolkade det som ett påhopp, dvs att jag har vitt brus i skallen, vilket jag iofs har, eftersom jag tänker i "multipla dimensioner", typ. :wink:
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

Jag vet att det går inte till 100% att prediktera. Annars vore aktiemarknaden kaos(are). Men desto mer mätdata man har, desto närmare kommer man. Det är detta som är tanken med LSTM. Men som jag sade, enklaste är att omdefiniera rekrusivt systemet för varje iteration och reglera, trots störningar.

Har man "superfilter" (jag kallar det för det) så har man ingen signal kvar. Fasförskjutningen i filtret blir enorm och förstärkningen blir låg. Det är korrekt. Det är därför man använder estimering för brus. Ett kalman filter är ett klassiskt och väl beprövad metod för att estimera. Så jag brukar lägga till ett kalman filter när jag har störningar i mätningen. Har du en modell av systemet så kan du använda ett Bucy-Kalman filter. Sådant filter fungerar riktigt bra om processen är någorlunda linjär. Dessutom väldigt robust då filtret är enkelt.

Det har helt uppenbart att vi talade om signaler. Påhopp är något som du håller på med "Typiskt för inkompetenta programmerare", " lär dig skriva program eller byt bransh", "huruvida man skriver skitkod eller inte", "visar hur okunnig du är" osv.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

Aktiemarknaden har inte något slumpmässigt beteende, utan är snarare väldigt förutsägbar, följaktligen relativt enkel att modellera.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

Har man mycket data, som jag sade ovan, så kommer man väldigt nära.

Regression är enormt kraftfullt! Jag använder regression dagligen.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

Det kvittar hur mycket data du har, slumpmässigt är just slumpmässigt, det är först när du har en oändlig mängd data över en oändligt lång tid, som du kan börja tolka rätt.
Ta spel exempelvis, det finns av naturliga skäl inga system som kan förutspå vinster i slumpspel, såsom Lotto mfl, oavsett hur mycket data det finns.
I spel såsom Trav mm kan du med viss lycka förutspå utgången, med hjälp av statistik och data.

Så nej du klarar inte av dessa reglerproblem med ditt system.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

Har du ens hörtalas som sannolikhet? Det går att komma väldigt nära, men inte exakt. Varför tror du det forskas otroligt mycket inom sannolikhetsläran?

Vad vet du om det? Du verkar veta allt, det du inte ens har sett. Skärpning nu.
Användarvisningsbild
maDa
Inlägg: 4073
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av maDa »

Som att slå i ett spik med kärnvapen.
svanted
Inlägg: 5082
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av svanted »

ett märkligt bråk i diffusa termer...
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av DanielM »

Bara så ni vet det så funderar jag på att ta TomasL's råd att ändra om float till long :) Eller uint32_t med andra ord.

Jag hoppas det ska gå bra att bara ersätta floats med heltalsberäkning? Inget annat jag behöver ta hänsyn till?
Jag tänker använda typedef.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Inlägg av TomasL »

För att det skall vara effektivt, så behöver du skala om dina data på lämpligt sätt, samt fundera på hur matematiken ser ut, dvs utnyttja processorn till det maximala, dvs använda skiftoperationer i stället för division och multiplikation osv.
Du kan helt enkelt inte bara ta det befintliga och typedefa dina floats till heltal, det funkar inte.
Skriv svar