Astronomska skupina Fakultete za matematiko in fiziko Univerze v Ljubljani
Teleskop Vega

Meritev 18.01.2008 konstante prestava korak/sek

 OS visina
 HP frekvenca f=1000Hz, semplano na gps triger 
 mikrosteping 4000 koraki/obrat

 fit  [*:*][*:*]  a*x+b  '/home/vega/vega_mem-meritevv.log' using 1:4 via a,b 	   
  a*3600/1000 = 0.0733662
                0.07325568
                0.0732564

 meritev:
 a = 0.0203795 +/- 6.911e-08    (0.0003391%)
 a = 0.0203488 +/- 4.001e-08    (0.0001966%)
 a = 0.020349  +/- 5.255e-08  

 OS azimut
 mikrosteping 4000 koraki/obrat

 fit [100:*][*:*]  a*x+b  '/home/vega/vega_mem-meriteva.log' using 1:3 via a,b  

 a = 0.0157859  +/- 1.146e-08    (7.261e-05%)

Nove konstante

=cpp #define AZIMUT_KORAK 0.05683464 #define VISINA_KORAK 0.07325568

odstopanje od linearnosti

odstopanje od linearnosti, visinska os: v locnih sekundah, na x osi je visina v [koraki/1000]

odstopanje od linearnosti, azimutna os: v locnih sekundah, na x osi je azimut v [koraki/1000]

Preizkus servo sistema, pozicioniranje

Nastavitve konstant =cpp /* teleskop */ #define AZIMUT_KORAK 0.113664 // +/- 5.317e-07 korak v locnih sekundah #define VISINA_KORAK 0.143239 // +/- 4.77e-06 #define TAU_A 103 // konstanta za servo popravek #define TAU_H 103 // isto za visino #define BETA_A 0.93 // konstanta za servo popravek #define BETA_H 0.93 // za premik 0.93,103 kriticno duseno za premik #define MAXFREQ 64000 // najvecja dovoljena frekvenca motorjev cca 2st/s #define MAX_FREQ_INC 130.0 // najvecji inkrement v frekvenci v 20ms

Preizkus servo sistema AZIMUT premik azimut 200->160->270->90 stopinj

Y os v stopinjah, X je cas v sekundah.

Servo algoritem

=cpp void Tservo::get_coo() { /* preberem kote */ A_now = encoderAzimut->dCurrentValue; H_now = encoderVisina->dCurrentValue; ... /* izracunam razliko */ A_delta = A_now - A_target; H_delta = H_now - H_target; A_error = A_error*BETA_A + A_delta; // akumulirana napaka v stopinjah H_error = H_error*BETA_H + H_delta; .... } void Tservo::update_servo() { /* servo algoritem za teleskop */ if(is_servo==1){ /* sledenje servo povratna vez, obicano */ H_frek = H_pika - H_error * SEC_PER_DEG / VISINA_KORAK / TAU_H; A_frek = A_pika - A_error * SEC_PER_DEG / AZIMUT_KORAK / TAU_A; } else { /* sledenje brez servo, za kontrolo */ H_frek = H_pika ; A_frek = A_pika ; } /* sestavi in odposlje komande */ kon->SetFreq(VISINA,H_frek); kon->SetFreq(AZIMUT,A_frek); ... kon->mic->send_all(); } bd

Zadnja sprememba 18.04.2008 09:26 UTC
© Copyright 2004-2022
B.Dintinjana
Univerza v Ljubljani, F M F
Pot na Golovec 25
1000 Ljubljana, Slovenija