Sida 1 av 3
Matteproblem
Postat: 20 oktober 2004, 13:18:51
av Frippe
Hej på er alla smarta snillen.
Jag håller på med ett litet projekt för en sjökortssimulator.
Jag själv är ju aktiv inom sjöräddningen i Sverige och har på min station fått en förfrågan om jag inte kan göra en simulatorstation där vi kan öva sök och samband.
Min tanke är att ha en liten låda med en PIC16F877A, knappsats samt en LCD för att kunna ange positioner på olika fartyg enl. AIS systemet, dvs. Fartygs ID, position, kurs, fart m.m.
Sedan skall jag köra över datan från simulatorenheten via en serieport till ett sjökortsprogram i en PC (Liknande NMEA protokollet)
Meningen är att man skall ange ett fartygsid och startposition och sedan kunna ställa in fart samt kurs och då skall PIC räkna ut en ny position en gång varannan sekund.
Men hur räknar jag ut positionen?
Just det ja.... (jag skäms nästan för att säga det,

jag kör picbasic

)
// Fredrik
Postat: 20 oktober 2004, 13:26:55
av matseng
Hoppas att picbasic har cos() och sin()-funktioner eftersom du kommer att behövs dessa för att räkna om från en vinkel och hastighet till delta-X och delta-Y (diff i latitud/longitud).
Postat: 20 oktober 2004, 15:30:11
av Frippe
Man får tacka för ett snabbt svar.
Jo då, picbasic har cos() och sin()-funktioner, men jag är ju inget mattesnille tyvärr

Postat: 20 oktober 2004, 15:51:37
av matseng
Som ingångsvärden har du ju X och Y -koordinater och hastighet (m/s) och vinkel (grader 0-359).
Om du utför detta en gång per sekund och mäter hastigheten i meter per sekund så kommer Xändring och Yändring att att innehålla det antal meter som båten har flyttat sig under den sekunden.
Xändring = Hastighet * COS( (Vinkel * PI) / 180)
Yändring = Hastighet * SIN( (Vinkel * PI) / 180)
Sedan så får du konvertera latitud och longitud till en meterposition räknat från lat 0 lon 0. Lägga på ändringarna och konvertera tillbaka till riktig latitud och longitud igen.
Postat: 20 oktober 2004, 16:55:30
av Frippe
Man tackar för svaret. Nu skall jag bara sätta mig o kolla på en bra funktion för att konvertera llatitud och longitud till meterposition och få till en bra räknare för att hålla koll på tiden.
Jag misstänker jag måste sätta mig in i hur interrupts funkar.
(Det är nu det roliga börjar)
// Fredrik
Postat: 20 oktober 2004, 18:08:28
av $tiff
för att göra saken änn jobbigare så är cos/sin i PICBasic angivet i "B-RAD". dv.s. löper från -128 till 127 radianer. Därför måste man konvertera grader till "b-rads" också.
De trigonometriska funktionerna lär väl sluka en hel del minne, eftersom de är uppbyggda av maffiga tabeller, eller har jag fel här?
Postat: 20 oktober 2004, 19:10:20
av MicaelKarlsson
$tiff>> Vad sägs om Taylor-serier? (fast då har man säkert andra fallgropar att ramla i

)
Postat: 20 oktober 2004, 21:10:18
av Henkan
Observera att 0 grader är mot norr inte mot öster, antar jag...
Detta ger att sin byts mot cos och tvärtom, se ex nedan.
X,Y = aktuell position (meter)
H = hastighet (m/s)
K_gra = kurs (0-360 grader där 0/360 är mot norr, 90 mot öster, 180 mot söder och 270 mot väster)
distans = H*2 (2 = varannan sekund)
K_rad = K_gra*pi/180 (sin och cos anges oftast i radianer)
X = X + sin(K_rad)*distans (ny X position)
Y = Y + cos(K_rad)*distans (ny Y position)
Postat: 20 oktober 2004, 22:46:58
av danei
De här beräkningarna stämmer bara om du är på ekvatorn. Det går att fixa till med en konstan så att det stämmer hyfsat även på andra platser. Men då bara omkring den position som man har kompenserat för.
Postat: 21 oktober 2004, 00:01:33
av matseng
Så varför detta? Tänker du på att jorden inte är perfekt sfärisk?
Postat: 21 oktober 2004, 00:51:57
av danei
Nä. Vad jag menar är att jorden inte är platt. Mer än lokalt sett. Så det går att få det att funka lokalt.
Postat: 21 oktober 2004, 01:01:48
av matseng
Varför blir det då olika kompenseringar beroende på vad man befinner sig?
Postat: 21 oktober 2004, 01:08:54
av danei
Därför att rutnätet på en jordglob inte har fyrkantiga rutor mer än vid ekvatorn.
Förflyttar man sig en grad åt väster är det olika långt beroende på om man är vid ekvatorn eller i sverige.
Postat: 21 oktober 2004, 07:53:38
av matseng
!!! Citat Lorry: 'Att jag inte tänkte på det!'
Här är någon som haft typ samma problem och frågat på Experts-Exchange. Det kan vara en bra punkt att börja gräva utifrån.
http://www.experts-exchange.com/Miscell ... 64650.html
Postat: 21 oktober 2004, 08:52:43
av Frippe
Detta var ju inte det enklaste ju.
Skickar en
liten länk.
Där står att det inte går att omvandla mellan olika format. Så detta projektet är det noga bara att lägga ner tyvärr.