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

Porocila.Servo1 History

Hide minor edits - Show changes to markup

18.04.2008 11:26 CEST by bd -
Deleted line 94:
18.04.2008 11:26 CEST by bd -
Added line 95:
18.01.2008 13:45 CET by bd -
Changed line 26 from:
  1. define AZIMUT_KORAK 0.05682924
to:
  1. define AZIMUT_KORAK 0.05683464
18.01.2008 13:40 CET by bd -
Changed lines 5-7 from:
to:
 mikrosteping 4000 koraki/obrat

 fit  [*:*][*:*]  a*x+b  '/home/vega/vega_mem-meritevv.log' using 1:4 via a,b 	   
Changed lines 17-32 from:

odstopanje od linearnosti:

to:
 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

#define	AZIMUT_KORAK	0.05682924
#define VISINA_KORAK    0.07325568

odstopanje od linearnosti

Changed lines 34-35 from:

v locnih sekundah, na x osi je visina v koraki/1000

to:

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]

18.01.2008 13:26 CET by bd -
Deleted line 15:
Changed lines 17-18 from:
to:

v locnih sekundah, na x osi je visina v koraki/1000

18.01.2008 13:24 CET by bd -
Added lines 1-19:

Meritev 18.01.2008 konstante prestava korak/sek

 OS visina
 HP frekvenca f=1000Hz, semplano na gps triger 

  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  

odstopanje od linearnosti:

23.12.2004 10:43 CET by bd -
Changed line 54 from:

=]

to:

=]bd

21.12.2004 13:33 CET by bojan -
Deleted lines 53-78:

int Tkontroler::SetFreq?(int axis, double f ) {

	long double ftw;
	if (fabs(f-OutFreq?[axis]) > MAX_FREQ_INC)
	{
		if((f-OutFreq?[axis])>0.0)
			f = OutFreq?[axis] + MAX_FREQ_INC;
		else
			f = OutFreq?[axis] - MAX_FREQ_INC;
	}
	if(fabs(f) > MAXFREQ)
		if(f>0.0)
			f = MAXFREQ;
		else
			f = -1.0 * MAXFREQ;
	OutFreq?[axis] = f;
	if(f>0.0)
		SetDir?(axis,-1);
	else
		SetDir?(axis,1);
	f = fabs(f);
	ftw = (long double) f * 28147497.6710656;
	frequeny_tuning[axis] = (uint64_t) ftw;
	return 0;

}

21.12.2004 13:32 CET by bojan -
Added lines 54-79:

int Tkontroler::SetFreq?(int axis, double f ) {

	long double ftw;
	if (fabs(f-OutFreq?[axis]) > MAX_FREQ_INC)
	{
		if((f-OutFreq?[axis])>0.0)
			f = OutFreq?[axis] + MAX_FREQ_INC;
		else
			f = OutFreq?[axis] - MAX_FREQ_INC;
	}
	if(fabs(f) > MAXFREQ)
		if(f>0.0)
			f = MAXFREQ;
		else
			f = -1.0 * MAXFREQ;
	OutFreq?[axis] = f;
	if(f>0.0)
		SetDir?(axis,-1);
	else
		SetDir?(axis,1);
	f = fabs(f);
	ftw = (long double) f * 28147497.6710656;
	frequeny_tuning[axis] = (uint64_t) ftw;
	return 0;

}

21.12.2004 13:26 CET by bojan -
Changed line 16 from:

Preizkus servo sistema AZIMUT premik azimut

to:

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

21.12.2004 13:25 CET by bojan -
Changed line 16 from:

Preizkus servo sistema AZIMUT

to:

Preizkus servo sistema AZIMUT premik azimut

21.12.2004 13:16 CET by bojan -
Changed line 22 from:

void Tservo::update_servo()

to:

void Tservo::get_coo()

Added lines 24-36:
	/* 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() {

21.12.2004 13:12 CET by bojan -
Added lines 19-41:

Servo algoritem

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();
}
20.12.2004 14:19 CET by bojan -
Changed line 18 from:

Y os v stopinjah, X v sekundah

to:

Y os v stopinjah, X je cas v sekundah.

20.12.2004 14:18 CET by 193.2.110.229 -
Changed line 18 from:
to:

Y os v stopinjah, X v sekundah

20.12.2004 14:16 CET by 193.2.110.229 -
Changed lines 1-3 from:

Nastavitve konstant

to:

Preizkus servo sistema, pozicioniranje

Nastavitve konstant

Changed lines 6-11 from:
  1. define AZIMUT_KORAK 0.113664 // +/- 5.317e-07 korak v locnih sekundah
  2. define VISINA_KORAK 0.143239 // +/- 4.77e-06
  3. define TAU_A 103 // konstanta za servo popravek
  4. define TAU_H 103 //
  5. define BETA_A 0.93 // konstanta za servo popravek
  6. define BETA_H 0.93 // za premik 0.93,103 kriticno duseno za premik
to:
  1. define AZIMUT_KORAK 0.113664 // +/- 5.317e-07 korak v locnih sekundah
  2. define VISINA_KORAK 0.143239 // +/- 4.77e-06
  3. define TAU_A 103 // konstanta za servo popravek
  4. define TAU_H 103 // isto za visino
  5. define BETA_A 0.93 // konstanta za servo popravek
  6. define BETA_H 0.93 // za premik 0.93,103 kriticno duseno za premik
Changed line 13 from:
  1. define MAX_FREQ_INC 130.0 // najvecji inkrement v frekvenci
to:
  1. define MAX_FREQ_INC 130.0 // najvecji inkrement v frekvenci v 20ms
20.12.2004 14:14 CET by 193.2.110.229 -
Changed lines 15-16 from:
to:
20.12.2004 14:10 CET by bojan -
Added lines 13-15:

Preizkus servo sistema AZIMUT Attach::azimut-ok-1.pbm Δ

20.12.2004 14:09 CET by bojan -
Changed line 1 from:

Nastavitve konstant

to:

Nastavitve konstant

Deleted line 2:
Changed lines 4-5 from:

//#define AZIMUT_KORAK 0.113688 // +/- 0.00000373 korak v locnih sekundah

  1. define AZIMUT_KORAK 0.113664 // +/- 5.317e-07
to:
  1. define AZIMUT_KORAK 0.113664 // +/- 5.317e-07 korak v locnih sekundah
Deleted lines 5-6:

//#define VISINA_KORAK 0.177608 // +/- 0.0000384

Changed lines 8-14 from:
  1. define BETA_A 0.93 // konstanta za servo popravek
  2. define BETA_H 0.93 // za premik 0.93,103 kriticno duseno za premik
									// za sledenje 0.99 180 nic boljse
									//             0.99 300 isto
  1. define MAXFREQ 64000 // najvecja dovoljena frekvenca motorjev cca 2st/s
to:
  1. define BETA_A 0.93 // konstanta za servo popravek
  2. define BETA_H 0.93 // za premik 0.93,103 kriticno duseno za premik
  3. define MAXFREQ 64000 // najvecja dovoljena frekvenca motorjev cca 2st/s
20.12.2004 14:07 CET by bojan -
Added lines 1-20:

Nastavitve konstant

<:vspace>
/* teleskop */
//#define	AZIMUT_KORAK	0.113688 //    +/- 0.00000373 korak v locnih sekundah
#define	AZIMUT_KORAK	0.113664     //    +/- 5.317e-07
#define VISINA_KORAK	0.143239     //    +/- 4.77e-06
//#define VISINA_KORAK    0.177608   //    +/- 0.0000384
<:vspace>
#define TAU_A		   103       // konstanta za servo popravek
#define TAU_H		   103       //
<:vspace>
#define BETA_A			0.93       // konstanta za servo popravek
#define BETA_H			0.93       // za premik 0.93,103 kriticno duseno za premik
// za sledenje 0.99 180 nic boljse
//             0.99 300 isto
<:vspace>
#define MAXFREQ			64000	   // najvecja dovoljena frekvenca motorjev cca 2st/s
#define MAX_FREQ_INC	130.0      // najvecji inkrement v frekvenci
Zadnja sprememba 18.04.2008 11:26 CEST
© Copyright 2004-2017
B.Dintinjana
Univerza v Ljubljani, F M F
Pot na Golovec 25
1000 Ljubljana, Slovenija