Download presentation
Presentation is loading. Please wait.
Published byBeverly Gaines Modified over 8 years ago
1
Sardana/IcePAP Based Control System for elliptically polarized Undulator at Max IV 30th Tango Collaboration meeting vid.juvan@cosylab.com
2
Undulator 2 Undulator is an insertion device, consisting of a periodic structure of dipole magnets. The static magnetic field is alternating along the length of the undulator. Electrons traversing the periodic magnetic structure are forced to undergo oscillations and thus emmit light in the x-ray spectrum. The radiation is guided through the beamlines. 1.Magnets 2.Electron beam 3.Synchrotron radiation
3
Project 3 Client MaxIV Device Elliptically polarized undulator (EPU) Length: 4m Task Adaptation of the existing motion control system Redesign of the Galil box motion control system to IcePAP controller Motion Control Design Control System Software Implementation
4
Agenda 4 EPU Motion Control Design Undulator Mechanics Motion Control Hardware Control System Architecture EPU Control System Software Environment Control Software Design Machine Calibration Gap Correction Mechanism Technical Issues
5
EPU MOTION CONTROL DESIGN
6
Undulator Mechanics 6
7
7
8
8 Phase Closed loop on absolute encoder Gap Closed loop on rotary encoder Software closed loop on absolute encoders !!!
9
Motion Control System Hardware 9 IcePAP Motion Controller Stepper motor controller Firmware: 3.161 Digitax ST 1401B/1402B Servo Drives Unimotor FM Servo Motors Linear Absolute Encoders (Renishaw RL26BAS005C99F)
10
Control System Architecture 10
11
EPU CONTROL SYSTEM SOFTWARE
12
Control Software Environment / Dependencies 12 Language Python 2.7 IcePAP pyIcePAP 0.2 Tango Tango 8 Sardana Sardana 1.6. Extended Sardana IcepapController (IcePAPCtrl)
13
Control Software Elements 13 Individual motor movements Compound movements (synchronization) Gap Offset Taper Phase Secure, corrected, concurrent movements Moving phase to 0, prior to changing phase mode Moving taper to 0, prior to changing gap/offset, and resetting the taper afterwards Moving gap, offset, taper simultaneously Corrections prior and after movements Gap Correction mechanism Calibration …
14
Control software design 14 Software aggregated in the Sardana layer. Sardana elements split into two groups: “Gap group” and “Phase group”. Motors and pseudo motors Motor controllers and pseudo motor controllers Macros
15
Sardana motor controller Sardana Motors and Controllers 15 Sardana motor
16
Sardana motor controller Sardana pseudo motor controller Attribute Sardana Motors and Controllers 16 Sardana motor Gap OffsetTaper Sardana pseudo motor Phase A B C D Mode
17
Sardana Macros 17 MoveGAP Gap in um MoveOFFSET Offset in um MoveTAPER Taper in um MoveGOT Gap, Offset, Taper in um MoveOFFSETSecure Offset in um MoveGAPSecure Gap in um MovePhaseA,B,C,D Phase value in um CalibrateGap Meassured positions of main girders CalibratePhase Assume zero position CorrectGAPMotors Optional tolerance
18
Machine Calibration 18 Phase Calibration Position feedback: Position for each motor (encoder counts) Required measurements: Actual physical positions for every sub-girder (micro meters) Zero position Conversion (not required): Encoder count to um Objective: Adjust motor position offsets They must reflect the actual positions Use-case: Calibrated once
19
Machine Calibration 19 Gap Calibration Position feedback: Position for each motor (motor steps) Abs. linear encoder readouts (encoder counts) Floor x2 Gap x2 Required measurements: Actual physical girder positions (micro meters) Floor x2 Gap x2 Conversion: Motor steps per encoder count Encoder count to um Objective: Adjust motor position offsets Adjust abs. linear encoder readout offsets Calibration use-case: While shimming: Calibration on daily bases In production: Calibrated once
20
Gap Correction Mechanism 20 Required Accurate positioning of main girders (1um) Bending girders Backlash Gap between where a motor and the scale are mounted to the girder While tolerance not satisfied Assumed positions of the girders According to the motor position readout Actual positions of the girders In respect to the absolute linear encoder readout Adjust motor position offsets Motor positions change accordingly Must reflect the actual state of the undulator Issue movements to the last setpoints
21
Gap Correction Mechanism 21
22
Gap Correction Mechanism 22 Convergence All gap motors corrected simultaneously One affects the other When calculating corrections, the difference between where motor and the scale are mounted is neglected Slightly slower convergence The difference is negligible Convergence satisfactory Linear convergence Up to 5 iterations for 1um precision
23
THANK YOU! COSYLAB Vid Juvan Vid.juvan@cosylab.com
24
TECHNICAL ISSUES
25
Technical issues 25 Following error on phase motors Do motors follow the set trajectory?
26
Technical issues 26 Following error on phase motors Do motors follow the set trajectory? Backlash? Velocity referenceVelocity feedback
27
Technical issues 27 Phase motors backlash Measured backlash 120 um Problems Required 1um precision Magnetic forces are strong enough to shift the sub-girders Solution Set the following error range to measured backlash Closed loop manages to accommodate for the error Gap motors backlash Measured backlash 100 um Problems Required 1um precision Magnetic forces are strong enough to shift the girders Closed loop in MC on rotary encoder, not on absolute Solution No need to increase following error range Periodically issue the gap correction mechanism when settling the gap
28
THANK YOU! COSYLAB Vid Juvan Vid.juvan@cosylab.com
29
Motion Control Algorithms 29 Motion control algorithms for positioning linear axes Gap axes: 2 linear axes moving the upper main girder 2 linear axes moving lower main girder Phase axes: 4 linear axes moving the individual sub-girders The movement of particular axes is to be synchronized The synchronization is achieved at the motion controller level IcePAP – group movements
30
Motion Control – Phase Axes 30 Position Control Position of linear axes is controlled via IcePAP motion controller. IcePAP receives the position demand from a Sardana motor controller Tango device server and the position feedback from the absolute linear encoder. Using these two inputs IcePAP ’s closed loop algorithm produces position reference which is passed to Digitax ST via SM-Universal Encoder Plus expansion module.
31
Motion Control – Phase Axes 31 Digitax The position reference is passed to Digitax ST internal Position controller Digitax uses the drive encoder Speed feedback Position feedback Digitax produces the final speed reference which is used in the subsequent speed loop.
32
Motion Control – Phase Axes 32 Motion Control The main position loop is closed within the IcePAP motion controller (used by the control system for positioning and following error monitoring) The internal position loop, speed loop and current loop are closed within the Digitax ST drive.
33
Motion Control – Gap Axes 33 Position Control Due to the particular layout of the vertical linear encoders and IcePAP hardware limitations, the position loops for individual motors are closed using the on-motor rotary encoders. The rotary encoder information is buffered on the Digitax ST drive Quadrature incremental signal. Linear absolute encoder readback is not used, formwarded to Sardana IcePAP controller (SW) The information from the linear encoders is used for establishing absolute reference for the incremental rotary inputs prior movement. Post movement the information is used to compensate possible errors due to bending of the girders. This is done in the software.
34
Motion Control 34 Phase Axes Gap Axes
35
Motion Control Limit switches, kill switches, tilt meters Safety PLC interlock NEnable, NReady, Alarm signals Break control Safe Torque Off Correction coils …
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.