[en] English: The European Organization for Nuclear Research (CERN, Conseil Européen pour la Recherche Nucléaire in French), located in Geneva, Switzerland, hosts the largest particle accelerator complex in the world, which aims to push the boundaries of human knowledge on particle physics. The main acceleration technologies at CERN rely on radio-frequency (RF) cavities and superconducting electromagnets. Usually, these systems need to be fed from the grid using high-efficiency and high-precision switch-mode power electronic converters. This Master's Thesis has been conducted to complete the Master's studies in Advanced Electronic Systems at the Univesity of the Basque Country (EHU/UPV, Universidad del País Vasco in Spanish). It has been carried out during a short-term internship at CERN's System Department-Electric Power Converters-Low Power Converters (SY-EPC-LPC) group. This group is in charge of designing and developing low-voltage and high-current modular and compact converters, ranging from some Watts up to several kW. The SY-EPC-LPC manages a variety of power converters within the particle accelerator complex. Most digitally controlled ones share the same control hardware architecture consisting of a proprietary crate, named RegFGC3, which includes several cards. Among these, a Digital Signal Processor (DSP) regulation board and a State Control card containing a Field Programmable Gate Array (FPGA) can be highlighted. This RegFGC3 crate is part of a larger control platform, named FGC3. Although the hardware is highly standardized, nowadays each power supply uses converter-specific software for control purposes, coded in C programming language. This makes all code redundant, difficult to test, debug and maintain. Considering the aforementioned drawbacks, this Master's Thesis aims to design, develop and test a common control library which supports the regulation software of several power converters, providing standardization, flexibility and time-saving. To do so, as a first step, three of the accelerators' power converters have been selected: CANCUN (Cern Acdc Narrow CoNverter), HL-LHC18kA (High Luminosity Large Hadron Collider 18 kA) and RF3kA (Radio-Frequency 3 kA). This selection is based on that these converters incorporate a variety of operating and control requirements, i.e., 1-quadrant, 2-quadrant and 4-quadrant architectures, module parallelization, various current and voltage regulation loops, and different Pulse Width Modulation (PWM) modes including, in some cases, interleaving. After analysing the three power converters and their control (hardware and software), synergies have been identified, which are still missing at the software level. To provide a unified control software library that takes into account such synergies, the refactorization of the code from C to C++ has been justified as the best option. This approach allows using a fast and efficient Object Oriented Programming (OOP) language, whose nature facilitates the expression of the existing relationship between converter-specific codes. The main idea behind the proposed and implemented library, named RegDspLib, is based on constructing a parent class that supports all the converters. It contains all the shared similarities between converters, which eases the development of additional and specialized code. This base class allows the inheritance of the configured common features with the possibility of using, modifying, or adding what is needed by each converter in their corresponding derived classes. C++ language mechanisms have been used to correlate different classes, modules, methods and attributes of the code, easing the development of the common library. This, would have been more laborious in the C language. A variety of modules have been configured to provide logic to the classes, in which a generic module for the configuration of a generic Finite State Machine (FSM) template, and a regulation module with configurable PWM inputs are included, among others. Besides this and to make this library design possible, multiple modifications have been proposed. These consist of the design of a standard FSM for all the converters, the modification of the FPGA which is controlling and monitoring the power converter's status, the interrupt handling on the DSP, and the building of new generic functions that work with multiple converters. The latter includes the slew rate method that controls the increasing/decreasing rate of the control algorithm's reference value and an automatic parameter calculation script for interleaving control mechanisms. Verification of the RegDspLib library has been carried out using the CANCUN power converter. First, the same regulation response has been proved when comparing the original and the proposed library-based codes. Regarding digital resources, experimental results show an increase of only 2.48 % in the execution time of the program for the worst-case scenario, and up to a 24.63 % time-saving for the best-case. This demonstrates that it has been possible to standardize, refactor the code to C++ and add more features to the software without generating overruns. All things considered, the C++ programming language is proven valid for real-time control in the DSP target of CERN's power converters. Besides, building a control library that groups all the common features has also provided a better-structured program, making it easier to understand and to work with. This work could lead to further improvements in the library and it can be completed in order to generalize it to control other power converters besides the presented ones. Moreover, although the RegDspLib library was originally aimed at the FGC3 control platform, this work provides the first steps for developing libraries taking into mind the future control hardware upgrade FGC4 (already in development). In such novel architecture, dedicated cards in the FGC3 (control, monitoring, regulation, measurement, etc.) will be replaced by one single main Central Processing Unit (CPU).

[es] Español: La Organización Europea para la Investigación Nuclear (CERN, Conseil Européen pour la Recherche Nucléaire, en francés) esta situada en Ginebra, Suiza. Tiene como objetivo superar los límites del conocimiento humano en física de partículas. Para poder cumplirlo, el CERN alberga actualmente el complejo de aceleradores de partículas más grande del mundo. Dentro de este, las principales tecnologías de aceleración se basan en cavidades de radiofrecuencia (RF) y electroimanes superconductores. En general, estos sistemas necesitan alimentarse de la red utilizando convertidores electrónicos de potencia, conmutados de alta eficiencia y precisión. Este Trabajo de Fin de Máster se ha llevado a cabo con el objetivo de completar los estudios del Máster en Sistemas Electrónicos Avanzados en la Universidad del País Vasco (EHU/UPV). Se ha realizado durante una estancia a través de un programa de prácticas del CERN, en el Departamento de Sistemas-Convertidores de Potencia Eléctricos-Baja Potencia (SY-EPC-LPC). Como su nombre indica, este grupo se encarga del diseño y desarrollo de convertidores modulares y compactos de baja tensión y alta corriente, que operan desde unos pocos Watt hasta varios kW. Este grupo gestiona una gran variedad de convertidores de potencia dentro del complejo de aceleradores de partículas. Entre estos, la mayoría de los controlados digitalmente comparten la misma arquitectura de hardware de control, que consiste en un módulo propietario, llamado RegFGC3. Este módulo incluye varias tarjetas, entre las que destacan una placa de regulación con un Procesador de Señal Digital (DSP, Digital Signal Processor, en inglés) y una tarjeta de control de estado que contiene una Matriz de Puertas Programable (FPGA, Field Programmable Gate Array, en inglés). A su vez, este módulo RegFGC3 forma parte de una plataforma de control mayor, llamada FGC3. Aunque el hardware esté estandarizado, actualmente cada uno de los convertidores utiliza un software de control específico, escrito en el lenguaje de programación C. Esto hace que el código resulte redundante y difícil de testear, depurar y mantener. Teniendo en cuenta las desventajas mencionadas, el objetivo del Trabajo de Fin de Máster ha sido diseñar, desarrollar y probar una librería de control común que englobe el software de regulación de varios convertidores de potencia, proporcionando estandarización, flexibilidad y ahorro de tiempo en el desarrollo de este. Para ello, como primer paso, se han seleccionado tres de los convertidores de potencia que forman parte de los aceleradores, CANCUN (Cern Acdc Narrow CoNverter), HL-LHC18kA (High Luminosity Large Hadron Collider 18 kA) y RF3kA (Radio-Frequency 3 kA). Esta selección se basa en que los convertidores incorporan arquitecturas de 1-cuadrante, 2-cuadrantes y 4-cuadrantes, distintos lazos de regulación de corriente y tensión, y varios modos de Modulación por Anchura de Pulso (PWM, Pulse Width Modulation, en inglés), incluyendo, en algunos casos, técnicas de entrelazamiento. Después de analizar los tres convertidores de potencia y su control (a nivel de hardware y software), se ha identificado una sinergia entre ellos, la cual falta a nivel de software. Para proporcionar una librería de software de control unificada que tenga en cuenta estas sinergias, se justifica la reescritura del código de C a C++ como la mejor opción. Esto permite utilizar un lenguaje de Programación Orientada a Objetos (OOP, Object Oriented Programming, en inglés) rápido y eficiente, cuya naturaleza facilita la expresión de la relación existente entre los códigos específicos del convertidor. La idea principal de la librería propuesta e implementada, llamada RegDspLib, se basa en la construcción de una clase padre que de soporte a todos los convertidores. Esta clase contiene todas las similitudes compartidas entre los convertidores, lo que facilita el desarrollo de código adicional y especializado al permitir la herencia de las características comunes configuradas. La librería posibilita utilizar, modificar o agregar lo que sea necesario para cada convertidor, a través de clases derivadas. Se han utilizado mecanismos del lenguaje C++ para correlacionar distintas clases, módulos, métodos y atributos del código, facilitando el desarrollo de una librería común. Esto hubiera sido más laborioso mediante el lenguaje de programación C. Con el objetivo de dotar de lógica a estas clases, se configuran una variedad de módulos. Se incluyen, entre otros, un módulo genérico para la configuración de Máquinas de Estados Finitas (FSM, Finite State Machine, en inglés) y un módulo de regulación con entradas PWM configurables. Además de esto, para posibilitar el diseño de la librería se han tenido que realizar múltiples modificaciones. Estas incluyen el diseño de una FSM estándar, la modificación de la FPGA que controla y supervisa el estado del convertidor de potencia, el manejo de interrupciones en la DSP y la creación de nuevas funciones genéricas que sirvan para múltiples convertidores. Entre estas últimas destacan el método de tasa de variación que controla el ratio de aumento/disminución del valor de referencia del algoritmo de control y el cálculo automático de los parámetros del mecanismo de control de entrelazamiento. La verificación de la librería RegDspLib se ha llevado a cabo en el convertidor de potencia CANCUN. Por un lado, se ha obtenido la misma respuesta al escalón de entrada de corriente, tanto con la librería propuesta como con el software original. Por otro, los resultados experimentales muestran un aumento del 2,48 %, en el tiempo de ejecución, para el peor de los casos, y una reducción de hasta el 24,63 %, en el mejor. Esto demuestra que ha sido posible estandarizar, reescribir el código a C++ y agregar características adicionales al software sin exceder los límites de tiempo. En resumen, el lenguaje de programación C++ se ha demostrado como válido para el control en tiempo real de los convertidores de potencia del CERN a través de la regulación en la DSP. Además, la construcción de una librería de control que engloba todas las características comunes ha proporcionado un programa mejor estructurado, lo que facilita su comprensión y trabajar con el mismo. En un futuro, este proyecto podría llevar a mejoras adicionales de la librería y ser completado para su utilización con otros convertidores de potencia, además de con los tres presentados. Por último, aunque la librería RegDspLib estaba originalmente destinada a la plataforma de control FGC3, este proyecto marca los primeros pasos hacia el desarrollo de librerías para la futura actualización del FGC4, donde las tarjetas dedicadas del FGC3 (control, supervisión, regulación, medición, etc.) serán reemplazadas por una sola Unidad Central de Procesamiento (CPU, Central Processing Unit, en inglés) principal.