try to enhance CY

This commit is contained in:
2023-12-11 13:36:10 +01:00
parent ca3b8f6ff2
commit fc944cdc3b
3 changed files with 95 additions and 7 deletions

View File

@@ -1022,8 +1022,8 @@ FrontUnivOut5 Gate3[1].Chan[1].UserFlag 6
FrontUnivOut6 Gate3[1].Chan[2].UserFlag 7
Event 254 -> Pulser 0 -> FrontUnivOut4 Gate3[1].Chan[0].UserFlag
Event 40 -> Pulser 1 -> FrontUnivOut4 Gate3[1].Chan[1].UserFlag
Event 22 -> Pulser 2 -> FrontUnivOut4 Gate3[1].Chan[2].UserFlag
Event 40 -> Pulser 1 -> FrontUnivOut5 Gate3[1].Chan[1].UserFlag
Event 22 -> Pulser 2 -> FrontUnivOut6 Gate3[1].Chan[2].UserFlag
caput SAR-CVME-TIFALL5-EVG0:SoftEvt-EvtCode-SP 254
@@ -1477,7 +1477,66 @@ the cabeling has to change so that it fits as it worked before.
SAR-EXPMX:MOT_CX: moves in closed loop, limitswitch +- must be swapped
SAR-EXPMX:MOT_CZ: moves in closed loop, limitswitch +- must be swapped
SAR-EXPMX:MOT_CY: before commissioning check encoder signal Level TTL?
-> we need the old stage to be able to check and compare each motor step by step.
now working and new stage CY is roughly commissined
```
24.11.23 Tweak CY stages
------------------------
```
stage without load: slowest open loop motion:
#3out-14
#3out 15
(14-15% of nominal curttent ~275mA)
sometimes stuck and needs up to 35% !!! of nominal current to start mofing againg.
This is the drawback of brushes that do not provide a smooth current switching and continous torque
> #3out15
> Motor[3].ServoOut
Motor[3].ServoOut=290.403002929687489
Motor[3].Servo.OutDbOn
Motor[3].Servo.OutDbOff
Motor[3].Servo.OutDbSeed
Motor[3].Servo.OutDbOn=200
Motor[3].Servo.OutDbOff=400
Motor[3].Servo.OutDbSeed=0
Motor[3].Servo.OutDbOn=200
Motor[3].Servo.OutDbOff=400
Motor[3].Servo.OutDbSeed=200
Motor[3].Servo.Kp=50
Motor[3].Servo.BreakPosErr=5
Motor[3].Servo.Ki=.0004
./PBGatherPlot.py -r2 --ssh_tunnel -p '{"motId":3,"address":"Sys.ServoCount,Motor[{motId}].DesPos,Motor[{motId}].PosError,Motor[{motId}].ServoOut,Motor[{motId}].IaMeas,Motor[{motId}].Integrator"}'
pp={
'openloop':False,
'file' :fn,
'motor' :3,
#'amp' :40, # openloop: % of maximal amplitude
'amp' :100, # closed loop: um amplitude
'minFrq' :1,
'maxFrq' :20,
'tSec' :6.,
'mode' :1,
}
tune.bode_chirp(**pp)
fig=plt.figure(1)
fig.suptitle('CY closedloop 6 sec. 1-20Hz amp=100um')
plt.show()
./PBGatherPlot.py -r0 --ssh_tunnel
./PBGatherPlot.py -r3 --ssh_tunnel -p '{"motId":3,"rng":[0,5000 ]}'
./PBGatherPlot.py -r3 --ssh_tunnel -p '{"motId":3,"rng":[0,2000 ],"wait":0.2, "repeat":3}' -d2
```

View File

@@ -107,9 +107,25 @@ Motor[2].pEncLoss=0
!encoder_inc(enc=3,tbl=3,mot=3,posSf=0.25)
!motor_servo(mot=3,ctrl='ServoCtrl',Kp=10,Kvfb=0,Ki=0.0,Kvff=0,Kaff=0,MaxInt=1000,Kfff=0)
!motor(mot=3,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=1,IpfGain=3,IpbGain=3,JogSpeed=12.,numPhase=2,invDir=False,servo=None,PhasePosSf=0,PhaseFindingDac=0,PhaseFindingTime=0,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10,homing='enc-index')
Motor[3].Servo.Kp=50
Motor[3].Servo.BreakPosErr=5
Motor[3].Servo.Ki=.0004
Motor[3].Servo.Kp=20
Motor[3].Servo.BreakPosErr=1
Motor[3].Servo.KBreak=10
Motor[3].Servo.Ki=0
Motor[3].Servo.OutDbOn=150
Motor[3].Servo.OutDbOff=150
//Motor[3].Servo.Kp=80
//Motor[3].Servo.BreakPosErr=0
//Motor[3].Servo.KBreak=2
//Motor[3].Servo.Ki=0
//Motor[3].Servo.OutDbOn=150
//Motor[3].Servo.OutDbOff=150
//Motor[3].Servo.Kp=50
//Motor[3].Servo.BreakPosErr=5
//Motor[3].Servo.Ki=.0005
//Motor[3].Servo.OutDbOn=200
//Motor[3].Servo.OutDbOff=200
//Stada stage

View File

@@ -70,7 +70,7 @@ class Generate:
'motLst':(
( 'DESC' , 'M' , 'ADDR' , 'DIR' , 'VELO' , 'HVEL' , 'MRES' , 'PREC' , 'EGU' ) ,
( '"Sample F-Trans Y"' , 'MOT_FY' , 1 , 0 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
( '"Sample F-Trans X"' , 'MOT_FX' , 2 , 1 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
( '"Sample F-Trans X"' , 'MOT_FX' , 2 , 0 , 16 , 2 , 0.001 , 4 , 'mm' ) ,
( '"Sample C-Trans Y"' , 'MOT_CY' , 3 , 0 , 12 , 4 , 0.001 , 4 , 'mm' ) ,
( '"Sample C-Trans X"' , 'MOT_CX' , 4 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
( '"Sample C-Trans Z"' , 'MOT_CZ' , 5 , 0 , 2 , 2 , 0.001 , 4 , 'mm' ) ,
@@ -215,6 +215,19 @@ runScript $(mrfioc2_DIR)/mrfioc2_evr-PCIe.cmd, "DEVICE=EVR0,EVR_SUBS=$(ESB_MX_DI
# https://git.psi.ch/epics_driver_modules/mrfioc2_regDev
require mrfioc2_regDev
runScript $(mrfioc2_regDev_DIR)/mrfioc2_regDev_pulseID_RX.cmd, "DEVICE=EVR0,SYS=SAR-EXPMX"
require PB_EXTRA
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FY, M_NO=1")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FX, M_NO=2")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CY, M_NO=3")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CX, M_NO=4")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)motorStatus.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CZ, M_NO=5")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FY, M_NO=1")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_FX, M_NO=2")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CY, M_NO=3")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CX, M_NO=4")
dbLoadRecords("$(PB_EXTRA_TEMPLATES)killOne.db" "SYS=SAR-EXPMX, PORT=PPMAC, M=MOT_CZ, M_NO=5")
'''
tplEXPMX2='''