Computation for Real World Control Systems
IFAC DYCOPS 2025 is in-person, and so this workshop will be in-person.
Monday, 16 June, 2025, 13:30 to 17:30, Central European Summer Time (CEST)
Printable version of this flyer
Workshop Registration at IFAC_DYCOPS 2025 (through PaperCept)
Presenter: Daniel Abramovitch
Rationale: Computation is an essential component of implementing any real-world control system, but the details of how to make this work are often either left to the individual contributors to figure out or handed off to turnkey vendors. This workshop intends to provide insights, methods, and concrete examples into three major pieces of this subject. First, the workshop will present recent tutorial material (ACC 2023) from the author on real-time computing issues for control systems. This material explains the principal factors affecting the four computing chains inside a feedback system. After this overview, the workshop will home in on specific programming methods and components in the controller itself, describing efficient implementation methods and structures. Finally, the workshop will spend time on an often-neglected area of computation for control system measurements, whether they be used in the control loop operation or in the system identification used in model building for control. Together these three thrusts should equip the participant with tools that they can apply almost immediately in their work.
Prerequisite skills (of participants): Undergraduate level knowledge of feedback systems, sampled data systems, and programming. An honest interest in being able to translate control theory into physical control systems.
Intended Audience:
We believe that this workshop will be of great interest to anyone who is versed in control theory and wants to implement their algorithms in practice. This includes academics, students, and industry practitioners. For each of these groups, we believe the insights to the computation and the explanations and examples of specific algorithmic computation blocks will shorten the time it takes for them to improve their digital control systems.
Topic overview:
The general style for each topic will be to present the issue, discuss rational ways of thinking about a solution, and where possible, show a demo to illustrate the idea.
· A Tutorial on Real-Time Computing Issues for Control Systems (13:30 [60 min])
We will start with the recently published tutorial (ACC 2023) on the elements of computation in a real-time control system.
· PIDs, Filters, Biquad Cascades, pre-calculation, and other methods in the feedback controller (14:30 [60 min])
We all work out the theory, but when it comes time to write code, the guidance is often scattered. This section will deal with writing code for the real-time controller, when we don’t have the benefits of Matlab or Python libraries and when we might have to be careful with counting cycles. How do these look in C or C++? What efficiencies can we generate. When do we need to worry about the speed of memory access? These will be demonstrated with code snippets for each of the topics.
· Coffee Break (15:30 [30 min])
The instrumentation aspects of measurements are discussed: Which measurements can be used on which control problems. When to use step response, when to use frequency response, and which frequency response method is most useful. When can discrete-time, time domain ID be useful. These are touched on briefly in the other workshop, but we will home in much more on how to set up the calculations and issues with the different calculations. How to we establish noise levels and what are useful measures, both in the real-time feedback system and in the parallel or off-line measurement/characterization/modeling/tuning calculations?
Workshop outline, topic details, and tentative schedule:
We expect that there will be more written material for the workshop than can be presented in a half day. Any one of these topic areas could fill up half a day. However, these are the areas we hope to illustrate in the time we have.
Figure 1: Computation chains in a feedback system.
This portion of the workshop presents a tutorial on the elements of computation in a real-time control system. Unlike conventional computation or even computation in digital signal processing systems, computation in a feedback loop must be sensitive to issues of latency and noise around the loop. This presents some fundamental requirements, limitations, and design constraints not seen in other computational applications. The logic of presenting such a tutorial is that while computer technology changes at a rapid pace, the principles of how we match that technology to the constraints of a feedback loop remain consistent over the years.
Figure 2: Filtering context
Figure 3: Feedback context
We will discuss the different computational chains in a feedback system, ways to conceptualize the effects of time delay and jitter on the system and present a three-layer model for programming real-time computations. The section also presents some filter and state-space structures that are useful for real-time computation. (They will be discussed further in the third section.) It concludes with an overview of the different sample rate ranges currently used in some typical control problems and a short discussion of how business models affect our choices in real-time computation.
2) PIDs, Filters, Biquad Cascades, pre-calculation, and other methods in the feedback controller (60 minutes)
People talk about control implementation, but what makes for a clean implementation of a real-time system? In this section, we give examples of several canonical controller program blocks, indicating how they might be efficiently programmed.
· Precalculation: At what sample rate, relative to the time constants, does it make sense? How do we segment the calculation for polynomial form controllers versus biquad cascades (a.k.a. the multinotch)? How do we save the state in C code versus C++ code (classes)?
· PID controllers: How do the different discretizations show up in code? What are the tradeoffs with the choice of anti-windup methods?
· Filter blocks: FIR, IIR, CIC, biquads (BSS), bilinear state-space (BLSS), and when you might use each. How does the code get written? How do we debug the code?
3) Measurements for control systems, from system ID measurements to signal and noise characterization (2 30-minute portions)
In this portion, we go into some computational detail about some of the fundamental calculations for identification. We will do this by presenting some canonical plant examples and then demonstrating use of ID methods using the different calculations.
· For step response:
o What are the step response calculations when the time constants are fast versus slow?
o How to trigger data segmentation for averaging.
o The first and second order model parameters that can be extracted.
· For frequency response functions:
o An explanation of coherence functions.
o Examples of using direct division of output/input versus cross and auto spectra for different noise levels.
o Understanding advantages and disadvantages of FFT methods versus sine-dwell methods.
o Various input classes for FFT methods.
o Comparison of number of averages for FFT versus sine-dwell.
· For discrete-time, time domain ID:
o Discretize the plants using different equivalents.
o Compare ID methods.
· For each of these methods, we discuss the accuracy of the model responses and the options for control design that each of them gives us.
· We will also discuss different noise measurement methods, and what to look for.
We may not get to all of this material, but we will cover as much as possible in the 4-hour block of time. We think we can provide a lot of guidance for those that need to write code for real-time control systems.
Presenter’s short bio:
· Dr. Daniel Abramovitch (Agilent Technologies)
Danny Abramovitch earned degrees in Electrical Engineering from Clemson (BS) and Stanford (MS and Ph.D.), doing his doctoral work under the direction of Gene Franklin. Upon graduation, and after a brief stay at Ford Aerospace, he accepted a job at Hewlett-Packard Labs, working on control issues for optical and magnetic disk drives for 11 1/2 years. He moved to Agilent Laboratories shortly after the spinoff from Hewlett-Packard, where he has spent 24 years working on test and measurement systems. He is currently in Agilent’s Mass Spectrometry Division working on improved real-time computational architectures for Agilent’s mass spectrometers, including the new Ultivo Tandem Quad product.