Käyrän sijoittaminen pisteisiin

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Teren taasen!

Tavoitteena on sylinterimäisten kappaleiden keskiön määrittäminen käyttäen sylinteripinon korkeutta mittaavalla anturilla. Käytettäviä tietoja ovat mittausanturin paikka sekä mittaustulos. Mittaustaajuus on n.50Hz ja skannausnopeus on n.500mm/s, joten pelkästään maksimiarvon tallennus ei riitä tarkkuudessa.

Anturilta tuleva signaali muuttuu tosiaan 50Hz taajuudella ja muutoksenhetkinen anturin sijainti voidaan tallentaa aina samalla viiveellä. Tämä viive voidaan heposti kompensoida koska tämä on vakio.

Muistelen koulussa joskus tehdyn käyrän sijottamista pisteisiin. Jos yhden sylinterin osalta saadaan ulkokehältä esim. 4 mittaustulosta (neljä pistettä ympyrän kehältä) niin mitenkä näistä saa kätevästi laskettua sylinterin keskiön (ympyrän keskipisteen) paikan?

Sylinterin koko on tiedossa ennen mittausta.

Keskipisteen paikan laskenta tehdään ohjelmoitavalla logiigalla (Siemens S7) tai Assemblerilla käyttäen paikoitusohjaimen liikeohjainkorttia. Myös C-tyyppinen ohjelmointi on mahdollista.

Tämä tietty löytyy oppikirjoista mutta ajattelin josko jollakulla olisi asia tuoreemmassa muistissa...?

Sivut

Kommentit (20)

o_turunen
Seuraa 
Viestejä10607
Liittynyt16.3.2005

Voihan noista näytteistä tehdä jonon, ja muuntaa sen vaikkapa FFT:llä,
mutta ei taida olla paljon järkeä.
Yksinkertaisesti lasketaan keskiarvo 180 asteen välein saaduista näytteistä.
Tällöin saadaan x- ja y-koordinaatti.

Korant: Oikea fysiikka on oikeampaa kuin sinun klassinen mekaniikkasi.
Korant: Jos olet eri mieltä kanssani olet ilman muuta väärässä.

Vierailija

Kiitoksia vastauksesta!

En ihan täysin ymmärtänyt mitä tarkoitit keskiarvon laskennalla?
En ole itse tasoltani mikään matikkanero, lähinnä vain vaatimaton insinööri...

Laitapa jokin algoritmi mistä saataisiin vastauksena ympyrän keskipiste... Tästä pääsen kyllä helposti eteenpäin...

Oma vahvuuteni piilee lähinnä anturitekniikassa ja logiikkaohjelmoinnissa.

Vierailija

Taisipa käydä vanhanaikaisesti...

Koko ongelma selvisi tavaomaisella kolmion laskennalla...

Valitaan kaksi mittauspistettä, lasketaan niiden välinen etäisyys. Koska nämä pisteet ovat ympyrän kehällä, jonka säde tunnetaan niin saadaan kolmio, jonka kaksi pistettä sekä kaikki sivut tunnetaan.

Tästä voidaan helposti laskea sylinterin keskipiste.

Ei tarvita yläastematematiikkaa enempää...

o_turunen
Seuraa 
Viestejä10607
Liittynyt16.3.2005

Aseta sylinterisi pyörivälle pöydälle. Aseta mittakello ("heittokello") pöydän
viereen ja työnnä sen tökötin sylinterin kylkeen. Pyöritä sylinteriä, ja lue
kellon näyttämät 90 asteen välein. Kohtien 0 ja 180 näyttämien erotuksen
puolikas on poikkeama x-suunnassa ja kohtien 90 ja 270 näyttämien
erotuksen puolikas on poikkeama y-suunnassa.

Edellisessä viestissäni puhuin tuosta keskiarvosta harmittavan hatarasti.

Korant: Oikea fysiikka on oikeampaa kuin sinun klassinen mekaniikkasi.
Korant: Jos olet eri mieltä kanssani olet ilman muuta väärässä.

Vierailija

Tässä tapauksessa sylinteripinoa "skannataan" mittaavalla anturilla, joka liikkuu poikittaissuunnassa. Yksittäisiä sylintereitä ei voi liikuttaa eikä mittaushetkeä valita, Saadaan ainoastaan mittaustulos yhdeltä puolelta x -ja Y -suunnassa muutaman kerran yksittäisen sylinterin kohdalla. Näistä pitää voida päätellä yksittäisen sylinterin keskiö.

Toinen tapa olis edellisen "kolmiolaskennan" vaihtoehdoksi laskea kahden mittauspisteisiin asetetun, sylinterin kokoisen, ympyrän leikkauspisteet. Näistä valittaisiin alempi koska mittausanturi lukee yläpuolelta.

Tämä on kuitenkin hankalampi ohjelmoida kuin kolmioon perustuva menetelmä.

Vierailija

Ymprän yhtälö on x^^2+y^^2=r^^2, kun sen keskipisteenä on origo.

Kun muodostat yhtälön ympyrälle jonka keskipiste on (x,y) ja mitattu kehän koordinaatti (x1,y1), saat:

(x1-x)^^2+(y1-y)^^2=r^^2

Kun korvaat oikean puolen lausekkeella joka on R^^2 vastaavasti käyttäen pistettä (x2,y2) saat ensimmäisen kertaluvun yhtälön

x=y*(...........)

Käyttämällä muita pistepareja yhtälön muodostamiseen, esim [(x1,y1), (x3,y3)] ... saat yhtälöryhmän jonka voit ratkaista x:n ja ja sitten y:n suhteen.

Keskiarvon laskenta on mahdollista jos käytät eri yhtälöryhmiä, saat 2 tai 3 x:n ja y:n arvoa ja lasket niistä keskiarvon, tai mahdollisesti haluat pudottaa suurimman poikkeaman tuottavan pisteen pois... helppoa mutta ei enää hauskaa...

Jätän laskemisen ja sieventelyn sekä tietysti algoritmin koodaamisen sinulle koska todennäköisesti saat siitä palkan

Vierailija

No joo, korjataan nyt sitten ennenkuin joku muu ehtii...

saamasi riippuvuus x:n ja y:n välille on tietysti muotoa
x=y*(....)+(....) , eli
x=ay+b, jossa a ja b ovat (xn,yn) pisteistä tulevia x:n ja y:n arvoja

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005

Olen joskus hamassa menneisyydessäni ratkonut vastaavanlaisia sovitusongelmia. Siitä syystä olisin kiinnostunut tietämään, ovatko

- sylinterit suoria (so. sylinterin akseli kohtisuorassa mittausanturin tasoa vastaan)

- mittauspisteet joka puolelta sylintereitä

- sylinterien säteet tarkasti samoja ja tunnettuja.

Kaikki nämä vaikuttavat sitten valittavaan sovitusmenetelmään.

Kuukkeloin aihealuetta ja siitä näyttää löytyvän tekstiä varsin paljon. Osa tarinoista vaikutti tosin olevan melko teoreettisia.

Vanha jäärä

Vierailija
Vanha jäärä
Olen joskus hamassa menneisyydessäni ratkonut vastaavanlaisia sovitusongelmia. Siitä syystä olisin kiinnostunut tietämään, ovatko

- sylinterit suoria (so. sylinterin akseli kohtisuorassa mittausanturin tasoa vastaan)


Kyllä ovat

Vanha jäärä
- mittauspisteet joka puolelta sylintereitä



Mittauspisteet ovat ainoastaan suoraan yläpuolella, syliterit ovat pinossa ladottuna järjestelmällisesti kehikkoonsa.

Vanha jäärä
- sylinterien säteet tarkasti samoja ja tunnettuja.

Ovat samoja ja tunnettuja, eri kehikoissa erilaisia mutta kehikkokohtaisesti samoja ja tunnettuja.

Mutta kuten kerroin, tavallinen kolmion laskenta antaa keskiön helposti kahden mittauspisteen perusteella. Mittauspisteiden valinta on hieman työläämpi mutta täysin tehtävissä.

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
tomimk

Mutta kuten kerroin, tavallinen kolmion laskenta antaa keskiön helposti kahden mittauspisteen perusteella. Mittauspisteiden valinta on hieman työläämpi mutta täysin tehtävissä.

Mietin vain ratkaisua, jossa aina kolmen pisteen avulla määritettäisiin säde ja ympyrän keskipiste. Tällöin säteen arvon tarkkuus antaisi tietoa myös lähtöpisteiden pätevyydestä, eli mitä tarkempi säde, sitä tarkempi keskipiste. Laskemalla vielä parhaiden tulosten keskiarvo, niin keskipiste olisi todennäköisesti erittäin tarkka.

Tosin vain ympyrän säteen ratkaisusta kolmen pisteen avulla tulee tautisen pitkä kaava, jonka vektoreita käyttämällä saa ainakin muodollisesti lyhemmäksi.

Vanha jäärä

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
tomimk
Mittauspisteiden valinta on hieman työläämpi mutta täysin tehtävissä.

Jäi tuossa edellä sanomatta, että kolmen kehän pisteen avulla ympyrä saadaan kaikkein tarkimmin, kun pisteet muodostavat mahdollisimman suuren tasakylkisen kolmion.

En sitten tiedä, antaako mittausmenetelmäsi joka paikassa sylinterin kehällä saman tarkkuuden. Jos tarkkuus on erilainen eri paikoissa, niin määrityspisteiden sijainti tulee optimoida tämän mukaisesti.

Vanha jäärä

de Selby
Seuraa 
Viestejä1231
Liittynyt16.3.2005

Jos halkaisija ja paikoitus eivät ole aivan tarkassa tiedossa (eikö kappaleen mitoituksella ja kappaleen paikoituksella olekin yleensä jokin toleranssi...?) niin kolmella kehällä olevalta pisteeltä A,B ja C "piirretään" janat AB ja BC. Janan AB keskipisteen kautta kulkeva kohtisuora kulkee ympyrän keskipisteen kautta. Samoin janan BC keskipisteen kautta kulkeva kohtisuora. Kohtisuorien leikkauspiste siis = ympyrän keskipiste. Ja etäisyys ymp. keskipisteestä pisteisiin A, B, tai C tunnetusti = r.

[size=75:31c2abdr](btw:ei väliä vaikka kolmio ei olisi lähelläkään tasakylkistä)[/size:31c2abdr]

Gravity sucks.

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
de Selby

Jos halkaisija ja paikoitus eivät ole aivan tarkassa tiedossa (eikö kappaleen mitoituksella ja kappaleen paikoituksella olekin yleensä jokin toleranssi...?) niin kolmella kehällä olevalta pisteeltä A,B ja C "piirretään" janat AB ja BC. Janan AB keskipisteen kautta kulkeva kohtisuora kulkee ympyrän keskipisteen kautta. Samoin janan BC keskipisteen kautta kulkeva kohtisuora. Kohtisuorien leikkauspiste siis = ympyrän keskipiste. Ja etäisyys ymp. keskipisteestä pisteisiin A, B, tai C tunnetusti = r.



Noinhan se koulussa on opetettu.

de Selby
(btw:ei väliä vaikka kolmio ei olisi lähelläkään tasakylkistä)

Olen askarrellut erilaisten geometristen konstruktioiden kanssa sen verran, että väittäisin syystä, että asialla on väliä, jos tavoitellaan robustia ja tarkkaa, aina toimivaa ratkaisua.

Sillä taas ei ole taas väliä, tehdäänkö konstruktio harpilla ja viivottimella vai analyyttisen geometrian avulla. Tietysti saatu tarkkuus vaihtelee kertalukuja käytetyn menetelmän mukaisesti: harpilla ja viivottimella alle millin tarkkuus on hyvä; tietokoneohjelma antaa oikean tuloksen esimerkiksi 12 merkitsevällä numerolla.

Vanha jäärä

Vierailija

Ympyrän kehällä olevien pisteparien (A,B), (B,C), (A,C) yhdysjanojen keskipisteiden normaali (eli mitä edellä puhuttiin) on muotoa
x=ay+b tai toisin kirjoitettuna y=cx+d on sama asia kuin mihin ehdotin aiemmin analyyttistä menetelmää.

Lähdetpä ympyrän yhtälöstä tai kehän pisteiden yhdysjanojen normaaleista - Molemmilla tavoilla saat kaksi tai useampia samaa muotoa olevia yhtälöitä josta ratkaiset ensin toisen koordinaatin sitten toisen.

Toisin sanoen, kyse on ihan samanlaisesta ratkaisusta. molemmissa joudutaan käyttämään samoja operaattoreja joten koodauksen kannalta ne on samanarvoiset.

Jos sinulla on 3 pistettä saat kolme suoraa, 4:llä pisteellä saat 6 suoraa joiden kaikkien leikkauspisteet (kunkin kahden leikkauspiste) ovat kukin ehdokkaita keskipisteeksi. 3:n pisteen tapauksessa tulee aina kolme leikkauspistettä (kunhan mitkään kaksi mittauspistettä eivät ole sama piste). 4:n pisteen tapauksessa kaikilla mahdollisilla suorapareilla ei välttämättä ole leikkauspistettä koska ne saattavat olla samansuuntaiset (mittausvirheen vuoksi, tai leikkauspiste voi olla ympyrän ulkopuolella) tai suorat voivatkin olla sama suora joten 4:n pisteen tapaus antaa softalle vaatimuksen käsitellä "divide by zero"....

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005
Opa
Ympyrän kehällä olevien pisteparien (A,B), (B,C), (A,C) yhdysjanojen keskipisteiden normaali (eli mitä edellä puhuttiin) on muotoa
x=ay+b tai toisin kirjoitettuna y=cx+d on sama asia kuin mihin ehdotin aiemmin analyyttistä menetelmää.

Suorille kannattaa aina käyttää yhtälömuotoa

nx*x + ny*y - p = 0,

missä nx ja ny ovat yleensä normalistettuja suuntakosineja (eli nx^2 + ny^2 = 1), jolloin p esittää myös suoran minimietäisyyttä origosta (joko +- tai --merkkisenä, sen mukaan, mihin suoran normaali osoittaa).

Tämä suoran muoto on kaikkein yleisin, ja se sisältää myös koordinaattiakseleiden suuntaiset suorat, jotka ovat muutoin poikkeustapauksia.

Toisaalta en ymmärrä, miksi ei kannata suoraan käyttää kolmen pisteen kautta kulkevan ympyrän yhtälöä, jolloin jokaisesta kolmen pisteen yhdistelmästä saa arvot sekä keskipisteelle että säteelle. Tosin noiden suorien kautta taidetaan päätyä loppujen lopuksi samoihin yhtälöihin, nyt vain eri vaiheiden jälkeen.

Ratkaisu on esimerkiksi täällä:

http://mcraefamily.com/MathHelp/Geometr ... Points.htm

tai toinen ratkaisu hieman eri merkinnöillä:

http://planetmath.org/encyclopedia/Thre ... ircle.html

Vanha jäärä

Sivut

Uusimmat

Suosituimmat