prepare for beamtime
This commit is contained in:
@@ -1,40 +1,3 @@
|
||||
// Here we use 'real encoder with direct PWM'. Further the axis are scaled
|
||||
// in this configuration, the PID gives 'torque' to iqCmd.
|
||||
// the phasePos is received from tne encoder on the motor shaft.
|
||||
// The idCmd is set to 0
|
||||
// the PID regulates the position by setting torque, if the motor is not at the desired position
|
||||
// Compared to 'real encoder with direct microstepping', following main elements have to be reconfigured:
|
||||
// SlipGain=0 (instead 0.25) ,PhasePosSf= calculated value (instead of 0)
|
||||
// look also at PwmSf,PhaseMode,PhaseCtrl,
|
||||
|
||||
// -> PhasePosSf is calculated as follows: (2048*pole_cycle)/(256*enc_step) = 8*pole_cycle/enc_step
|
||||
|
||||
// e.g. Motor[x].pPhaseEnc -> PowerBrick[.].Chan[.].PhaseCapt.a
|
||||
// 1 rev = 8192 phase_step = 4 pole_cycle = 512000 PhaseCapt =256*2000 (256=scaling of encTable, 2000=enc_step/rev)
|
||||
// PhasePosSf 8*4/2000=0.016
|
||||
|
||||
|
||||
// x einraster == -> x-N and x-S poles =2*x poles -> 1 rev = x*2048 ustep=phase_step
|
||||
// changing the polarity from S-N-S (one pole cycle) are 2048 phase_step. phase_step is also called ustep
|
||||
|
||||
//Mot 1: Rotation stage LS Mecapion MDM-DC06DNC0H 32 poles = 1 rev = 16*2048=32768 phase_step
|
||||
//Enc 1: Rotation stage LS Mecapion 1 rev = 1048576 enc_steps
|
||||
|
||||
//Mot 2: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
|
||||
//Enc 2: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
|
||||
|
||||
//Mot 3: Stage Y Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
|
||||
//Enc 3: Stage Y Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
|
||||
|
||||
//Mot 4: Test Servo: Trinamic QBL 4208 motor 8 poles 1 rev = 4*2048=8192 phase_step
|
||||
//Enc 4: Test Servo: Incremental encoder mounted with motor 1 1 rev = 2000 enc count (500 inc_ quadrature encoder)
|
||||
//Enc 5: Test Servo: Trinamic QBL 4208 hall sensor 1 rev = 24 enc count (hall sensor encoder)
|
||||
|
||||
//Mot 7: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
|
||||
//Enc 7: Renishaw absolute BiSS
|
||||
|
||||
//Mot 8: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
|
||||
//Enc 8: Renishaw absolute BiSS
|
||||
|
||||
//$$$***
|
||||
//!common()
|
||||
|
||||
@@ -26,6 +26,23 @@
|
||||
//Mot 3: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
|
||||
//Enc 3: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
|
||||
|
||||
//Enc 4: Interferometer 1
|
||||
|
||||
//Enc 5: Interferometer 2
|
||||
|
||||
|
||||
|
||||
|
||||
//Mot 7: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
|
||||
//Enc 7: Renishaw absolute BiSS
|
||||
|
||||
//Mot 8: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
|
||||
//Enc 8: Renishaw absolute BiSS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//rot stage
|
||||
//---------
|
||||
//use 360'000 for 360 deg as motor unit
|
||||
@@ -72,10 +89,28 @@ Motor[1].pPhaseEnc=Acc84B[0].Chan[0].SerialEncDataA.a
|
||||
//PhaseFreq=20000,PhasePerServo=1 -> Kvfb=220*4 Ki/=4,Kvff*=4,Kaff*=4*4
|
||||
!motor(mot=3,dirCur=0,contCur=800,peakCur=2400,timeAtPeak=1,IiGain=1,IpfGain=0,IpbGain=2,JogSpeed=10.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./81250,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=200,WarnFeLimit=100,InPosBand=2,homing='enc-index')
|
||||
|
||||
//Interferometer 1 Stage Y Parker MX80L (bottom stage)
|
||||
//----------------------------------------------------
|
||||
!encoder_inc(enc=4,tbl=4,mot=4)# ,posSf=13000./650000)
|
||||
!encoder_inc(enc=5,tbl=5,mot=5)# ,posSf=13000./650000)
|
||||
//Interferometer 1,2
|
||||
//------------------
|
||||
//!encoder_inc(enc=4,tbl=4,mot=4)# ,posSf=13000./650000)
|
||||
//!encoder_inc(enc=5,tbl=5,mot=5)# ,posSf=13000./650000)
|
||||
|
||||
//Base plate
|
||||
//----------
|
||||
|
||||
//102400000 ustep 200000 encCnt = 10mm = 10000um
|
||||
//posSf = userUnits/encoder_steps = 10000/200000 =1./20
|
||||
//servoSf=motor_u_steps/userUnits = 102400000/10000 = 10240./1
|
||||
!encoder_inc(enc=4,posSf=1./20)
|
||||
!motor(mot=4,dirCur=250,JogSpeed=.3,invDir=0,servoSf=10240.,InPosBand=1,HomeOffset=0)
|
||||
Motor[4].Pos2Sf=0 // Pos2Sf set to 0 to avoid programming leak values
|
||||
|
||||
//-51200000 ustep = -200000 encCnt == 10mm =10000 um
|
||||
//posSf = userUnits/encoder_steps = 10000/-200000 =1/-20.
|
||||
//servoSf=motor_u_steps/userUnits = -51200000/10000 = -5120./1
|
||||
!encoder_inc(enc=5,posSf=1./20)
|
||||
!motor(mot=5,dirCur=250,JogSpeed=.3,invDir=0,servoSf=5120.,InPosBand=1,HomeOffset=0)
|
||||
Motor[5].Pos2Sf=0 // Pos2Sf set to 0 to avoid programming leak values
|
||||
|
||||
|
||||
//Stada stage
|
||||
//----------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user