Följer vindflöjel

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17616
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

stroben är en ok signal från pulsgivaren, när den är aktiv så läser man av koden, det kan ju bli fel just i övergången mellan dom olika lägena på grund av optik och likande

mycket lättare att förklara visuellt, ska kolla om man hittar något på nätet, njet. inget lätt på goggle i varje fall
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Vet Du vad graykod är? Jag tror inte det.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17616
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

jag vet vad greykode är, gillar binärkodat bättre då man slipper omvandlingen

har inte byggt någon greykodskiva och nu när du säger det så ska det ändras bara en bit åt gången så bör man slippa stroben

bara funderar på det, för alla maskinenkodrar jag jobbat med har varit inkrementella eller binärkodade

fungerar det i praktiken att köra utan stobe eller måste man ha hög noggranhet på enkoderskivan?

edit, glömde, gillar binärkodade för att man kan se direkt på lysdioder på ingångskorten vilket läge dom är i , det kan jag inte på greykod

stroben brukar även annvändas för låsning när den är på exakt mitt på encodern, inget som behövs i detta fallet
Användarvisningsbild
AndLi
Inlägg: 18315
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

Jobbade på ett företag som utvecklade en vindmätare, där satt tre givare i en triangel i horisontalplan, och i mitten av denna, ca 10 cm ner satt en givare till.

Teorin var att man skulle få ut vindriktning i XYZ så att säga..

Problemet var att givarkropparna störde vinden så mycket att vindhastigheten blev olika beroende på vinkel..

Mättekniken var en blandning av fas och time of flight (lite pga att ljudhastigheten ändrade sig mer än en period...
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Såg att det fanns 3-axliga vindmätare också för ett antal år sedan, Företaget i fråga hade dessutom lite teroi med ekvationer som förklarde hur det hela fungerad, inte så krångligt teoretiskt, men som vanligt är det praktiska utförande som är värsta att få till. De använde ultraljud och mätte ljudhastigheten mellan enheterna och med vind så fick man olika hastigheter i olika riktiningar och den vägen räkna fram både vinkel och vindhastighet..


När det gäller vridskivor och pottar för att klara den klassiska 'hoppet' mellan max och minvärde utan buggar i alla lägen (buggar som många även sk. proffesionella apparater gör allt för ofta och det blir tokspel...), är att man tar mätvärdena, vare sig det är anlogt potetiometervärde, binär eller graykod och gör om från polär form till rektangulär/kartetisk form och arbeta därifrån, i den världen har man inga skarpa värdehopp utan värden framräknade med sin() och cos() rör sig mjukt i alla lägen - givetvis transformerar man fram och tillbaka mellan retagulär och polär presentation beroende på vad man vill visa och beräkna - men precis som miniräknaren hp42S så bör alla värden sparas i retagulär form internt för att bibehålla högsta möjliga precision, men med ett tillägg, att också räkna varv då retagulär presentation inte kan inkludera värden över 2PI (360 grader) omfång.

En variant om jag funderat på är att göra skiva som är nästan svart i ena sidan för att tona jämt till nästan genomskinlig på andra sidan och med optogafflar 90 grader monterat och med analog avläsning från fototransistorsidan på så sätt få ut en närmast steglös absolutvinkel med hjälp av sinus och cosinussatserna. - när ena optogaffelvärden knapp rör sig när den är inom ljusa eller mörka sidan så rör sig värdena maximalt på den andra optogaffeln 90 grader ifrån och vice versa - på så sätt kan man alltid få fram en vinkelposition och en ev rörelseriktning mellan två sampel. presentationen är i retangulär form redan från givaren istället för det som folk är vana vid med potentiometer och i polär form.

Kan tänkas att fotogafflar från skrotade servomotorstyrda bläcksprutor (läs HP, men modernare stegmotorfria från epson och lexmark med synliga streckband kan också fungera) fungerar då dessa har väldigt smala slitsar för att passa till sina sträckband och sträckskivor. även givare från kulmöss kan fungera - dock med villkoret att man kan läsa ut värdet analogt från fototrissan..

Vill man göra sådan med hög upplösning så kan jag tänka mig den enkla toningen längre in på skivan med sitt optogaffelpar och efter perferin så har man en remsa toning modulerad i sinusform i 8 eller 16 tårtbitar etc. och med eget par optokopplare med 90-grader förflyttningen inom sinus-gråskalans period. Arragemanget motsvarar då en utväxling sas.

Med den enkla toningen längre in på skiva kan man säga vilken tårtbit man är på och sinuskurvan efter perferin ger den riktigt höga upplösningen på vinkeln. På det sättet med fyra optogafflar och fyra A/D-ingångar kan man skapa en absolutvisande vinkelgivare med riktigt hög upplösning, om man lyckas göra skivan bra...


---


Hmm... det är nästan som att man skulle prova Idèn genom att ta en klar skiva från en DVD-cake-box - köpa hem bladgelatin, blöta och smälta, hälla i varm i en blomsppruta och därefter duscha på ett tunt lager på den klara kalla DVD-skivan - låta torka (gör flera när man ändå håller på - det blir säkert många prov) - använd en smula vätmedel för fotobruk i gelatinet för säkerhets skull...

- Gelatinet är nödvändigt för att få bläcket att sitta kvar på skivan med hög upplösning - precis som de dyrare blanka bläcksprutarpapprerna - man kan iofs. prova utan gelatinet, men tror knapp det fungerar pga. skivans ytspänning gentemot bläcket.

Därefter använder man PIXMA 4000:s CD-skrivarfacilitet och skrivet ut dessa preparerade klara DVD-skivan via Gimp och skript-fu-tillverkade högupplösningsbilden i 1200-2400 dpi med rätta toningarna över skivans yta och perferi (tar säker en natt bara att tillverka bilden...).

Med Microcontroller så kan man sampla alla värden medans skivan sakta snurras runt med sina optogafflar på rätt plats och på så sätt mäter in den faktiska genomlysningen när det varierar mellan nästa ogenomskinligt till nästan helt genomskinligt, linejariseras till önskad värde och sparas i tabell eller polynom etc. etc. för senare användning.

Det är när man gör mätningarna här som man kan uppskatta den möjliga vikelupplösningen då tillverkningen av skivans toning är det svåra i projektet.

------------------

Hmm. Undras vad en sådan bygge skulle kunna ge i upplösning, om man väl försökte sig på detta ???


- I slutändan så har man förståss bekymmret att göra det hela vädersäkert, men det är ett annat problem..


/Xxargs
Användarvisningsbild
Stuggi
Inlägg: 887
Blev medlem: 4 december 2005, 00:09:51
Ort: Jakobstad, Finland
Kontakt:

Inlägg av Stuggi »

Skulle det inte gå med en varvtalsgivare, dvs. en sådan där som ger ett visst antal pulser per varv?
Användarvisningsbild
Minus
EF Sponsor
Inlägg: 416
Blev medlem: 6 oktober 2004, 11:19:16
Ort: Umeå

Inlägg av Minus »

AOE har haft en konstruktion där man använde tungelement o en magnet men klart de lär ju inte hålla i all evighet men är ju en enkel lösning


sedan finns en variant av vindmätare där man sätter en extra vinge på en av de tre skålar man ser på de vanliga vindmätare och man läser av den extra knuff denna vinge får och får på så vis fram vindriktningen med hjälv av vindhastighetsmätaren enbart.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Tungelement är iofs. väldigt hållbara och tål väldigt många brytoperationer om den inte drivs fel (tex laster som är induktivt/kapacitiva och/eller för mycket ström), men gör man fel så kan dessa klibba ihop på väldigt kort tid.

hallelement är också alternativ, men båda lösningarna kräver många pinnars I/O-till processorn även om man nöjer sig med 8 eller 16 lägen.


pulsivare fungerar om man på något sätt kan reseta systemet eller tvinga vrida flöjen till ett bestämt utgångsläge eller förbi en nolllägesgivare för hand, med relä, servomotor etc. fantasifull metod alternativt vänta på till flöjen passerar denna någon gång, då får man en referenspunkt att utgå ifrån i beräkningarna, vilket givetvis också kan appliceras på all insammlad data innan. - dock ingen bra metod om man har bråttom (typiskt vid utvecklingdfasen...) och inte kan/vill klättra upp till flöjen och ge den en dask så att den gör en svängom eller två vid varje omstart....

Pulsgivaren måsta vara tvåfas med 90-graders förskjutning - dvs samma typ som optogaffel och hålskiva som finns i en kul-mus.

slaktar man en kulmus lagom mycket så kan man använda all elektronik som den är inklusive interface mot datorn, och kanske använda en musknapp till nollägessensorn.

optisk mus är jag dock mer tveksam till även om man ha mönstrat hjul som den får läsa av, jag tycker mig se tendens till att optiska möss kan hoppa och glida då och då i användningen och sådant beteende är oacceptabelt i den här typen av applikationer
Användarvisningsbild
prototypen
Inlägg: 11105
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Inlägg av prototypen »

Xargas Lugna dig lite, problemet var; hur går man från 15 till 0 utan en 337,5 graders sväng. Graykodare tillverkar jag (5 bits) denna är linjär med 75 mm slaglängd, Sharps läsgafflar läser av kodskivan (min är rak) och den gör jag av 0,5 mm mönsterkortslaminat som jag etsar som vanligt.

Som du skriver går det inte med inkremental, flippar det ur så kan det ta en evighet innan det synkar.

Men hur får man det att klara sig förbi nolläget utan att göra en piruett?

Prototypen
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Rak?

Tolkar jag rätt att din flöjel inte kan snurra runt fritt - det är ju ett villkor då flöjen annars kan hänga sig mot fysikaliska spärren förr eller senare...

Mot det fins det inge algoritm eller matematik i världen som kan kompensera detta.

Du måste ha en givare på rund skiva som kan gå från 15 - 0 eller 0 - 15 den kortaste vägen (dvs. kan snurra fritt hur många varv som helst i valfri riktning)

En regel till är att samplingen måste gå så pass snabbt att flöjen aldrig hinner vrida sig mer än 180 grade mellan två samplingar - i ditt fall inte mer än 157.5 grader för att vara säker, även vid kastvindar - om du skall räkna hur många grader det vrider mellan två samplingar samt riktning. annars får du alias-effekt och felräkning med omvänd riktning.

Här är det Nyqvist och sampelteoremet igen som spökar och går heller inte att komma runt.


---

Det klassiska är nog att räkna steg och riktning, dvs så länge du stegar uppåt i din gray så adderar du en register med i ditt fall 22.5, nedåt så subraherar du. här får du ha en regel som säger att passagen 15-0 är ett steg upp - alltså +22,5 grader och 0-15 är ett steg ned, alltså -22.5 grader


För större hopp mellan samplen så får du nog använda modulo så att du får wrappningen rätt upp eller ned.

---

ett annat sätt där man inte behöver stånga sin logiska hjärna med modulo-operationer vara eller ickevara men kräver flyttalsbiblotek och komplex support är att räkna i komplexa domänen - två exempel fram och bak över '0'-punkten

tex. två sampel på 11.25 grader resp. 348.75 grader ( mitten på läge '0' resp läge '15' på din gray-hjul)

skrivs med 1 - som är magnituden (belopp) och '1' eftersom vi kör med enhetscirkeln, samt vinkeln och det blir

1 |_ 11,25 grader och 1 |_ 348.75 grader (eller 1 |_ -11.25 grader)

(där |_ är ett försök till vinklesymbol)


I komplexa världen så adderar man vinklar genom att multiplicera talen och man subtraherar vinklar genom att utföra division mellan komplexa talen - och det fina med detta är att den bryr sig inte var på enhetstcirkeln man jobbar, men med ett villkor - aldrig lika eller över 180 grader per operation, då den bara ger den kortaste sträckan som svar och möjligen fel tecken (= riktning)

Men inom begränsningen med sampelteoremet ovan så är det ett ickeproblem.


med andra ord får man skillnaden mellan två sampel
med ovanstående siffror:

Sista sampeln Föregående samplen

1 |_ 11,25 / 1 |_ 348.75 = 1 |_ 22.5, dvs 22.5 grader framåt


1 |_ 348.75 / 1 |_ 11.25 = 1 |_ -22.5, dvs 22.5 grader bakåt


i kartetisk eller retangulär notation ser det ut så här:

'0.981 + i0.195' för 11.25 grader och tas fram med cos(11.25)=0.981 samt sin(11.25)= 0.195

och motsvarande för 348.75 grader med 0.981 - i0.195

och räkna fram differensen

0.981 + i0.195 / 0.981 + i0.195 = 0.924+i0.388

och får fram vinkeln med atan(0.388/0.924) = 22.5 grader

och bakåtrikning

0.981 - i0.195 / 0.981 + i0.195 = 0.924 -i0.388

och med atan(-0.388/0.924) = -22.25 grader


OK några komplexa räkneregler:

variabler:
prod = komplex resultat från multiplication
kvot = komplex resultat från komplex division
Z1 = komplex indata 1
Z2 = komplex indata 2
re = realdelen av komplexa talet
im =imaginära delen av komplexa talet

I talet '0.981 + i0.195' är '0.981' den rella delen och 'i0.195' imaginära delen, datorer och miniräknare jobbar alltid i den här notationen vid komplexa beräkningar - polär notation längre upp är bara en presentationsnotation för oss mäniskor och vid mer avancerad symbolisk matematik

komplex multiplikation:

prod.Re=Z1.Re*Z2.Re-Z1.Im*Z2.Im;
prod.Im:=Z1.Im*Z2.Re+Z1.Re*Z2.Im;


komplex division:

kvot.Re=(Z1.Re*Z2.Re+Z1.Im*Z2.Im)/(sqr(Z2.Re)+sqr(Z2.Im));
kvot.Im=(Z1.Im*Z2.Re-Z2.Im*Z1.Re)/(sqr(Z2.Re)+sqr(Z2.Im));

(hoppas det blev rätt - lätt att missa någon +/- tecken etc.)

---

Till sist vill du ha en miniräknarsimulator som räknar komplexa tal lika enkelt som vanliga tal så kan du prova 'free42' (sök i google)

det är en RPN-räknare, så du måste räkna enligt

1
enter
2
+

för 1+2=3

för att bygga ett komplext tal går man först 'orange knapp - mode' (+/-knappen) för att välja om man vill skriva i retangulärt eller polär mode samt ställer in deg,rad,grad (välj 'rect' och 'deg')

därefter bygger man komplexa talet '1+i2' med

1
enter
2
'orange knappen - complex' (STO-knappen)

och du har byggt dit komplexa tal '1+i2' i displayen

med modeknappen igen så kan du byta visning - polärt visar då '2.24 |_63 grader'

sedan räknar du med +-/* och alla matematiska funktioner precis som vanligt, den håller reda på när det är komplexa tal med i bilden och räknar rätt i alla lägen. även sqrt(-1) (dvs. '-1' och roten ur-knappen) ger givetvis 0+i1 eller 1 |_ 90 grader som svar och det är fasen inte många miniräkare som gör detta rätt 'out of box'
Användarvisningsbild
prototypen
Inlägg: 11105
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Inlägg av prototypen »

Tack xxargas, jag hängde väl med i det mesta men det är mer än 25 år sedan skolan och det har mest varit att få vanlig logik att fungera sedan dess.

Jag tillverkar (serieproduktion) en graykodare som är rak med 75 (3") slaglängd men det går att göra cirkulära skivor också.

Ingenting till flöjelprojektet är ännu gjort, frågan kom i fredags.

Prototypen
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Det är samma för mig, men iom att jag jobbar med RF, Smithchart komplexa impedanser etc. så har jag lyckats kommit ihåg detta och tom. fått djupare förståelse iom hands on på grejorna sas.

Har man dessutom hp42s-miniräknare och bara knacka ned uppgifterna istället för lösa ekvationerna som blir när man hanterar komplexa tal för hand och med enkel räknare, så gör det att man inte är rädd för dom här sakerna, som man annars undviker som pesten iom. böket och orutinen att få det att stämma. Man provar liksom inte 3-4 olika alternativ för att kolla om det verkar rimligt om det innebär 1/3-A4 med uträkningar var gång - om man inte har minräknare som just hanterar komplexa tal

- och tvärstopp brukar det bli när man skall försöka lösa komplexa kvadratrötter - nu en knapp bort på sagda miniräknare

---

Vad jag förstår så berörs inte längre komplexa tal alls i undervisningen förrän i högskolan.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Stötte på sidan jag skrev om i mitt tidigare inlägg Om någon skulle vara intresserad: http://www.microsyl.com/windsonic/windsonic.html
Skriv svar