//###################################################
//##### ТЕЛЕАВТОГИД ПАВЛА БАХТИНОВА ##############
//Квадранты маркера телеавтогида
//V0 - левый верхний - ports.adc(2)
//V1 - правый верхний - ports.adc(3)
//V2 - левый нижний - ports.adc(4)
//V3 - правый нижний - ports.adc(5)
//###################################################
int dec_korr,dec_an;
long alt_korr,c;
float t,Int_Err_RA,Int_Err_Dec,Diff_Err_RA,Diff_Err_Dec,
Ik_RA,Dk_RA,Ik_DEC,Dk_DEC,Err_Last_Dec,Err_Last_Ra,jarkost,
prop_Ra,prop_Dec;
function speedkorrektur()
{int schnell,langsam;string ss;float dec_err,ra_err;
c=c+1;
jarkost=(3000.0-(ports.adc(2)+ports.adc(3)+ports.adc(4)+ports.adc(5)))*0.01;
if dec_an==0{// вручную от кнопок (телегид выключен).
if not pcf.get(9,0) ports.set(12,-1);else ports.set(12,0);//приподнимаемся
if not pcf.get(9,2) ports.set(13,-1);else ports.set(13,0);//приопускаемся
}
prop_Dec=((ports.adc(4)+ports.adc(5))-(ports.adc(2)+ports.adc(3)))*var.Pk_Dec*0.2;
Int_Err_Dec=-((Int_Err_Dec+var.DEC_Korr)/c)*Ik_DEC*0.2;//
Diff_Err_Dec=(Diff_Err_Dec-Err_Last_Dec)*Dk_DEC*0.1;
//эта переменная вычисляет значение коррекции по оси DEC от телеавтогида
var.DEC_Korr=(prop_Dec+Int_Err_Dec+Diff_Err_Dec)/jarkost;
Err_Last_Dec=var.DEC_Korr;
if dec_an==1{//коррекция положения по высоте
// вручную от кнопок или от уровня аналогово сигнала телегида
// переменную var.dec_tor настраиваем с пульта.
if not pcf.get(9,0)or var.DEC_Korr<-var.dec_tor
ports.set(12,-1);else ports.set(12,0);//приподнимаемся
if not pcf.get(9,2)or var.DEC_Korr>=+var.dec_tor
ports.set(13,-1);else ports.set(13,0);//приопускаемся
}
// RA коррекция вручную от кнопок
if not pcf.get(9,3) schnell=-600;else schnell=190;//ускоряемся.
if not pcf.get(9,1) langsam=600;else langsam=0;//замедляемся.
prop_Ra=((ports.adc(3)+ports.adc(5))-(ports.adc(2)+ports.adc(4)))*var.Pk_Ra*0.2;
Int_Err_RA=-((Int_Err_RA+var.RA_Korr)/c)*Ik_RA*0.1;//
Diff_Err_RA=(Diff_Err_RA-Err_Last_Ra)*Dk_RA*0.1;
//Формула 1, Формула 2 ... а хрен его знает какая тут нужна Формула
//эта переменная вычисляет значение коррекции по оси RA от телеавтогида
var.RA_Korr=(prop_Ra + Int_Err_RA + Diff_Err_RA)/jarkost;
Err_Last_Ra=var.RA_Korr;
var.speed = var.RA_Korr + schnell + langsam + ports.adc(0)/2;//коррекция скорости по азимуту
plm.out(0,var.speed);
//здесь загоняем значения переменных через Com1 в Гипертерминал
//для последующего построения графика периодической ошибки.Однако работает.
//Осталось только откалибровать значения, чтобы они совпадали с реальными.
t=t+0.17;//это типа время каждый отсчёт прим. 0.1 сек.
ss="";str.putfloatf(ss,t/2,1);hwcom.send(ss,str.length(ss));hwcom.put(09);
ss="";str.putfloatf(ss,var.speed/100,3);hwcom.send(ss,str.length(ss));hwcom.put(09);
ss="";str.putfloatf(ss,var.DEC_Korr/5,3);hwcom.send(ss,str.length(ss));hwcom.put(09);
hwcom.put(13);hwcom.put(10);//Конец строки - прыгаем на одну вниз.
}//----------------ОК.
//###################################################
Вот эта процедура управляет положением телескопа.Здесь можно корректировать как вручную так и с помощью управляющих аналоговых сигналов с телеавтогида Павла Бахтинова. Первый опыт подключения автогида при сегодняшном ясном небе позволил сделать предварительные выводы о пользе автогидирования.При установке полярной оси методом пинка ногой по монтировке в примерном направлении на север( то есть можно сказать, что установка практически отсутствовала, так как вероятность попадания точно на полярную звезду при таком подходе практически равна нулю) система тем не менее удерживала звезду(Сириус) в поле зрения непрерывно. Коррекция проходила одновременно по обеим осям.Наблюдались незначительные колебания звезды вокруг центра перекрестия.Может для фотографирования слабовато будет, но для визуального наблюдения вполне прилично.Объект всегда в поле зрения, что есть отчень корошо
Вот такие дела