An Accelerator Control Middle Layer Using MATLAB
Abstract
Matlab is a matrix manipulation language originally developed to be a convenient language for using the LINPACK and EISPACK libraries. What makes Matlab so appealing for accelerator physics is the combination of a matrix oriented programming language, an active workspace for system variables, powerful graphics capability, built-in math libraries, and platform independence. A number of software toolboxes for accelerators have been written in Matlab--the Accelerator Toolbox (AT) for machine simulations, LOCO for accelerator calibration, Matlab Channel Access Toolbox (MCA) for EPICS connections, and the Middle Layer. This paper will describe the ''middle layer'' software toolbox that resides between the high-level control applications and the low-level accelerator control system. This software was a collaborative effort between ALS (LBNL) and SPEAR3 (SSRL) but easily ports to other machines. Five accelerators presently use this software. The high-level Middle Layer functionality includes energy ramp, configuration control (save/restore), global orbit correction, local photon beam steering, insertion device compensation, beam-based alignment, tune correction, response matrix measurement, and script-based programs for machine physics studies.
- Authors:
- Publication Date:
- Research Org.:
- Lawrence Berkeley National Lab. (LBNL), Berkeley, CA (United States)
- Sponsoring Org.:
- USDOE Director. Office of Science. Office of Basic Energy Sciences. Contract Nos. DE-AC03-76SF00098 and DE-AC03-76SF00515 (US)
- OSTI Identifier:
- 841887
- Report Number(s):
- LBNL/PUB-925
R&D Project: 458070; TRN: US0502988
- DOE Contract Number:
- AC03-76SF00098
- Resource Type:
- Conference
- Resource Relation:
- Conference: PCaPAC 2005, Hayama (JP), 03/22/2005--03/25/2005; Other Information: PBD: 15 Mar 2005
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 43 PARTICLE ACCELERATORS; ACCELERATORS; ALIGNMENT; CALIBRATION; CONFIGURATION CONTROL; CONTROL SYSTEMS; PHOTON BEAMS; PHYSICS; PROGRAMMING LANGUAGES; MATLAB CONTROL
Citation Formats
Portmann, Gregory J, Corbett, Jeff, and Terebilo, Andrei. An Accelerator Control Middle Layer Using MATLAB. United States: N. p., 2005.
Web.
Portmann, Gregory J, Corbett, Jeff, & Terebilo, Andrei. An Accelerator Control Middle Layer Using MATLAB. United States.
Portmann, Gregory J, Corbett, Jeff, and Terebilo, Andrei. 2005.
"An Accelerator Control Middle Layer Using MATLAB". United States. https://www.osti.gov/servlets/purl/841887.
@article{osti_841887,
title = {An Accelerator Control Middle Layer Using MATLAB},
author = {Portmann, Gregory J and Corbett, Jeff and Terebilo, Andrei},
abstractNote = {Matlab is a matrix manipulation language originally developed to be a convenient language for using the LINPACK and EISPACK libraries. What makes Matlab so appealing for accelerator physics is the combination of a matrix oriented programming language, an active workspace for system variables, powerful graphics capability, built-in math libraries, and platform independence. A number of software toolboxes for accelerators have been written in Matlab--the Accelerator Toolbox (AT) for machine simulations, LOCO for accelerator calibration, Matlab Channel Access Toolbox (MCA) for EPICS connections, and the Middle Layer. This paper will describe the ''middle layer'' software toolbox that resides between the high-level control applications and the low-level accelerator control system. This software was a collaborative effort between ALS (LBNL) and SPEAR3 (SSRL) but easily ports to other machines. Five accelerators presently use this software. The high-level Middle Layer functionality includes energy ramp, configuration control (save/restore), global orbit correction, local photon beam steering, insertion device compensation, beam-based alignment, tune correction, response matrix measurement, and script-based programs for machine physics studies.},
doi = {},
url = {https://www.osti.gov/biblio/841887},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Tue Mar 15 00:00:00 EST 2005},
month = {Tue Mar 15 00:00:00 EST 2005}
}