View Issue Details

IDProjectCategoryView StatusLast Update
0001844CCdciel[All Projects] Generalpublic17-11-14 13:59
ReporterhanAssigned ToPatrick Chevalley 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version 
Target Version1.0Fixed in Version 
Summary0001844: slippage compensation
DescriptionSlippage compensation works for the first target Target HFD is reached (HFD=15 for me) However second step HFD=10 reaches HFD=19 rather then 10. The second target should be based on the first target and independent of slippage or slippage compensation. Will investigate tomorrow.
TagsNo tags attached.

Activities

han

17-11-14 09:45

reporter   ~0004271

Last edited: 17-11-14 09:50

View 2 revisions

Checked the data this morning. The slippage is at 1027. Looking into the V-curve, this is exactly the difference between HFD=19 and HFD=10. So the near focus calculation seems missing the slippage factor. The start focus calculation (HFD=15 for me) works correctly

han

17-11-14 11:49

reporter   ~0004273

I think for the near focus compensation not only for slippage is missing but also temperature and filter offset. This should be the correct code:


   vcsNearL: begin
              // compute near focus position
              delta:=(AutofocusStartHFD-Fhfd)/AutofocusVcSlopeL;{delta for filter, temperature and slippage already compensated in previous step}
              newpos:=AutofocusVcpiL+(AutofocusNearHFD/AutofocusVcSlopeL)+delta;{ calculate near position from HFD=0 position equals AutofocusVcpiL using slope}

              // correct for filter offset
              newpos:=newpos+(CurrentFilterOffset-AutofocusVcFilterOffset);
              // correct for temperature
              newpos:=newpos+tempcomp;
              // correct for slippage
              if AutofocusSlippageCorrection then newpos:=newpos+AutofocusSlippageOffset;

              // move to near focus position
              focuser.FocusPosition:=round(newpos);
              msg('Autofocus move to near focus '+focuser.Position.Text);
              FonAbsolutePosition(self);
              AutofocusVcStep:=vcsCheckL;
              AutofocusVcCheckNum:=0;
              SetLength(AutofocusVcCheckHFDlist,0);
              wait(1);
             end;
   vcsNearR: begin
              // compute near focus position
              delta:=(AutofocusStartHFD-Fhfd)/AutofocusVcSlopeR;
              newpos:=AutofocusVcpiR+(AutofocusNearHFD/AutofocusVcSlopeR)+delta;

              // correct for filter offset
              newpos:=newpos+(CurrentFilterOffset-AutofocusVcFilterOffset);
              // correct for temperature
              newpos:=newpos+tempcomp;
              // correct for slippage
              if AutofocusSlippageCorrection then newpos:=newpos+AutofocusSlippageOffset;

              // move to near focus position
              focuser.FocusPosition:=round(newpos);
              msg('Autofocus move to near focus '+focuser.Position.Text);
              FonAbsolutePosition(self);
              AutofocusVcStep:=vcsCheckR;
              AutofocusVcCheckNum:=0;
              SetLength(AutofocusVcCheckHFDlist,0);
              wait(1);
             end;

han

17-11-14 12:34

reporter   ~0004275

Last edited: 17-11-14 12:37

View 2 revisions

Some remarks:

1) I tested briefly the ASCOM filter wheel simulator.net. Noted that the ASCOM filter offset are ignored. The filter offset has to be entered manually. In the current setup it could be also negative depending on the focuser scale, normal or reverse.

2) Slippage compensation will compensate for everything. Not only slippage but also temperature drift and filters. It is a cure for everything... :)

Patrick Chevalley

17-11-14 13:02

administrator   ~0004276

I was sure the Near position was computed relative to Start but this is not the case and all the offset must be applied also to Near.

Revision 648 add the slippage correction, but also the temperature and filter offset correction.
https://sourceforge.net/p/ccdciel/code/648/

Patrick Chevalley

17-11-14 13:59

administrator   ~0004278

1) I not implement that because Indi driver do not include filter offsets. I can set the values for Ascom but please open another issue because this probably require testing.
I not like this information from the Ascom documentation:
"If focuser offsets are not available, then it should report back 0 for all array values. "
I would prefer an exception to be sure if I can replace or not the values configured in ccdciel.

2) Yes and we must avoid that because this can make wrong correction if the temperature or filter change.
This is why I specify in the documentation and in the hints that temperature compensation and filter offset must be configured before to activate the slippage correction.

Issue History

Date Modified Username Field Change
17-11-14 00:36 han New Issue
17-11-14 09:45 han Note Added: 0004271
17-11-14 09:50 han Note Edited: 0004271 View Revisions
17-11-14 11:49 han Note Added: 0004273
17-11-14 12:34 han Note Added: 0004275
17-11-14 12:37 han Note Edited: 0004275 View Revisions
17-11-14 13:02 Patrick Chevalley Assigned To => Patrick Chevalley
17-11-14 13:02 Patrick Chevalley Status new => resolved
17-11-14 13:02 Patrick Chevalley Resolution open => fixed
17-11-14 13:02 Patrick Chevalley Target Version => 1.0
17-11-14 13:02 Patrick Chevalley Note Added: 0004276
17-11-14 13:59 Patrick Chevalley Note Added: 0004278