Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (10 votes)
19 views

Instant ebooks textbook (Ebook) Introduction to Microcontroller Programming for Power Electronics Control Applications: Coding with MATLAB® and Simulink® by Mattia Rossi, Nicola Toscani, Marco Mauri, Francesco Castelli Dezza ISBN 9780367709853, 0367709856 download all chapters

The document provides an overview of various ebooks available for download, including titles related to microcontroller programming, power electronics, and control systems using MATLAB and Simulink. It lists specific books along with their authors, ISBNs, and links for access. Additionally, it includes information about the publication details and structure of one of the highlighted ebooks, 'Introduction to Microcontroller Programming for Power Electronics Control Applications.'

Uploaded by

milotmatasfd
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (10 votes)
19 views

Instant ebooks textbook (Ebook) Introduction to Microcontroller Programming for Power Electronics Control Applications: Coding with MATLAB® and Simulink® by Mattia Rossi, Nicola Toscani, Marco Mauri, Francesco Castelli Dezza ISBN 9780367709853, 0367709856 download all chapters

The document provides an overview of various ebooks available for download, including titles related to microcontroller programming, power electronics, and control systems using MATLAB and Simulink. It lists specific books along with their authors, ISBNs, and links for access. Additionally, it includes information about the publication details and structure of one of the highlighted ebooks, 'Introduction to Microcontroller Programming for Power Electronics Control Applications.'

Uploaded by

milotmatasfd
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

Download the Full Ebook and Access More Features - ebooknice.

com

(Ebook) Introduction to Microcontroller


Programming for Power Electronics Control
Applications: Coding with MATLAB® and Simulink® by
Mattia Rossi, Nicola Toscani, Marco Mauri,
Francesco Castelli Dezza ISBN 9780367709853,
https://ebooknice.com/product/introduction-to-
0367709856
microcontroller-programming-for-power-electronics-control-
applications-coding-with-matlab-and-simulink-34171580

OR CLICK HERE

DOWLOAD EBOOK

Download more ebook instantly today at https://ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason;


Viles, James ISBN 9781459699816, 9781743365571,
9781925268492, 1459699815, 1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374

ebooknice.com

(Ebook) Matematik 5000+ Kurs 2c Lärobok by Lena


Alfredsson, Hans Heikne, Sanna Bodemyr ISBN 9789127456600,
9127456609
https://ebooknice.com/product/matematik-5000-kurs-2c-larobok-23848312

ebooknice.com

(Ebook) SAT II Success MATH 1C and 2C 2002 (Peterson's SAT


II Success) by Peterson's ISBN 9780768906677, 0768906679

https://ebooknice.com/product/sat-ii-success-
math-1c-and-2c-2002-peterson-s-sat-ii-success-1722018

ebooknice.com

(Ebook) Master SAT II Math 1c and 2c 4th ed (Arco Master


the SAT Subject Test: Math Levels 1 & 2) by Arco ISBN
9780768923049, 0768923042
https://ebooknice.com/product/master-sat-ii-math-1c-and-2c-4th-ed-
arco-master-the-sat-subject-test-math-levels-1-2-2326094

ebooknice.com
(Ebook) Cambridge IGCSE and O Level History Workbook 2C -
Depth Study: the United States, 1919-41 2nd Edition by
Benjamin Harrison ISBN 9781398375147, 9781398375048,
1398375144, 1398375047
https://ebooknice.com/product/cambridge-igcse-and-o-level-history-
workbook-2c-depth-study-the-united-states-1919-41-2nd-edition-53538044

ebooknice.com

(Ebook) Simulation of Power Electronics Circuits with


MATLAB®/Simulink®: Design, Analyze, and Prototype Power
Electronics by Farzin Asadi ISBN 9781484282199, 1484282191
https://ebooknice.com/product/simulation-of-power-electronics-
circuits-with-matlab-simulink-design-analyze-and-prototype-power-
electronics-44808100
ebooknice.com

(Ebook) Il sosia (C1-C2), Primi Racconti by Marco Dominici


ISBN 9789606632181, 9606632180

https://ebooknice.com/product/il-sosia-c1-c2-primi-racconti-47491450

ebooknice.com

(Ebook) Modern Control Design With MATLAB and SIMULINK by


Ashish Tewari ISBN 9780471496793, 0471496790

https://ebooknice.com/product/modern-control-design-with-matlab-and-
simulink-2214064

ebooknice.com

(Ebook) La nuova prova orale 2 (B2-C2) by Telis Marin,


Francesco Di Paolo ISBN 9788899358938, 8899358931

https://ebooknice.com/product/la-nuova-prova-orale-2-b2-c2-46598802

ebooknice.com
Introduction to
Microcontroller
Programming for
Power Electronics
Control Applications
Introduction to
Microcontroller
Programming for
Power Electronics
Control Applications
Coding with MATLAB® and
Simulink®

Mattia Rossi
Nicola Toscani
Marco Mauri
Francesco Castelli Dezza
MATLAB® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks
does not warrant the accuracy of the text or exercises in this book. This book’s use or discussion of
MATLAB® software or related products does not constitute endorsement or sponsorship by The
MathWorks of a particular pedagogical approach or particular use of the MATLAB® software.

First edition published 2022


by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742

and by CRC Press


2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN

© 2022 Taylor & Francis Group, LLC

CRC Press is an imprint of Taylor & Francis Group, LLC

Reasonable efforts have been made to publish reliable data and information, but the author and
publisher cannot assume responsibility for the validity of all materials or the consequences of their use.
The authors and publishers have attempted to trace the copyright holders of all material reproduced in
this publication and apologize to copyright holders if permission to publish in this form has not been
obtained. If any copyright material has not been acknowledged please write and let us know so we may
rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or
hereafter invented, including photocopying, microfilming, and recording, or in any information
storage or retrieval system, without written permission from the publishers.

For permission to photocopy or use material electronically from this work, access www.copyright.com
or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923,
978-750-8400. For works that are not available on CCC please contact mpkbookspermissions@tandf.
co.uk

Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are
used only for identification and explanation without intent to infringe.
Library of Congress Cataloging‑in‑Publication Data

ISBN: 978-0-367-70985-3 (hbk)


ISBN: 978-1-032-05303-5 (pbk)
ISBN: 978-1-003-19693-8 (ebk)
eBook + ISBN: 978-1-032-05465-0

DOI: 10.1201/9781003196938

Typeset in LM Roman
by KnowledgeWorks Global Ltd.

eResources are available for this title at www.routledge.com/9780367709853


a Daniela
Contents

Foreword xiii

Preface xvii

Acknowledgments xix

Biographies xxi

1 Advances in Firmware Design for


Power Electronics Control Platforms 1
1.1 Embedded Control System . . . . . . . . . . . . . . . . . . . 1
1.2 Selecting a Development Board . . . . . . . . . . . . . . . . . 3
1.2.1 Key elements of a microcontroller . . . . . . . . . . . . 4
1.2.2 Programming microcontrollers . . . . . . . . . . . . . 5
1.3 The C2000™ Family of MCU from Texas Instruments™ . . . 7
1.4 Scheme of a Power Electronics Control Problem . . . . . . . 9

I Embedded Development:
Hardware Kits and Coding 13
2 Automatic Code Generation through MATLAB® 15
2.1 Model-Based Design and Rapid Prototyping . . . . . . . . . 16
2.2 Workflow for Automatic Code Generation . . . . . . . . . . . 18
2.3 Generate Code for C2000™ Microcontrollers . . . . . . . . . 22
2.4 TI C2000™ Processors Block-set . . . . . . . . . . . . . . . . 24

3 Texas Instruments™ Development Kit 27


3.1 TI C2000™ LaunchPad™ : F28069M Piccolo . . . . . . . . . 27
3.1.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 Pin muxing . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.3 Power connectivity . . . . . . . . . . . . . . . . . . . . 32
3.1.4 Serial connectivity . . . . . . . . . . . . . . . . . . . . 33
3.1.5 Boot options . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 TI BOOSTXL-DRV8301 BoosterPack . . . . . . . . . . . . 34
3.2.1 BoosterPack PWM signals . . . . . . . . . . . . . . . . 35
3.2.2 BoosterPack GPIO signals . . . . . . . . . . . . . . . . 36
3.2.3 DC bus and phase voltage sense . . . . . . . . . . . . 37

vii
viii Contents

3.2.4 Low-side shunt-based current sense . . . . . . . . . . . 37

4 Software Installation 39
4.1 TI Support Packages:
Code Composer™ Studio and ControlSUITE™ . . . . . . . . 39
4.2 MATLAB® Support Package:
Embedded Coder for Texas Instruments C2000 Processors . 41
4.3 Installation Procedure . . . . . . . . . . . . . . . . . . . . . . 41

II Review of Control Theory: Closing the Loop 47


Introduction 49

5 Designing a Closed-Loop Control System 51


5.1 Dynamical Systems . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.1 Mathematical laws . . . . . . . . . . . . . . . . . . . . 52
5.1.2 Dynamical systems in electrical applications . . . . . . 54
5.2 Design a PI Controller in Continuous-Time Domain . . . . . 54
5.2.1 Serial/parallel form . . . . . . . . . . . . . . . . . . . . 55
5.2.2 Characterization of the closed-loop dynamics F (s) . . 55
5.3 Derive a PI Controller in Discrete-Time Domain . . . . . . . 60
5.3.1 General properties of the discretization process . . . . 60
5.3.2 Characterization of the closed-loop dynamics F (z) . . 62

6 Design Example: PI-Based Current Control of an RL Load 65


6.1 Simulink® Simulation . . . . . . . . . . . . . . . . . . . . . . 67
6.1.1 Use of standard blocks (continuous/discrete) . . . . . 71
6.1.2 Use of Simscape™ (specialized power systems) . . . . 73
6.1.3 Controller performances . . . . . . . . . . . . . . . . . 74
6.2 Derive an Anti-Windup PI Controller Scheme . . . . . . . . 77
6.3 Design Summary . . . . . . . . . . . . . . . . . . . . . . . . . 82

7 Manipulate the Variables Format: Data Types 85


7.1 Fixed Point vs Floating Point Representation . . . . . . . . . 85
7.2 Single vs Double Precision . . . . . . . . . . . . . . . . . . . 88
7.3 Use of Scaling in Fixed Point Representation . . . . . . . . 91
7.4 Converting from Decimal Representation to Single Format . 93
7.5 Processing the Data: Implementation Hints . . . . . . . . . . 95

III Real-Time Control in Power Electronics:


Peripherals Settings 97
Introduction 99
Contents ix

8 Basic Settings:
Serial Communication COM and Hardware Target 101
8.1 Virtual Serial Communication through COM port . . . . . . 101

9 Simulink® Configuration 105


9.1 Simulink® Environments: Firmware vs Testing . . . . . . . . 107
9.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . 107
9.1.2 Execution in Simulink® . . . . . . . . . . . . . . . . . 108
9.2 MCUs and Real-Time Control with Simulink® . . . . . . . . 109

10 Serial Communication Interface (SCI) Peripheral 111


10.1 Hardware Details . . . . . . . . . . . . . . . . . . . . . . . . 112
10.2 Firmware Environment:
Send and Receive Data through Serial Communication . . . 113
10.2.1 C2806x SCI receive . . . . . . . . . . . . . . . . . . . . 113
10.2.2 C2806x SCI transmit . . . . . . . . . . . . . . . . . . . 116
10.3 Testing Environment:
Send/Receive Data through Serial Communication . . . . . . 117
10.3.1 Serial configuration . . . . . . . . . . . . . . . . . . . . 117
10.3.2 Serial send . . . . . . . . . . . . . . . . . . . . . . . . 118
10.3.3 Serial receive . . . . . . . . . . . . . . . . . . . . . . . 119
10.4 Time Variable Settings (Sample Rates) . . . . . . . . . . . . 120
10.5 Examples on Serial Communication . . . . . . . . . . . . . . 122

11 GPIO Peripheral—Digital Input/Output 131


11.1 Hardware Details . . . . . . . . . . . . . . . . . . . . . . . . 131
11.2 Firmware Environment: GPIO Peripherals . . . . . . . . . . 133
11.2.1 C2806x GPIO digital input (GPIO DI) . . . . . . . . 133
11.2.2 C2806x digital output (GPIO DO) . . . . . . . . . . . 134
11.3 Examples with GPIO blocks . . . . . . . . . . . . . . . . . . 135

12 Analog to Digital Converter Peripheral 149


12.1 Operating Principle . . . . . . . . . . . . . . . . . . . . . . . 149
12.1.1 Sample & hold . . . . . . . . . . . . . . . . . . . . . . 150
12.1.2 Analog to digital converter . . . . . . . . . . . . . . . 150
12.2 Hardware Details . . . . . . . . . . . . . . . . . . . . . . . . 151
12.2.1 Difference between acquisition window
and sample time . . . . . . . . . . . . . . . . . . . . . 153
12.3 Firmware Environment: ADC Peripheral . . . . . . . . . . . 153
12.3.1 C2806x ADC . . . . . . . . . . . . . . . . . . . . . . . 153
12.4 Example with ADC block . . . . . . . . . . . . . . . . . . . . 155
12.5 Synchronization between ADC modules . . . . . . . . . . . . 160
x Contents

13 Pulse Width Modulator Peripheral 163


13.1 Operating Principle . . . . . . . . . . . . . . . . . . . . . . . 164
13.2 Hardware Details . . . . . . . . . . . . . . . . . . . . . . . . 166
13.2.1 ePWM sub-modules . . . . . . . . . . . . . . . . . . . 169
13.3 Generation of PWM signals . . . . . . . . . . . . . . . . . . . 171
13.3.1 Counting modes . . . . . . . . . . . . . . . . . . . . . 172
13.3.2 ePWMxA and ePWMxB sub-modules . . . . . . . . . 174
13.3.3 Setting dead bands . . . . . . . . . . . . . . . . . . . . 175
13.4 Firmware Environment: ePWM Peripheral . . . . . . . . . . 178
13.4.1 C2806x ePWM . . . . . . . . . . . . . . . . . . . . . . 178
13.5 Example with ePWM block . . . . . . . . . . . . . . . . . . . 186
13.6 DAC Peripheral—Filtered PWM . . . . . . . . . . . . . . . . 191
13.7 Examples with DAC Peripherals . . . . . . . . . . . . . . . . 192
13.8 Synchronization between Multiple ePWM Modules . . . . . . 197
13.9 Synchronization between ADC and ePWM Modules:
Average Measurements . . . . . . . . . . . . . . . . . . . . . 202
13.10Events Execution within Sample Time . . . . . . . . . . . . 204

14 Encoder Peripheral 207


14.1 Operating Principle of Incremental Encoders . . . . . . . . . 207
14.2 Hardware Details . . . . . . . . . . . . . . . . . . . . . . . . 209
14.3 Optical Rotary Encoder LPD3806 . . . . . . . . . . . . . . . 210
14.4 Speed Computation . . . . . . . . . . . . . . . . . . . . . . . 211
14.5 Firmware Environment: eQEP Peripheral . . . . . . . . . . . 213
14.5.1 C2806x eQEP . . . . . . . . . . . . . . . . . . . . . . . 213
14.6 Example with eQEP block . . . . . . . . . . . . . . . . . . . 215

IV Real-Time Control in Power Electronics:


Applications 219
15 Open Loop Control of a Permanent Magnet DC Motor 221
15.1 Required Hardware . . . . . . . . . . . . . . . . . . . . . . . 221
15.2 Linear Model of a PMDC Motor . . . . . . . . . . . . . . . . 222
15.3 System Simulations . . . . . . . . . . . . . . . . . . . . . . . 226
15.4 Half-Bridge Configuration . . . . . . . . . . . . . . . . . . . . 227
15.4.1 Control implementation . . . . . . . . . . . . . . . . . 231
15.5 Full-Bridge Configuration . . . . . . . . . . . . . . . . . . . . 234
15.5.1 Modulation strategies . . . . . . . . . . . . . . . . . . 235
15.5.2 Unipolar voltage switching . . . . . . . . . . . . . . . 236
15.5.3 Bipolar voltage switching . . . . . . . . . . . . . . . . 241
15.5.4 Control implementation . . . . . . . . . . . . . . . . . 246

16 Low-Side Shunt Current Sensing 251


16.1 Sensor Characterization: Theoretical Approach . . . . . . . . 252
16.2 Locked Rotor Test . . . . . . . . . . . . . . . . . . . . . . . . 254
16.3 Sensor Characterization: Experimental Approach . . . . . . . 260
Contents xi

17 Current Control of an RL Load 267


17.1 Required Hardware . . . . . . . . . . . . . . . . . . . . . . . 267
17.2 Linear Average Model and Controller Design . . . . . . . . . 269
17.3 System Simulations . . . . . . . . . . . . . . . . . . . . . . . 271
17.3.1 Detailed modeling of the actuation variables . . . . . . 271
17.4 Half-Bridge Configuration . . . . . . . . . . . . . . . . . . . . 273
17.4.1 Control implementation . . . . . . . . . . . . . . . . . 280
17.5 Variation of Load Parameters . . . . . . . . . . . . . . . . . 288
17.5.1 Effects on the transient response . . . . . . . . . . . . 288
17.5.2 Parameters estimation . . . . . . . . . . . . . . . . . . 290

18 Voltage Control of an RLC load 293


18.1 Required Hardware . . . . . . . . . . . . . . . . . . . . . . . 293
18.2 Guidelines for the Hardware Design of a RLC Load . . . . . 296
18.3 General State-Space Average Modeling Method . . . . . . . . 300
18.3.1 Linear average model and controller design . . . . . . 303
18.4 System Simulations . . . . . . . . . . . . . . . . . . . . . . . 306
18.5 Half-Bridge Configuration . . . . . . . . . . . . . . . . . . . . 306
18.5.1 Control implementation . . . . . . . . . . . . . . . . . 314
18.6 Variations of LC Filter Parameters . . . . . . . . . . . . . . 322

19 Cascade Speed Control of a Permanent Magnet DC Motor 325


19.1 Required Hardware . . . . . . . . . . . . . . . . . . . . . . . 327
19.2 Linear Model of a PMDC Motor . . . . . . . . . . . . . . . . 328
19.3 Cascade Control Architecture and Design . . . . . . . . . . . 330
19.4 System Simulations . . . . . . . . . . . . . . . . . . . . . . . 333
19.5 Full-Bridge Configuration . . . . . . . . . . . . . . . . . . . . 334
19.5.1 Model reference adaptive system (MRAS) observer . . 344
19.6 Single Motor Configuration . . . . . . . . . . . . . . . . . . . 347
19.6.1 Parameter identification . . . . . . . . . . . . . . . . . 348
19.6.2 Control implementation . . . . . . . . . . . . . . . . . 350
19.7 Back-to-Back (B2B) Configuration . . . . . . . . . . . . . . . 361
19.7.1 Parameter identification . . . . . . . . . . . . . . . . . 363
19.7.2 Control implementation . . . . . . . . . . . . . . . . . 364

V Real-Time Control in Power Electronics:


Load Emulation 371
20 Debugging Tools and Firmware Profiling 373
20.1 Processor-in-the-loop with Simulink® . . . . . . . . . . . . . 373
20.1.1 PMDC motor control implementation through PIL . . 375
20.2 External Mode Execution with Simulink® . . . . . . . . . . . 380
20.2.1 Simulink® setup for external mode execution . . . . . 381
xii Contents

21 Electric Propulsion Case Studies 385


21.1 Urban Tramway . . . . . . . . . . . . . . . . . . . . . . . . . 385
21.2 Electric Racing Car . . . . . . . . . . . . . . . . . . . . . . . 390

A Appendix A: Basics of C 401


A.1 Operations between numbers . . . . . . . . . . . . . . . . . . 401
A.1.1 Sum and differences . . . . . . . . . . . . . . . . . . . 401
A.1.2 Shift operation . . . . . . . . . . . . . . . . . . . . . . 401
A.1.3 Multiplication . . . . . . . . . . . . . . . . . . . . . . . 402
A.1.4 Division . . . . . . . . . . . . . . . . . . . . . . . . . . 402
A.2 Structure of a C program . . . . . . . . . . . . . . . . . . . 403

B Appendix B: Custom Expansion Boards and Hardware Kits 405

Bibliography 423
Index 427
Foreword

The new book Introduction to Microcontroller Programming for Power Elec-


tronics Control Applications contains the fundamental subjects of the interdis-
ciplinary field of power electronic based systems, which draws knowledge from
circuit and control theory, (digital) signal processing for embedded implemen-
tation, electrical machines/drives, and power semiconductor devices. Written
for students and practicing engineers, this book introduces the analysis and de-
sign of motor control systems and their implementation on microcontrollers.
The requirements and capabilities of the latter influence the structure and
design choice of the closed-loop control scheme, a subject particularly rele-
vant for laboratory activities both at university and industry level. This book
presents state-of-the-art techniques to implement modulation schemes and
control algorithms in a commercial microcontroller (MCU) suitable for rapid
prototyping approach, and hint for designing analog circuits, such as low-
voltage converter, output filters/load. MATLAB/Simulink® is introduced and
used to solve example problems.
The book presents a concise workflow for the reader by using a specific
embedded target, which is not a limiting factor for the validity of the sug-
gested approach. The latter can be extended even to different boards. It is
valuable to every graduate student, serving as a textbook for classes (looking
to create teamwork) and as a starting point for more advanced studies, for
industry professionals, researchers, and academics willing to study the broad
field of power electronics. The contents of the book are easy to read and pre-
sented in an interesting way with good illustrations and solid background on
the underlying theory. Solved problems (built-in files) are presented to help
the readers.

Introduction to Microcontroller Programming for Power Electronics Control


Applications is unique in the synthesis of the main characteristics of electri-
cal drive behavior and in their link to the main implementation aspect into
modern MCU, trying to fill the gap between system/circuit design, control
techniques, and digital signal processing. The authors are power electronics
and drives specialists from the Electrical Machines, Drives and Power Elec-
tronics Research Group of Politecnico di Milano, Italy. They collected in the
book the several years of teaching and subjects of the laboratory activities for

xiii
xiv Foreword

the M.Sc. in Automation and Control Engineering and Electrical Engineering


at the same university, with the collaboration and contribution of industrial
partner. As industrial partners, we retain this book a great achievement of
the last four years collaboration with the authors.

Angelo Strati — Field Application Engineer Italy


Domenico Santoro — Field Application Engineer Italy
. Giuseppe Ballarin — Team Leader FAE Italy
Würth Elektronik Group
angelo.strati@we-online.com

Most people go about their day blissfully unaware of the electric motors that
are spinning the world around us. We wake up staring upwards at a ceiling
fan, silently rotating in a circle. We jump into our car and rely on up to
40 motors—pumps, fans, locks, and lifts—to get us to our destination. We
power up our laptop computers and hear the soft whine of fans working to
keep the electronics cool. Motors are everywhere because they are one of the
main ways that an electronic circuit can interact with the real world, i.e. a
power electronic-based system. They are “lectromechanical, turning analog
and digital signals into real and visible mechanical motion. It is estimated
that electric motors consume 45 percent of the total worldwide electricity—
this is a stunning statistic! As we look to reducing energy consumption and
enabling a greener future, electric motors present a huge potential for efficiency
improvements.
Few engineering students are aware of the impact of electric motors on
the world around them, and even less are versed in the design and control of
motor systems. This is a problem! We need engineers growing in competency
in this field to create better and more efficient motor drive systems.
Motor drive and control is an incredibly multidisciplinary field. Real-time
digital processing is implemented in microcontrollers to be the “brain” behind
the motor system; controlling speed, power, and efficiency from the digital
domain. A wealth of analog components from power management (voltage
regulators & gate drivers) and signal chain (amplifiers & sensors) interface
the microcontroller to the motor through a power converter while providing
sensing, safe operation, and support for the system. Texas Instruments has
over 25 years of experience in the field of real-time control and also provides

Texas Instruments Incorporated (Nasdaq: TXN) is a global semiconductor company


that designs, manufactures, tests and sells analog and embedded processing chips for mar-
kets such as industrial, automotive, personal electronics, communications equipment and
enterprise systems. Our passion to create a better world by making electronics more afford-
able through semiconductors is alive today, as each generation of innovation builds upon
the last to make our technology smaller, more efficient, more reliable and more affordable—
making it possible for semiconductors to go into electronics everywhere. We think of this
as Engineering Progress. It is what we do and have been doing for decades. Learn more at
www.ti.com.
Foreword xv

a comprehensive analog portfolio covering every block of the motor drive and
control system.
This book presents very practical and important lessons to engineers and
engineering students alike on the topics of motor drive and control, covering
not only general concepts but details on how to create a motor drive system.
It provides an excellent resource to encourage the next generation of engineers
to grow and develop skills in the area of electric motors and power electronics,
introducing them the tools they need to make an impact on the world.
Politecnico di Milano is an outstanding academic partner, and the focus
of the Electrical Machines, Drives and Power Electronics Research Group on
cutting-edge power electronic-based technologies helps shape quality engineer-
ing minds. We wish the best of success to this publication and to the continued
collaboration between industry and academia.

Olivier Monnier — Marketing Manager, C2000 Real-Time MCU


Matt Hein — Applications Manager, Brushless-DC Motor Drives
. Antonio Faggio — Field Application Engineer
Texas Instruments Inc.
a-faggio@ti.com

Can you write the 100 million lines of code that are needed to build an average
modern car? The answer is pretty obvious: of course you can, it’s just a matter
of time. And how would you compare the complexity of this problem to writing
the 4501 lines of assembly code needed to build the first version of UNIX in
1971? While both tasks appear to be at a similar level of dauntlessness, the half
century separating them has witnessed the emergence of high-level languages
that enable programmers to address highly complex problems on their own
while reusing the legacy of their peers.
At MathWorks Inc., we relentlessly work on providing the best high-level
programming tools to automate the implementation of your ideas into embed-
ded systems. Simulink allows you to design and simulate complex algorithms
that you can translate into thousands of lines of embedded code with a click
of a button via our code generation technology.
The book Introduction to Microcontroller Programming for Power Elec-
tronics Control Applications will teach you how to use these modern techniques
to create control algorithms for systems involving complex physics. The re-
markable work of Mattia Rossi, Nicola Toscani, Marco Mauri and Francesco
Castelli Dezza from Politecnico di Milano, Italy, clearly explains deep concepts
to the reader in the field of embedded programming for power electronics ap-
plications using Model-Based Design.

The copyrighted material included in this book is reprinted with permission of The
MathWorks, Inc.
xvi Foreword

While the shift to digital is now largely dominating the industry of mo-
tor control, this revolution is just starting for power conversion applications.
The material in this book provides state of art techniques to train the many
engineers that the world needs tomorrow in a field that is at the core of the
indispensable transition to clean energy.
In recent conversations with Mattia and Nicola, while they politely thanked
us for our help, it was clear to us that the quality and the amount of effort
in this book deserved much more thanking from our side. With this foreword,
we extend all our gratitude to this outstanding contribution to accelerating
the pace of engineering and science, our core mission.

Antonin Ancelle — Embedded Targets Development Manager


John Kluza — Embedded Systems Partner Manager
Tom Erkkinen — Code Generation Marketing Manager
.
Brian McKay — Embedded Systems Partner Manager
MathWorks Inc.
aancelle@mathworks.com

www.we-online.com www.ti.com www.mathworks.com


Preface

Power electronics-based systems are the key enabling technology to meet most
of the future sustainable challenges from grid to motor applications.
Standard textbooks and courses about power electronics and electrical ma-
chines deal with analysis in continuous-time, averaged modeling of switched-
mode power converters, and continuous-time control theory. Nevertheless, real
control algorithms and management functions around power converters are
implemented digitally, thus, extending the field of fundamentals studies to
discrete-time modeling and digital control concepts specific to power electron-
ics. The necessary background is achieved by combining specific textbooks
and courses from both power electronics and digital control theory. However,
students who approach the design of digitally controlled power converters for
the first time may not fully understand and successfully practice for a targeted
problem due to such fragmented references.
In this book, we attempt to fill this gap by treating the fundamental as-
pects of digital control implementation for power electronics based systems
in a systematic and rigorous manner. Our objectives are to put the reader
in the position to understand, analyze, model, design, and implement digital
feedback loops around power converters, from system-level transfer function
formulations to understand which coding tool may be used when working
with microcontroller (MCU or µC) platforms. In particular, the latter be-
longs to Texas Instruments™ C2000™ family, which is specifically designed
for real-time closed loop control such as power supplies, industrial drives,
and solar inverters applications. The Simulink® environment is able to au-
tomatically generate ANSI/ISO C/C++ code tailored for specific embedded
targets through a model-based workflow. Given the settings which enable a
background usage of the Code Composer™ Studio IDE, a Simulink® scheme
can be directly compiled and executed on C2000™ MCUs. Such automated
build and execution procedure speed up the control algorithms implementa-
tion, thus, the code generation of software interfaces and MCU peripherals
(e.g. ADC, digital I/O, PWM), which can be tested with execution profiling.
This makes the reader working in a rapid prototyping manner.
This book is oriented to graduate students of electrical and automation
and control engineering pursuing a curriculum in power electronics and drives.
Moreover, it aims to be a reference for engineers and researchers who seek to
expand on the expertize in design-oriented knowledge for the aforementioned
applications. It is assumed that the reader is well acquainted with funda-
mentals of electrical machines and power converters, along with associated

xvii
xviii Preface

continuous-time modeling and control techniques. Familiarity with sampled-


data, discrete-time system analysis and embedded design topics is helpful but
not absolutely essential since the scope of the book is to provide a basic knowl-
edge even to whom is approaching these topics for the first time. Key concepts
are developed from scratches, including a brief review of control theory and
detailed description of the hardware and test bench used. Either custom ex-
pansion boards and assembled kits are open to users community. Project files
can be shared and/or pre-assembled boards/kit can be directly shipped.
There is no standard notation to cover all of the topics covered in this
book. We tried to use the most familiar notation from the literature whenever
possible to help the reader’s understanding through the chapters.
Acknowledgments

Most of the projects shown in this book have been funded by the Department
of Mechanical Engineering of Politecnico di Milano, Italy, with the particular
contribution of its Laboratory of Electrical Drives and Power Electronics.
Special thanks goes to the university rector Prof. Ferrucio Resta and the
department director Prof. Marco Bocciolone for their support to this initiative.
We are grateful to our graduate students Marco Gerosa, Matteo Scandella,
Andrea Polastri, Matteo Sposito, and Luca Grittini for the precious work
in supporting the hardware development, the boards testing and the many
suggestions they made. We also thank all the Ph.D. students and researchers
who contributed to this book. In particular, Dr. Khaled ElShawarby and Dr.
Alberto Bolzoni, who were supporting the project from day zero.

This book is the final outcome of a collaboration between Politecnico di


Milano, Italy, Würth Elektronik™ Group Texas Instruments™ Inc. and
MathWorks® Inc. . The authors are grateful to them for their support, help
and vision. In particular, Tristan De Cande for his encouragement to tight
the collaboration between university and company; Antonio Faggio and the
US C2000™ product line of Texas Instruments™ Inc. for their commitment to
invest in young generation growing at the university; Angelo Strati, Giuseppe
Ballarin, Domenico Santoro, Andrea De Gruttola from Würth Elektronik™
Group for helping in components selection and boards design; Antonin
Ancelle, John Kluza and their teams from MathWorks® Inc. for their help
on embedded development. Moreover, we thank also MathWorks® Inc. for let-
ting us being part of their Book Program.

The authors would like to specially thank Prof. Petros Karamanakos from
Tampere University, Finland, and Prof. Ralph Kennel from Technical Univer-
sity Munich, Germany, for their guidance, long discussions and availability to
share their high expertize in this field.

We are grateful to Nora Konopka and CRC Press LLC from Taylor and Fran-
cis Group for publishing this book. Special thanks goes to Prachi Mishra for
her guidance and support.

Finally, we acknowledge the inspiration, patience, and support of our fami-


lies during the preparation of this book, who allowed us to work during long
nights, weekends, and holidays. The book is dedicated to Daniela.

xix
Biographies

Mattia Rossi is a Research Assistant at Politecnico di


Milano, Italy. He received the B.Sc. and M.Sc. degrees in
Automation and Control Engineering from Politecnico di
Milano, Italy, in 2013 and 2015, respectively. In 2015, he
was at the ABB MV Drives, Switzerland, working on en-
hanced motor control design to reduce mechanical vibrations
in motor-load couplings. Since 2016, he is a Ph.D. student
in Electrical Engineering at Politecnico di Milano, Italy, in
collaboration with Tampere University, Finland. In 2019, he
was a visiting Ph.D. student at the Technical University of
Munich, Germany. His main research activities cover model predictive control
(MPC) algorithms for multilevel medium voltage power electronic-based sys-
tems and their embedded implementation, aiming to improve power conversion
efficiency and system components reliability. He received the Best Student Pa-
per Award at the 2019 IEEE International Symposium on Predictive Control
of Electrical Drives and Power Electronics, and the Jorma Luomi Student Fo-
rum Award at the 2016 International Conference on Electrical Machines.
Email: mattia.rossi@polimi.it

Nicola Toscani received the Bachelor (B.Sc.), Master of


Science (M.Sc.), and Doctor of Philosophy (Ph.D.) degrees
in Electrical Engineering from the Politecnico di Milano,
Milan, Italy, in 2013, 2015, and 2019, respectively. He is
currently working as a Postdoctoral Research Fellow in the
Department of Mechanical Engineering of Politecnico di Mi-
lano. His last research activities deal with the development
and the control of electrical machines for high-performance
vehicles and wireless power transfer. His research inter-
ests also include modeling strategies for Electromagnetic
Compatibility problems, Power Electronics and Electrical Drives. Email:
nicola.toscani@polimi.it

xxi
xxii Biographies

Marco Mauri is an Assistant Professor in Electrical Ma-


chines and Drives at Politecnico di Milano, Italy. He received
the Master of Science (M.Sc.) and Doctor of Philosophy
(Ph.D.) degrees in Electrical Engineering from Politecnico
di Milano in 1998 and 2002. His research interests mainly
include the control of electrical machines and modeling prin-
ciple of electrical drives and electromagnetic effects. He is a
member of the IEEE Power Electronics and Industrial Elec-
tronics societies Email: marco.mauri@polimi.it

Francesco Castelli Dezza is a Full Professor in Electri-


cal Machines and Drives at Politecnico di Milano, Italy.
He received the Master of Science (M.Sc.) and Doctor of
Philosophy (Ph.D.) degrees in electrical engineering from
the Politecnico di Milano, Milano, Italy, in 1986 and 1990,
respectively. He is currently the head of the Electrical Ma-
chines, Drives and Power Electronics research group of Po-
litecnico di Milano, Italy, which is mainly located at the De-
partment of Mechanical Engineering of the same university.
His research interests include studies on dynamic behavior of
electrical machines, electrical drives control and design, and power electronics
for energy flow management. He is a member of the IEEE Power Electronics
and Industrial Electronics societies. Email: francesco.castellidezza@polimi.it
1
Advances in Firmware Design for Power
Electronics Control Platforms

The rising complexity and tighter requirements of power electronics-based sys-


tems lead to a great complexity of digital control algorithms, which has to be
tested in many working conditions, i.e., looking for reliability. Hence, firmware
design and testing routines have become increasingly time-consuming. To
speed up the proof of concepts and to improve firmware quality assurance, the
simulation analysis is combined with several automatic code generation proce-
dures to achieve rapid prototyping. Such approach is aimed to test the control
algorithm and the related generated code on real hardware through mini-
mal modifications. This approach also helps to identify coding and platform-
specific configuration errors, as well as to get rid of them. In particular, this
book refers to microcontrollers (MCU or µC).
In this first, introductory chapter, basics of embedded systems and corre-
sponding coding approaches are presented in detail.

1.1 Embedded Control System


Everyone who encounter these book subjects for the first time may have a
very fundamental question: what is an embedded system?
To provide a clear answer, it is necessary to underline the major difference
between a microprocessor and a microcontroller first.
A microprocessor is the computational intelligence of complex systems,
i.e., the central processing unit (CPU), which is optimized to do logical-
mathematical computations. It usually has mainly on-board communica-
tions peripherals to interact with the rest of the system. However, in many
fields, including power electronics-based systems, there is the need for com-
municating with rather complex peripherals like Analog-to-Digital Conver-
sion (ADC) channels, Digital-to-Analog Conversion (DAC) modules, Pulse-
Width-Modulation (PWM) peripheral, and Inter Integrated Circuit (I2C)
communication.
A microcontroller (MCU) is designed to include such peripherals. Hence,
a MCU is a device built around a microprocessor (or CPU), where the

DOI: 10.1201/9781003196938-1 1
2 Advances in Firmware Design for Power Electronics Control Platforms

Standard microprocessor Microcontroller


(PCs) (Power electronics)
• High computational power • “Low” computational power
• Several communication peripheral • Communication, actuation and
sensing (measurements) peripherals
• General usage (e.g., software sim- • Target usage: optimizing perfor-
ulations, document editing) mances and costs

number of peripherals as well as their type and accuracy/resolution are related


to the final market price other than the specific task they have to carry out.
Figure 1.1 shows an example of architecture of MCU board. Note that, MCU
refers to microprocessor for which the computational power is significantly
lower compared to those used inside a personal computer. This is the reason
why most of the MCUs for the industrial markets are able to manage a re-
duced number of computations even if they drive high-speed/high-resolution
peripherals.
Therefore, an embedded system can be generally defined as a control plat-
form based on a programmable logic (i.e., microprocessor), where the control
algorithm and the peripheral interfaces are dedicated to specific tasks/func-
tions or a group of them. All the application requirements, e.g., from ADC
resolution to modulator dead time, are given from the beginning. This allows
every user to choose the best trade-off between computational power, type of
peripherals, and unitary cost, optimizing its design. The algorithm is executed
in real-time, generally without using an on-board operating systems (OS). In-
deed a custom (light) OS might be needed just for the most demanding cases.
Nowadays, the modern definition of embedded system mainly refers to mi-
crocontrollers. Nevertheless, even a single microprocessor which is specialized

CPU
A/D
CONVERTER RAM

PROGRAM
CLOCK
MEMORY
MCU

Figure 1.1 Example of the architecture of a MCU board [11].


Selecting a Development Board 3

Figure 1.2 Examples of power electronic-based applications [8].

in certain class of computations, or even custom designed for the applica-


tion at hand, may be considered as an embedded system. This is the case
of digital signal processors (DSPs), which are out of the scope of this book.
The wide-ranging insertion of power electronics in many applications with
different requirements still creates market for microcontrollers. Some of such
applications are reported in Figure 1.2. As an example, the MCU usage in the
automotive field is grown about +11% from 2006 to 2015. The popularity of
MCUs depends on their ability to work with floating point variables (i.e., to
include a floating point unit) as well as their benefit from mass production.
Nevertheless, some applications require cost-effective devices,1 thus, working
with integer variables (e.g., 8–16 bit), targeting low cost MCUs. Furthermore,
in order to extend the potential market of control platforms, today microcon-
trollers can be interfaced with different peripheral on the same pins, which
can be chosen by setting different values on the corresponding registers. Thus,
that allows to have more peripheral channels than pins.

1.2 Selecting a Development Board


Power electronics-based systems like power management and motor drive are
going on with their fast evolution toward high-performance and high-efficiency
solutions. Likewise, the demand for digital control algorithms managing the
electronic component operations and the overall system has been rising, and
embedded systems have been increasing in complexity reaching fast execution
times. Therefore, it has become a standard engineering practice to test the
control algorithm through real-time simulations and to verify its feasibility
based on the hardware at disposal. This is the reason why in both research
centers and academia development board must be updated according to the
new emerging platforms on the market.
The selection of the development board represents the very first
task of a project. In particular, development boards are designed to be
efficient, portable, and sensored according to a specific applications field.

1 From the customer’s point of view the “best” microcontroller is the one which matches

all the application requirements at the lowest price.


4 Advances in Firmware Design for Power Electronics Control Platforms

Since this book focuses on electrical power conversion case studies, from
now on the text refers to MCU platforms targeted to power electronics-based
applications. Even if this last statement reduces the candidate list, there still
are several suitable solutions available on the market which share a common
goal of being compact and versatile. Since the definition of a criterion to cat-
egorize each board would not be practical (i.e., there might be even deep
technology differences), it is recommended to follow a system-level approach
like the one presented here:
1. Consider all the components and peripherals that are necessary to
run all of the required features. If the board lacks any of them, it is
important to identify some supported expansions to include them.
2. Consider the supported programming languages and the level of
competence of the final user. Moreover, investigate if any automatic
code generation procedure is available as well as the quality of the
documentation at disposal for the adopted board. Indeed, commu-
nity and support are factors of great importance since they are the
primary resources when designing a project.
3. Evaluate costs versus adopted components for the considered spe-
cific application: is it worth paying for them?

1.2.1 Key elements of a microcontroller


The main features of microcontroller boards that set their performances are
reported below:

• CPU and clock speed: these two values affect the overall performance of
the board. Namely, how fast it can perform computations. It should be noted
that clock speed comparisons between CPUs coming from different families
may not lead to meaningful considerations. Other factors, such as instruction
cycles, instruction sets, and pipeline depth, also affect MCU performances.
• RAM: the size of this memory affects the number of tasks that can be run
simultaneously. It also impacts how fast data can be processed, as swapping
it from RAM to nonvolatile storage incurs large performance overheads.
• Graphical processing unit (GPU): it allows development board to run
video output (e.g., VGA/HDMI). High-performance GPUs are needed while
processing video/images with the development board.
• Data memory: it affects the size of programs, operating systems, and gen-
erated/downloaded data that can be stored on development boards.
• General purpose input/output pins: these pins are used to connect
external components to the development board in use. Hence, more pins
typically means more possible simultaneous connections. These pins are
usually assigned specific functionalities by the manufacturer being compli-
ant with some standards, such as integrated circuit (I2C), serial peripheral
Selecting a Development Board 5

interface (SPI), and universal asynchronous receiver/transmitter (UART).


These standards facilitate interoperability with third-party devices such as
displays or sensors.
• Analog-in pins: these pins are necessary for any data acquisition from
sensors and they are classified through the resolution and sampling rate of
the peripheral to which they are connected. In particular, resolution refers
to the number of discrete levels to which the input signal is quantized, while
sampling rate is the number of data points that can be obtained in a reference
time interval. High resolution is required for accurate measurements, while
high sampling rates are needed for the acquisition of fast changing signals.
• Pulse width modulator: pulse width modulation is a kind of digital signal
that is ideal for mimicking analog signals. Such signals are generated through
modulators which vary the duty cycle of square waves depending on the
desired output.
• Power supply and consumption: both of them can play a major role in
design choices. For portable products, the runtime requirements and power
demand of the board/associated components must be considered when se-
lecting an energy source. For example, a development board serving as a
data logger in a remote location must run uninterrupted for months, while
another one working as a mobile personal computer only needs to run for sev-
eral hours before recharging. Power consumption can be difficult to quantify
as many boards have varying modes of operation, allowing some of them
to work in very low power consumption modes. When considering power
consumption, the designer must take the following factors into account: re-
quired computational power, maximum run time without recharging, and
the cost/size of the energy source. The size of power sources is easier to
determine since it depends on the rated values of the adopted board

1.2.2 Programming microcontrollers


The development environment of boards affects how the designer interacts
with the hardware. The support for multiple operating systems, languages,
and integrated development environments creates a rich programming frame-
work and more appealing development board as well.
Depending on the specific application, all the onboard peripherals as well
as the main algorithm features have to be correctly set while programming
the MCU for executing required tasks.
Across the years, different coding approaches have been developed:

1. Low-level, based on machine code (e.g., Assembler language);


2. Intermediate-level, based on a combination of C-code (to define
algorithm features and peripheral settings) and the usage of an In-
tegrated Development Environment (IDE, e.g., Code Composer™
6 Advances in Firmware Design for Power Electronics Control Platforms

Studio from Texas Instruments™ ) to compile, link, debug, and down-


load the script on target;
3. High-level, based on a combination of objective-oriented languages
(e.g., Simulink® , to define algorithm features and peripherals set-
tings) and the usage of specific target toolbox to generate C-code,
compile, link, debug and download the algorithm into platform.
C code is considered as the universal language for microcontroller program-
ming, with C++ following closely behind. In addition, more and more boards
have custom IDEs associated with them, providing pre-configured device sup-
port and libraries, aimed at offering an all-around user-friendly workspace.
More versatile IDEs (i.e., those not designed for a specific development board)
allow users to explore alternative programming languages.
Each of the previously mentioned approaches has advantages and draw-
backs according to the end-user type. Some of the main differences between
low and high level coding are listed here in the following:
• Platform Dependencies
Low-level programming languages are platform-dependent, which means
that programs are written in such way they can run on the one hardware
configuration only. Instead, high-level programming languages are platform-
independent, that means programs written in such way can run on different
hardware configurations.
Remark: platform-independent does not mean operating system-
independent. Indeed, hardware configuration may change, but OS (if
present) should be the same for every new setup.
• Speed
Low-level language programs are faster than those written in high-level lan-
guage since they do not need to convert any algorithm in code executable on
the hardware. In addition, low-level languages have less syntax, functions,
keywords, and class libraries compared to other coding approaches.
• Easy Programming and Flexibility
Low-level languages are not as easy and user-friendly to manage as high-
level ones. Indeed, there are only two low-level programming languages,
which are Binary and Assembly. Binary language foresees codes made by
zeros and ones only, whereas Assembly requires some symbols knows as
mnemonics which are difficult to type. On the other hand, high-level lan-
guage programs are easy to write, read, modify, and understand. Moreover,
high-level languages have huge libraries with a rich set of functions, allowing
the development of algorithms for several applications with low effort.
• Performance
Since low-level language programs are faster than any other, their perfor-
mance are for sure better than those of high-level ones.
The C2000™ Family of MCU from Texas Instruments™ 7

• Translation
Programs written in Binary code does not need any translation as this lan-
guage is a machine code already. Namely, the hardware is capable of un-
derstanding them without any translation. Instead, Assembly codes need
an Assembler to translate programs to their equivalent counterpart in Ma-
chine Code. High-level languages are always translated by compilers or in-
terpreters. Some of them required both compilers and interpreters to get the
Object/Binary file.

• Support
Low-level languages have less support than high-level ones. There may be
lower number of communities for low-level languages than for high-level ones.

This book focuses on high-level programming languages which are user-


friendly both for students and for everyone who is approaching microcontroller
programming for the first time. In particular, coding/programming through
Simulink® is proposed in the following chapters.

1.3 The C2000™ Family of MCU from Texas


Instruments™
Texas Instruments™ (TI) offers free software development tools for
LaunchPad™ boards, such as Code Composer™ Studio (IDE) and Energia2 .
In addition, TI allows free use (limited size) of cloud-based development tools.
All these tools accept C/C++ code for programming.

Texas Instruments™ has a wide range of embedded processors from very


low-cost, limited performance up to high-cost, very high performance. Its main
product families are:

• MSP43x™ ultra-low-power microcontroller family;


• C2000™ microcontroller family;

• ARM-based microcontroller family;


• C5000™ low-power signal-processing DSPs;
• C6000™ high-perfomance signal-processing DSPs.

Among them, the C2000™ microcontroller family (also known as the


TMS320C2000™ family) is a product line aimed at high-performance control

2 Energia is a rapid prototyping platform based on Arduino IDE.


8 Advances in Firmware Design for Power Electronics Control Platforms

applications in the fields of motor control, digital power supplies, lighting, re-
newable energy, and smart grids. This family is made up of several subfamilies,
from which it is worth mentioning:

• C24xx: a 16-bit microcontroller that evolved from the TMS320C2x family


of digital signal processors.
• C28xx: a 32-bit microcontroller, fixed or floating point, with a robust set
of peripherals and I/Os which match the classical needs typical of power
electronics applications.

In particular, the C28xx chips are from low to high performance MCU.
Piccolo™ (which main features and applications are summarized in Figure 1.3)
and Delfino™ are the families for low and high performance microcontrollers,
respectively. Their main characteristics are reported here in the following:
1. Piccolo™
•MCU with floating-point unit;
•CPU frequency: from 40 to 120 MHz;
•Core: 1xC28x;
•Memory:
from 60 kbit up to 512 kbit flash;
from 12 kbit up to 100 kbit SRAM;
•Main peripherals: ADC, PWM, QEP, DMA, SPI, UART, I2C,
CAN, USB.
2. Delfino™
•MCU with floating-point unit;
•CPU frequency: from 100 to 200 MHz;
•Core: from 1xC28x up to 2xC28x + 2xCLA + ARM Cortex-
M4;
•Memory:
from 512 kB up to 1.5 MB flash;
from 68 kB up to 338 kB SRAM;
•Main peripherals: ADC, PWM, QEP, DMA, SPI, UART, I2C,
CAN, EMIF.
In particular, the following families of C28xx MCUs (which are also available
as LaunchPad™ development kits) are supported with a dedicated library
available in Matlab® Simulink® : F2802x Piccolo™ , F2803x Piccolo™ , F2805x
Piccolo™ , F2807x Piccolo™ , F2806x Piccolo™ , F2837xS Delfino™ , F2837xD
Delfino™ , F28004x, F2823x Delfino™ , F28M3x.
From Chapter 2 on, this book refers to a specific model of development board,
that is Texas Instruments™ LaunchXL F28069M Piccolo™ , which is shown in
Scheme of a Power Electronics Control Problem 9

Figure 1.3 LaunchPad™ Piccolo MCU framework [10].

Figure 1.4. The reason behind this choice is its low-cost, low-power, and simple
development environment of the board. Moreover, it has both a 256 kbit flash
memory and a 96 kbit RAM. Finally, the community and project support for
this device is relatively sparse compared to other boards. TI offers several plug-
in expansion boards to expand the capabilities of the F28069M LaunchPad™
Piccolo™ .

1.4 Scheme of a Power Electronics Control Problem


Most of the MCU-based closed loop control schemes for power electronics
applications can be summarized in a structure like the one reported in Figure
1.5, which refers specifically to C2000™ processors. More in details, the key
elements/features of this scheme (i.e., the ones necessary to close a loop) are:

• Reference: the controller must act to let the system follow a reference
signal. The latter can be both internally generated on the MCU or provided
as an external signal.
• Processing: this relates to the control logic implemented on the MCU.
The control structure is the main part of the scheme, since it is aimed at
generating the desired output based on the error between the reference and
the feedback signals. This stage may also comprise scaling routines.

Figure 1.4 F28069M LaunchPad™ Piccolo™ board.


10 Advances in Firmware Design for Power Electronics Control Platforms

Figure 1.5 Classical structure of a closed-loop control scheme for implemen-


tations on C2000™ -based boards and its main elements [13].

• Actuation: the controller output must be translated into a signal which


must be suitable and consistent with the actuation logic used to operate the
power converter. The modulator stage is the key element of the actuation
block, which also comprise the safety routines.
• Power electronics: this refer to the switching devices used to realize a
energy conversion. This system is used to drive different loads based on the
reference signal. Generally, this stage is not embedded into MCU boards.
Typically, they are built up on expansion boards.
• Sensing: sensors may be embedded on the MCU board or physically in-
stalled in close proximity of the switching device. In both case, analog sig-
nals must be acquired and digitalized through analog to digital converters
(included in the architecture of the MCU), being available to be processed
for closing the loop.

Note that, the C2000™ MCU family includes several parts of this struc-
ture representing a complex ecosystem. Its main features are summarized in
Figure 1.6.

Figure 1.6 C2000™ MCU feature highlights [13].


Scheme of a Power Electronics Control Problem 11

Figure 1.7 Traction converter and motor control for an efficient conversion DC
to AC to drive an electric motor [9].

Examples of fields of application for MCU boards


The wide-ranging integration of power electronics in many applications with
different requirements creates many control challenges. Several constraints
means large embedded platform capabilities (in addition to ad-hoc power elec-
tronics design) which is reflected in the demand of specific number/type of
peripherals, resolution/accuracy, computational power, safety target, power
absorbition, etc . Some examples of power electronic-based applications that
can be controlled by an MCU-based control scheme are:
• Industrial drives: they are aimed to control a wide variety of motors, e.g.,
AC and servo drives, equipped with sensing technologies (e.g., encoder or
sensor-less solutions) and communications networks (like real-time Ethernet
communications and functional safety topologies), which may be included
in a complex production system (such as robotic lines or rolling mills) or
targeted to a specific industrial task.
• Electric vehicles (auxiliaries and traction systems): advanced power
control technology is needed for the electrification of vehicles. In particu-
lar, a car environment comprises motor control technologies, e.g., traction
or propulsion motors, auxiliary motors, power steering, and digital power
12 Advances in Firmware Design for Power Electronics Control Platforms

Figure 1.8 Example of energy collection from PV panels [8].

technology, like charging stations (AC/DC), DC/DC power conversion, on-


board charging, and AC output stage. In order to achieve high performance
while maximizing driving range and minimizing energy loss, more attention
is needed on the choice of the right motor and the most efficient control
techniques. As more electric vehicles enter the market, it is challenging to
provide on-board charging solutions that can support multiple regions with
different power grid infrastructures [27].
Several aspects and subsystems may be defined and analyzed, thus, electric
vehicles represent a complex environment, as shown in Figure 1.7.
• Renewable and digital power: this kind of applications addresses the
growing need for high efficiency, smaller form factor, and adaptability in
digitally controlled power electronic converters driving energy productions,
such as photovoltaic panels and wind turbines.
Digital power management and control capabilities provide real-time intel-
ligence allowing for the development of adaptable high frequency switching
power supplies that automatically tune to their environment, improving ef-
ficiency and performance. This automatic adjustment allows for changes in
input voltage, output load current and system temperature, delivering en-
ergy savings with dynamic voltage scaling, and advanced control techniques
for optimal system performance [39].
Several aspects and subsystems (like batteries and power conversion substa-
tions) may be defined and analyzed, as reported in the renewable energy-
based distribution system shown in Figure 1.8.
Part I

Embedded Development:
Hardware Kits and Coding
2
Automatic Code Generation through
MATLAB®

Any time engineers design digital controls for power electronic-based applica-
tions, there are many good reasons to perform modeling and simulation:
• Test system behavior an possible variations, e.g., in the topology, power
supply, load.
• Test different passive (e.g. resistors, capacitors, inductors) and active (e.g.
semiconductor technology) elements to find suitable components.
• Test if the feedback control algorithms are able to meet the currents/volt-
ages/speeds regulation requirements.
Then, move to the coding stage aimed to embedded implementation for a
specific target. MathWorks® provides tools which bring the simulation stage
together with the implementation one, creating a powerful ecosystem which
allow to speed up the workflow from idea to practice.
In this book, the concepts of rapid prototyping and digital control tech-
niques for power electronics-based systems are explained by programming
a TI C2000™ based MCU platform through the MathWorks® MATLAB®
and Simulink® frameworks. Both MATLAB® and Simulink® are commonly
used for the analysis, design, simulation and optimization of models, includ-
ing power electronic circuits. For the latter, the Simscape™ Power Systems1
toolbox allows to model all the parts of power networks and to take into
account the realistic behavior of each component. Moreover, MathWorks®
along with various MCU manufacturers, such as Texas Instruments® , devel-
oped several Simulink® toolboxes aimed at automatically generating C/C++
targeted code for a specific CPU. Such toolboxes work together with the
IDE of the microcontoller supplier, i.e., TI Code Composer™ Studio in this
case.

1 Simscape™ toolbox enables a quick creation of models of physical systems within the

Simulink® environment. With Simscape™ , component models based on physical connections


are built directly integrated with block diagrams and other modeling paradigms. Thus, it
is possible to model systems such as electric motors, bridge rectifiers other than hydraulic
actuators. Their interactions can be included in the same environment.

DOI: 10.1201/9781003196938-2 15
16 Automatic Code Generation through MATLAB®

Figure 2.1 Model-Based Design workflow [34].

2.1 Model-Based Design and Rapid Prototyping


Rather than relying on physical prototypes and textual specifications, Model-
Based Design approach proposed by MathWorks® in [34] uses a system model
as an executable specification throughout development. It supports system-
and component-level design and simulation, automatic code generation, and
continuous test and verification.
Anyway, the best way to understand what a Model-Based Design is, it is
through an example (the reader is referred to [34]):
A team of engineers sets out to build a motor control unit for an AC
electrical drive. Because they are using the Model-Based Design approach,
they begin by settling an architecture model from the system requirements;
in this case, the system comprises the AC electrical machine, the power
converter, the sensing/actuation stage and the control unit. A simula-
tion/design model is then derived. This high-level model includes portions
of the controls software that will be running in the control unit, and the
load–in this case, the motor and the power converter. The team performs
initial system and integration tests by simulating this high-level model un-
der various scenarios to verify that the system is represented correctly and
that it properly responds to input signals. They add detail to the model,
continuously testing and verifying the system-level behavior against spec-
ifications. If the system is large and complex, the engineers can develop
and test individual components independently but still test them frequently
in a full system simulation. Ultimately, they build a detailed model of the
Model-Based Design and Rapid Prototyping 17

Figure 2.2 Model-Based Design workflow specified to power electronic-based


applications [33].

system and the specific environment in which it operates. This model cap-
tures the accumulated knowledge about the control unit (e.g. considering
the peripheral of the targeted MCU). The engineers generate code auto-
matically from the model of the control algorithms for firmware testing and
verification. Then, they download the generated code onto production hard-
ware (e.g., MCU) for testing in an real hardware.

As this example shows, Model-Based Design uses the same elements as tradi-
tional development workflows, but with two key differences:
• A system model is at the heart of development, from requirements capture
through design, implementation, and testing;
• It requires to follow this modeling approach to enable the automated rou-
tines, e.g., automatic code generation.
The workflow reported in Figure 2.1 can be specified for power electronic-
based applications, as shown in Figure 2.2.
18 Automatic Code Generation through MATLAB®

Simulations allow to analyze system performances in conditions otherwise


too expensive, risky, or time-consuming to consider. This aspect combined
with the possibility to automatically generate C, C++, HDL, or Structured
Text from the model (the generated code can be optimized and combined with
hand-written code) defines the rapid prototyping approach.

Goals of Real-Time Rapid Prototyping


Assuming that the functional requirements, the system hardware and the
targeted control platform are given, rapid prototyping (in terms of real-time
simulation, testing and coding) can be used to:

• Refine and verify the functional operations of control system design with
the exploited hardware by rapidly iterating between algorithm design and
prototyping;
• Continuously explore and test new ideas using a flexible, scalable platform;
validate whether a component can adequately control the physical system
in real time;
• Evaluate system performance, investigate scenarios and hardware interac-
tions that are complex, expensive, or dangerous to perform with production
hardware (i.e. before laying out hardware, coding production software);
• Test hardware cutting the development time from idea to practice, to avoid
costly design flaws by detecting errors early when they are still cost-effective
to correct.

For more information on this topic, the reader is referenced to [34].

2.2 Workflow for Automatic Code Generation


Making changes to the controller code during hardware testing can be time-
consuming. Indeed, modifying the code, recompiling and deploying it to the
microcontroller frequently may take long time depending on the extent of the
required improvements. As an alternative, Simulink® can generate C/C++
code for a specific MCU starting from the scheme which models the controller,
achieving rapid prototyping. By simulating the complete power electronic sys-
tem (controller included) over all its possible operating and fault conditions,
the ability to handle those same scenarios in the real system is increased.
Assuming to consider a generic power electronics-based systems, e.g., a
two-level converter driving a combined resistive-inductive (RL) load, it is
quite easy (and fast) to simulate the system behavior by representing it as
a transfer function or by means of physical components from the Simscape™
Workflow for Automatic Code Generation 19
Micro controller, discrete time

y ∗ (k)
Reference + e (k) PI u (k) PWM u (t) Power v (t) Electrical
− controller modulator electronics system

y (k) y (t)
Sensor

Figure 2.3 Block diagram of a microcontroller-based closed-loop system for


power electronics applications.

Power Systems library. In both cases, the system receives an actuating vari-
able/signal u(t) and it returns an output variable/signal y(t). Supposing to
design a closed-loop control, e.g., a PI-based current control, the regulator
processes the error y ∗ (t) − y(t) and it returns the control input u(t). The
whole control scheme is reported in Figure 2.3.
Due to the switching nature of power converters (i.e., discrete on-off behav-
ior), a modulation stage such as pulse width modulation (PWM), translates
the control input u∗ (t) into the actuating signal u(t) by a suitable switch-
ing pattern of the power converter. In this framework, the controller has to
be implemented into the processor of the MCU which cannot handle con-
tinuous signals. Thus, the control algorithm must be discretized. Namely, its
input/output signals are sampled at discrete time instances, i.e., u(k) and
y(k), while the discrete controller form is derived from the continuous-time
one through a discretization method. These latter aspects are deeply discussed
in Part II of this book.
The overall control implementation process can be summarized in three
main steps:
1. The Simulink® file is used to test and to optimize the controller
through simulation before its deployment on the selected hardware2 ;
2. Once the control design is ready, the control input and output are
substituted by the related MCU peripherals which are given in
Simulink® as block-set. According to the peripheral requirements,
it may be necessary to edit the data type of the signals;
3. Finally, the overall scheme (controller + I/O block-sets) can be
deployed on the MCU, i.e., translated into binary code and uploaded
into the MCU. The whole procedure is summarized in Figure 2.4.
This model translation is not simple since it involves several hidden steps.
Simulink® converts the model to a C programming code through MathWorks®

2 Given that the converter behavior is assumed to be faster than the load dynamics,

it is common practice to design the controller without taking the converter dynamics into
account
20 Automatic Code Generation through MATLAB®
Specifcations
I m pro v e m e nts

s
Simulation Bug
Firmware
Design of the
execution
control logic
E rrors
Discretization

Firmware
Automatic Deploy
Peripheral setting
code generation to hardware
Data type setting

Figure 2.4 Workflow for firmware design.

Embedded Coder® . Then, the executable C code is fed to the IDE Code Com-
poser Studio™ in which it is:
1. Sequentially compiled to assembly language exploiting the Texas
Instruments libraries;
2. Assembled (e.g., ASM source code);
3. Lik-edited;
4. Downloaded on the TI C2000™ MCU flash memory.
Figure 2.5 shows such steps with a flowchart.

Benefits
The key advantage of such rapid prototyping technique is a seamless integra-
tion capability over multiple processors. This can be achieved by just replacing

Simulink®
Embedded
Coder

C-code

Code Composer Studio™


Compiler

Assembly Linker OBJ to Hex


OBJ fle HEX fle
language converter

Download

Hardware

Figure 2.5 Simulink® workflow for firmware deployment on MCU boards.


Workflow for Automatic Code Generation 21

the processor specific block-set, making the necessary changes in their config-
uration rather than rewriting or rebuilding the whole model. This is valid not
only for hardware made by the same manufacturer, but by different producers
as well. Hence, designers do not have to worry about the compatibility of the
code. To validate changes made on the controller, it is enough to run the simu-
lation model first and, then, to verify that no errors are generated. Hence, this
approach is naturally oriented to research and development activities (i.e., for
academic and industries).

Drawbacks
It is important to underline how such procedure may imply performance bot-
tlenecks. Skipping the effort of low-level coding may limit the computational
efficiency of the generated code. The resulting C/C++ code is numerically
equivalent to the previously validated algorithms in Simulink® , but these lat-
ter has to be prepared for code generation, e.g., introducing implementation
considerations needed for low-level C code and using functions for code gen-
eration support.
To clarify such concept, the code generation of a simple MATLAB® func-
tion which multiplies two inputs is investigated here in the following:

function c = Prod(a,b) #include “Prod.h”


% multiply two inputs double Prod(double a, double b)
c = a * b; {
AAreturn a * b;
}
(a) MATLAB® source code (b) generated C code

Given two scalar inputs, the automatically generated C code maps clearly
back to the MATLAB® environment, as shown above.
Nevertheless, as any MATLAB® algorithms intended for code generation,
implementation constraints due to the differences between the two program-
ming languages must be considered. These mainly include:

• Memory allocation: in MATLAB® , memory allocation is automatic while


in C code is manual. Namely, it may be allocated either statically (using
static), dynamically (using malloc), or on the stack (using local variables).
• Array-based language: MATLAB® provides a rich set of array operations
that allow concise coding of numerical algorithms; C code requires explicit
for-loops to express the same algorithms.
• Data type: MATLAB® automatically determines the data types and sizes
as the code runs; C language requires explicit type declarations on all the
exploited variables and functions (e.g., int, uint, single, double).
22 Automatic Code Generation through MATLAB®

• Polymorphism: MATLAB® functions can support many different input


types and they adapt the use of proper operators, while C code requires
clear data type declarations.

Given the purpose of this book, the last two points require particular at-
tention. The polymorphism can give a single line of MATLAB® code different
meanings depending on the inputs. For example, the function shown previ-
ously could mean scalar multiplication, dot product, or matrix multiplication.
In fact, the inputs could be of different data types (logical, integer, floating-
point, fixed-point) or either real or complex numbers. If two matrices are
multiplied, the automatic procedure produce many lines of C code, even with
3 for-loops, as shown here in the following:
void Prod ( const double a [12] ,
const double b [20] ,
double c [15])
{
int i0 ; int i1 ; int i2 ;
for ( i0 = 0; i0 <3; i0 ++)
{
for ( i1 = 0; i1 <5; i1 ++)
{
c [ i0 + 3 * i1 ] = 0.0;
for ( i2 = 0; i2 <4; i2 ++)
{
c [ i0 + 3 * i1 ] =...
... a [ i0 + 3 * i2 ] * b [ i2 + ( i1 << 2)];
}
}
}
}

Thus, this piece of code looks quite different from that one reported before.
For further information on this topic, the reader is referenced to [5].

2.3 Generate Code for C2000™ Microcontrollers


MATLAB® Coder™ , Simulink® Coder™ , and Embedded Coder® generate
ANSI/ISO C/C++ code that can be compiled and executed on Texas
Instruments™ (TI) C2000™ microcontrollers (MCUs) using Code Composer™
Studio IDE. Embedded Coder® allows an easy configuration of the code gen-
eration from MATLAB® and Simulink® algorithms to control software inter-
faces, optimize execution performance, and minimize memory consumption.
Discovering Diverse Content Through
Random Scribd Documents
AS YOU LIKE IT
By Mrs. J. Meissner

All the words in this pattern should be in your every-


day vocabulary. For instance, the first word means a
lot to golfers, and there are several that will please
the housewives.
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17
18 19 20 21 22
23 24 25 26
27 28 29 30 31
32 33 34 35
36 37 38 39 40
41 42
43 44 45 46 47 48 49 50
51 52 53 54
55 56 57 58
59 60 61 62 63 64
65 66 67 68 69
70 71 72 73 74
75 76 77

[18]

HORIZONTAL
Cavity1 Id est42
Morning5 prayer Towards
43
Down9with Part 45
of the eye
Form13of “to be” Petition
48
Condiment
14 made from Indef.50article
bean Haunch51
A number
15 Greetings
53
Short17song Skill 54
A seed
18 vessel Splendor
55
To sift
21 Kind57 of type
Sooner
23 than A poet60
A purpose
24 Armed 61 conflict
Point26 Aeriform
63 fluid
Chronicles
27 Tilted65
Mexican
29 cat A tree68
Terminate
32 To lengthen
70
Affinity
33 Witty71saying
To be34drowsy Male73 adult
By 36 Before74 time
Doctrines
37 Measure
75
Baubles
38 The 76whole
Parent
40 Inquiries
77
Spanish
41 for “the”

VERTICAL

Hearty1 Ailing
37
Mineral
2 Perch39
Motto3 Lubricant
44
Man’s5name Respect
46
Yes 6 Killed
47
That thing
7 Rouse48
Modern8 Figure with equal
Candy
10 49angles
Commotion
11 Part 50
of circle
Unites
12 with thread Doll 52
Daubs
14 Passages
54
Four16score and ten Soak56
Vessel
19 for ashes Lick 58
up
Jumbled
20 type Forepart
59 of vessel
Nothing
22 Since62
Vipers
24 Metal64bearing rocks
Open25for debate Short66for Isaac
Insect
27 Small67speck
Composed
28 of thin Comrade
68
plates Noah’s
69 vessel
Game30 Towards
71
Child’s
31 plaything Preposition
72
Ground
32 Mother
73
Make35afraid

[21]

[Contents]
Puzzle No. 54
TINY TIM
By W. S. Boyd

Sixteen black squares to one hundred and fifteen


white is a pretty fine average. A too black pattern
means the constructor was a bit lazy. This is small,
but the words are not ordinary by any means.
1 2 3 4 5 6 7 8
9 10
11 12 13 14
15 16 17
18 19 20
21 22
23 24 25 26 27 28
29 30 31
32 33 34
35 36
37

[20]

HORIZONTAL

Stocks
1 and bonds Hits 23
lightly
Hail 9
Anger10 Famous
26 Irish chalice
More11exact of 10th century
Paris13subway Stir 29
Roulade
15 Snake31
Builder
16 Make 32fast
Harmonize
18 Shellfish
33
Discretion
20 Period
35
Expletive
21 Members
36 of hill tribe,
British India
Baked37 clay

VERTICAL

Refractory
1 Reposed
17 again
Boast2 Arrogant
19 person
First lady
3 Surgeon’s
22 cylindrical
Tranquil
4 saw
Act 5 Years24
Built 6 One25 who heaps
Girl’s 7name Town27of Gold Coast
To gyp 8 Gull 28
(Scotch)
Beaten
12 track Nurse30
Bird 14
of fable Quarrel
34

[23]

[Contents]
Puzzle No. 55
A SPOTTED SPECTER
By J. T. Rich

In spite of an abbreviation here and there, this puzzle


is one which is high in its rating. There aren’t so
many difficult words in it; but the few that do exist will
keep you searching, or we miss our guess.
1 2 3 4 5 6 7 8 9 10 11
12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
30 31 32 33 34 35
36 37 38 39 40 41
42 43 44
45 46 47
48 49 50 51 52
53 54 55 56 57 58 59
60 61 62 63 64 65
66 67 68
69 70 71 72 73 74
75 76 77 78 79 80 81
82 83 84
85 86

[22]
HORIZONTAL

Consumptive
1 Epoch47
Part of7 a whole Part 48
of a hammer
Wings 12 Coarse
50
Carrion
13 Snugly
53
Member14 of Japanese Mineral
55 spring
race Required
57
A fragmentary
15 thing Soon60
Disciple
17 And 61
so forth
Eastern
20 state Human63 being
Flying21insect Anxiety
65
Small 23bottle Exist66
Note24 of the scale Treat67as a celebrity
Three-toed
25 sloth Southern
68 state
Anchor27 Like 69
For example
28 Small71aperture
Nobleman
30 Mild 72
expletive
Girl’s32name Post74graduate (abbr.)
Body33of water Short75poems
Matron34 Character
79 in “Arabian
Noble 36 Nights”
Before38 Booty82
Small 40mug Bird 83
Girdle42 Inland
84body of water
To catch
44 sight of Ensnare
85
Unite45 Compartment
86
One46 holding extreme
opinions

VERTICAL
Pilgrimage
1 to Mecca To suppose
41
Old age2 Barbarian
43
Part of3 machinery Organ44 of the body
To be4prolific To languish
48
Fibrous5 substance Small49hole
Astern6 To heat
51 to fix colors
Heroine7 of famous To retch
52
poem Flat 53
basket
Prison8 Sough54
Belonging
9 to him Scotchman
55
Explosive
10 In the
56midst of
Part 11
of boat The 58
time of light
Attack
15 To vouchsafe
59
Wanderers
16 Metallic
62 material
Heathens
18 The 64
angel of death
Consumed
19 Single
70
Whetstone
22 Interdiction
71
Official
23 endorsement Magnesium
73 silicate
Dexterity
25 Breakwater
74
Evils26 Not (prefix)
76
Sharp28 Negative
77 particle
Joke29 Past78
Accessory
31 of a plane Transport
80 by relays of
Mixer35 men and horses
A stand
37 College
81 fraternity
To fee
39again

[25]
[Contents]
Puzzle No. 56
LITTLE BUT NEAT
By Isidore Edelstein

A pretty construction by an old-timer at the game.


And don’t run away with the idea that its size has
anything to do with ease of solution! Tackle it, and
you’ll get what we mean.
1 2 3 4 5 6 7 8 9 10
11 12 13 14
15 16 17 18 19 20
21 22 23 24 25
26 27 28 29
30 31 32 33 34
35 36 37 38 39
40 41 42 43
44 45 46 47 48 49
50 51 52 53
54 55 56 57 58 59 60
61 62 63 64 65 66
67 68 69 70 71
72 73 74
75 76 77

[24]

HORIZONTAL
Carouse
1 Precipitation
41
Question
5 Weed 42
Burdened
7 Negative
43
Part 11
of “to be” Struck
44 an attitude
Beverage
12 Speak46
Possessive
13 pronoun Town48in Germany
Perform
14 Matter
50
Guide15 High53explosive
Total17 Having
55 islands
Fossil
19gum Color58again
Wrath21 Rodent
61
Atrocious
22 Seaport
63 in Sicily
Insect
25 Period
65 of time
Vision
26 Watchful
67
Gloomy
28 Mohammed’s
69 adopted
Period
30 of time son
Come 31to fruition Subnormal
70 person
Encountered
33 Thus72
Requires
35 Absorbing
73 of gases
Fool37 Preposition
74
Attack
38 Support
75
Part 40
of “to be” Observe
76
At no77time

VERTICAL

Swift 1 Bite 35
Prince2 Mournful
36
Self 3 Metallic
38 rock
Graceful
4 Unit 39
of weight
Rotated
6 rapidly Connected
45 rooms
Legal7document Conjunction
47
Weapon8 Grimace
49
Paradise
9 State51of U. S. (abbr.)
Point10of compass House52 animal
Projection
16 Clutch
54
Anthropoids
17 Fasten
56
Shyness
18 Clock57faces
Exposes
20 Elevate
58
Organ
23 Legendary
59 character
Vase24 House60 and land
Reparation
27 Genus62 of plants
Governmental
29 act of Thread
64
pardon Repetition
66 as a means
Fabulist
30 of note of learning
Postscript
32 Huge 68mythical bird
Belief
34 Single
71

[27]

[Contents]
Puzzle No. 57
SEVEN GREEK CROSSES
By John B. Sirich, Jr.

We counted the half-crosses to make up Mr. Sirich’s


grand total. Please note: no unkeyed letters, no
abbreviations or contractions, and comparatively few
two- and three-letter words. Also double interlock
throughout. Io triumphe!
1 2 3 4 5 6 7 8
9 10 11 12
13 14 15 16
17 18 19
20 21 22 23 24
25 26 27 28
29 30
31 32 33 34
35 36 37 38 39
40 41 42
43 44 45 46 47
48 49 50 51
52 53

[26]

HORIZONTAL
Domestic1 animal Member
30
(female) Gave 31formally
Interlaced
5 Begins
33
Spanish 9 dance Vehicle
35
Charge11 with gas Dried36fruit (bot.)
Devoured
13 Term38of address
Bitter14 Article
40
Monastic
16 female Large41snake
Exclamation
17 Note42of musical scale
Pile 18
loosely Contest
43
Perform
19 Impost
45
Civil20War general Rear47
Long22hair of lions (pl.) Become
48 planted
Stitch
24 deeply
Ran 25 rapidly Celestials
50
Foundation
27 Facile
52
Procured
29 Portion
53

VERTICAL

Nurturer
1 Indications
24
Beverage
2 Fish26
Regarding
3 Perceive
28
Age 4 Dog 31
Interlacement
5 Charge
32
Conjunction
6 City 33
in Nebraska
Large7vehicle Sibilant
34 rale
Studies
8 Hollow
35
Syrian9 god Procured
37
Group10 of eight Rodents
39
Oriental
11 measure Age 44
Sufficient
12 (poet) Plaything
45
End 15
of day (poet) Finish
46
Avid21 Bronze
47
Unit 22
of measure Bone49
An ascidian
23 Proceed
51

[29]

[Contents]
Puzzle No. 58
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like