[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).

[eu] Euskeraz: Ikerketa Nuklearrerako Europako Kontseilua (CERN, Conseil Européen pour la Recherche Nucléaire, frantsesez) Genevan (Suitza) dago kokatua. Partikula-fisikaren ezagutzaren mugak handitzea du helburu erakundeak. Horretarako, gaur egun munduko partikula azeleratzaile handiena dago bertan. CERNen erabiltzen diren azelerazio-teknologia nagusiak irrati-maiztasun (RF) kabitateak eta elektroiman supereroaleetan oinarritzen dira. Normalean, sistema horiek saretik hornitzen direnez, potentzia-bihurgailuak erabili behar dira. Oro har, bihurgailu horiek kommutatuak dira, eta eraginkortasun eta zehaztasun handiarekin operatzen dute. Euskal Herriko Unibertsitatearen (EHU/UPV) Sistema Elektroniko Aurreratuen masterra osatzeko helburuarekin burutu da master amaierako lan hau. CERNek unibertsitate-ikasleentzat duen praktika-programa baten testuinguruan garatu da lana, hain zuzen ere, Sistema Departamendua-Potentzia Bihurgailu Elektrikoak- Potentzia Baxuko Bihurgailu (SY-EPC-LPC) taldean. Bere izenak adierazten duen bezala, tentsio baxuko eta korronte altuko bihurgailu modularrak eta konpaktuak diseinatzeko eta garatzeko ardura du talde horrek. Bereziki, partikula-azeleradore konplexuaren parte diren bihurgailu ugari kudeatzen ditu SY-EPC-LPCek, Watt batzuetatik hasi eta zenbait kW-etaraino iristen direnak. Horien artean, hardware arkitektura berdina partekatzen dute digitalki kontrolaturiko bihurgailu gehienek, CERNen diseinatutako RegFGC3 modulua erabiltzen dutenak. Zenbait txartel elektronikok osatzen dute RegFGC3 modulua. Horien artean Seinale Digitalen Prozesadorea (DSP, Digital Signal Processor, ingelesez) duen erregulazio-txartela eta Ate-Matrize Programagarria (FPGA, Field Programmable Gate Array, ingelesez) daukan egoera-kontrol txartela nabarmentzen dira. Aldi berean, FGC3 izeneko bihurgailuen kontrolerako plataforma handiago baten parte da RegFGC3 moduloa. Hardwarea nahikoa estandarizatua dagoen arren, gaur egun bihurgailuetako bakoitzak bere kontrol-software espezifikoa erabiltzen du, C programazio-lengoaian idatzita. Horrek, erredundantzia eragiteaz gain, kodea frogatzeko, arazteko eta mantentzeko zailtasunak sortzen ditu. Aipatutako arazoak aztertu ondoren, master amaierako lanak bihurgailuen erregulazio-softwarea bateratzen duen kontrol-liburutegi amankomuna diseinatu, garatu eta frogatzea du helburu. Horrekin, estandarizazioa, malgutasuna eta denbora aurreztea bilatu da. Lehenengo urrats bezala, partikula-azeleradoreen parte diren hiru bihurgailu aukeratu dira: CANCUN (Cern Acdc Narrow CoNverter), HL-LHC18kA (High Luminosity Large Hadron Collider 18 kA) eta RF3kA (Radio-Frequency 3 kA). Bihurgailu ezberdinek duten aniztasuna hartzen da kontuan aukeraketa horretan. Hori da, 1, 2 eta 4-koadranteko arkitekturak aurki daitezke; horrez gain, korrontearen eta tentsioaren kontrolerako begizta eta Pultsu Zabalera bidezko Modulazio (PWM, Pulse Width Modulation ingelesez) algoritmo ezberdinak, zenbait kasutan, tartekatutako (interleaved, ingelesez) modulazio-eskemak barne. Behin hiru bihurgailuak eta horien kontrola aztertuta (hardware eta software mailan), sinergiak antzeman dira horien artean. Sinergiak kontuan hartzen dituen kontrol software-liburutegi amankomuna sortzeko, kodea C-tik C++-ra berreraikitzea justifikatu da aukerarik onena bezala. Horrek, Objektuetara Bideratutako Programazio-hizkuntza (OOP, Object Oriented Programming, ingelesez) azkar eta eraginkorra erabiltzea ahalbideratu du, programaren izaerak bihurgailuaren kode espezifikoen arteko erlazioen adierazpena sinplifikatuz. Proposatu eta inplementatutako RegDspLib izeneko liburutegian dagoen ideia nagusia da bihurgailu guztiei euskarria ematen dien funtsezko klase bat eraikitzean oinarritzen dela. Bihurgailuek partekatutako antzekotasun guztiak biltzen ditu klase horrek, eta kode gehigarria eta espezializatua garatzeko erraztasunak ematen ditu, konfiguratutako ezaugarri komunak heredatzea baimenduz. Liburutegi horrekin, bihurgailu bakoitzak behar duena erabiltzeko, aldatzeko edo gehitzeko aukera ematen da, klase deribatuen bidez. RegDspLib liburutegian C++ hizkuntzaren mekanismoak erabili dira klase, modulu, metodo eta atributu ezberdinak elkarrekin lotzeko. Garrantzitsua da aipatzea, nahiz eta helburu horiek lortzeko C programazio-hizkuntza erabiltzea posible izan, lana zailagoa izango litzatekeela. Elementu batzuk konfiguratzen dira klaseetan horiei logika emateko. Besteak beste, Egoera Finituko Makinak (FSM, Finite State Machine, ingelesez) konfiguratzeko modulu generiko bat eta PWM irteera konfiguragarriak dituen erregulazio-moduluak diseinatu dira. Horrez gain, aldaketa ugari burutu behar izan dira liburutegiaren diseinu egokia ahalbidetzeko. Horien artean hauexek nabarmen daitezke: FSM estandarra diseinatzea, potentzia-bihurgailuaren egoera kontrolatzen eta gainbegiratzen duen FPGAren programa-aldaketa, DSParen etenak kudeatzen eta, azkenik, bihurgailu anitzetan funtzionatzen duten funtzio generiko berriak sortzea. Funtzio berri horien artean kontrol algoritmoaren erreferentzia balioaren hazkunde/murrizketa abiadura kontrolatzen duen metodoa eta tartekatutako modulazio-mekanismoaren parametroak automatikoki kalkulatzen dituen funtzioa nabarmentzen dira, besteak beste. CANCUN potentzia-bihurgailuan gauzatu da RegDspLib liburutegiaren egiaztapena. Lehenik eta behin, korrontearen erreferentziari sistemak egindako jarraipenak frogatu du erregulazio-emaitza berdinak lortzen direla, bai proposatutako liburutegiarekin eta baita jatorrizko softwarearekin ere. Baliabide digitalei dagokienez, % 2,48ko exekuzio-denboraren gehikuntza erakutsi dute emaitza esperimentalek, kasurik okerrean, eta % 24,63ko murrizketa, kasurik onenean. Horrek guztiak frogatzen du posible dela, denbora-mugak gainditu gabe, kodea estandarizatzea, C++ lengoaiara berreraikiz, softwareari ezaugarriak gehituz. Laburbilduz, C++ programazio-lengoaia CERNen potentzia-bihurgailuak denbora errealean kontrolatzeko baliozkoa dela frogatu da. Gainera, ezaugarri amankomun guztiak biltzen dituen kontrol-liburutegi bat eraikitzeak, hobeto egituratutako programa bat sortu du, eta kodea hobeto ulertu eta honekin lan egitea erraztu du. Lan honetatik abiatuta, inplementatutako liburutegiaren hobekuntza gehigarriak garatu daitezke etorkizunean. Gainera, liburutegia beste bihurgailu batzuetan (aurkeztutakoez gain) erabiltzeko osatu daiteke. Azkenik, garrantzitsua da aipatzea, RegDspLib liburutegia FGC3 kontrol-plataformara bideratzeko asmoarekin sortu bada ere, proiektu honek FGC4 bertsiorako baliagarriak izango diren liburutegien garatze-ibilbidea hasi duela. Nabarmentzekoa da puntu hori, FGC3ko txartel espezifikoak (kontrola, ikuskapena, erregulazioa, neurketa, etab.) Prozesatzeko Unitate Zentral (CPU, Central Processing Unit, ingelesez) bakar batek ordezkatuko baititu FGC4n.