Skip to content
#software testing Open access

Comparative Analysis of Numerical Methods for Solving the Discrete Algebraic Riccati Equation in Resource-Constrained Embedded Systems — data and code

Sep 2026 · Zenodo (CERN European Organization for Nuclear Research)

Abstract

Replication package for the paper submitted to DINAME 2027 (XXI International Symposium on Dynamic Problems of Mechanics, ABCM): "Comparative Analysis of Numerical Methods for Solving the Discrete Algebraic Riccati Equation in Resource-Constrained Embedded Systems". Stabilising a small quadrotor demands feedback above 50 Hz, and with the state-dependent Riccati equation (SDRE) method that forces a discrete algebraic Riccati equation (DARE) to be solved once per control period — the dominant cost on a microcontroller with no hardware floating-point unit. This work formulates the structure-preserving doubling algorithm, four variants and classical value iteration in Q13.18 fixed point, and compares the twelve resulting solvers on an FPU-less ESP32-S2 over 60000 operating points drawn from six trajectories, and over 475444 consecutive hardware control cycles of the complete flight loop at 167 Hz. The central result is a matrix generalisation of the classical recursive-filter deadband: near convergence the relative step reports the number format rather than the solution, below an analytic floor set by format resolution and solution norm. Measuring that step at the instant each solver stops resolves the deadband into two opposite symptoms — a bit-exact fixed point in quadratically convergent doubling, and a one-least-significant-bit limit cycle in linearly convergent value iteration. CONTENTS raw.zip — the 20 serial captures exactly as they came off the boards: the main benchmark on the ESP32-S2 and on the ESP32-S3 (which has an FPU), the tolerance and weighting sweeps, the repeatability and convergence-test microbenchmarks, and the ten 360-second windows of the complete flight loop. Each capture begins with a provenance stamp giving the git commit, build timestamp, chip, revision and clock of the firmware that produced it. derived.zip — the same measurements as tabular CSV with headers: one row per solver call (time, iterations, achieved residual, outcome, and the relative step and bit-exactness flag at termination), the closed-loop cost and time series for all six trajectories, the operating-point coverage with conditioning and solution norm, the double-precision reference residual, and the firmware memory metrics. code.zip — snapshot of the repository at the commit that produced these measurements: the flight firmware, the eight experiment firmwares, the twelve solver implementations in C++ and the Python analysis, audit and figure-generation scripts. MANIFEST.md — SHA-256 of every file, and the git commit of origin. README.md — what each file contains and how to recompute the published numbers. PROVENANCE.md — the provenance of the captures: what the audit reports about them and why it reports it. REPRODUCING With the code and the captures in place, every number and figure in the paper can be recomputed without the hardware. An audit script checks the provenance stamp of each capture, verifies 253 numerical claims against the raw data, confirms that the figures were generated from the current measurements, and reports how many of the numbers in the paper are covered by an automated check. On this package its numerical, figure and flight-cycle steps all report zero divergences. The provenance step is the exception, and the record says so rather than hiding it: it reports eight of the nine captures as taken from a modified working tree, because the campaign ran overnight with the change to the convergence test not yet committed. PROVENANCE.md, at the top level of this record, sets out why those captures remain traceable — all nine came from the same build, the exact working-tree diff travels with them in raw/provenance/, and the one experiment recaptured after the commit returned seven measured quantities identical to the hundredth of a microsecond. The defect is in the label, not in the data. That the recipe works was established on version 3, reproduced end to end from its own package alone: following README.md, all six figures came back pixel-for-pixel identical to the published ones. Re-running the measurements from scratch requires an ESP32-S2 and an ESP32-S3 and takes about ten hours. VERSIONS Version 1 (10.5281/zenodo.22236199) was created automatically by the GitHub–Zenodo integration and contains only the source archive; it does not include the serial captures, which are not tracked in the git repository. Version 2 (10.5281/zenodo.22236293) was the first complete package. Its MANIFEST.md, however, lists SHA-256 checksums for the three zip archives that do not match those archives — the manifest was written before the archives were repacked. The archives themselves are intact, but the document meant to prove that is wrong, so anyone verifying integrity against it would wrongly conclude the download was corrupt. Its README.md also numbers two figures one off and omits a renaming step, without which the reproduction recipe does not run. Version 3 (10.5281/zenodo.22238478) carries the same measurement data as version 2. It corrects the manifest, the figure numbering and the reproduction recipe, adds the firmware memory metrics in the form the audit reads, and removes a nested archive inside code.zip. Version 4 is this one, and it is the first whose measurements differ. Every capture in raw.zip was taken again, after the convergence test in the Q13.18 kernel was changed to evaluate its inequality in integer arithmetic instead of converting each stored value to floating point. The criterion itself is unchanged — the same relative Frobenius norm, the same tolerance, the same iteration budget, the same decisions — and the integer form is exact where the converted form rounded, so what changed is the cost of asking, not the answer. The scientific results reproduce unaltered: the deadband floor and its two symptoms, the bit-exact counts, the convergence counts of value iteration, the weighting safety map, and the closed-loop accumulated cost. The times fall: the fastest fixed-point doubling solver from 3.68 to 3.15 ms, and the complete flight cycle from a median of 4.70 to 4.20 ms, with period overruns dropping from 21 to 2 in roughly 475000 cycles. The paper's title also changed in this version, to the one under which the abstract was accepted. SOURCE https://github.com/guilherme-ali/SDRE_VECTORIZED LICENCE Measurement data (raw.zip and derived.zip) and figures: CC BY 4.0. Software (everything in code.zip): MIT.

View source

Similar papers

#computer vision Review Sep 2017

Agile Software Development Methods: Review and Analysis

Agile - denoting "the quality of being agile, readiness for motion, nimbleness, activity, dexterity in motion" - software development methods are attempting to offer an answer to the eager business community asking for lighter weight along with faster and nimbler software development processes. This is especially the case with the rapidly growing and volatile Internet software industry as well as for the emerging mobile application environment. The new agile methods have evoked substantial amount of literature and debates. However, academic research on the subject is still scarce, as most of existing publications are written by practitioners or consultants. The aim of this publication is to begin filling this gap by systematically reviewing the existing literature on agile software development methodologies. This publication has three purposes. First, it proposes a definition and a classification of agile software development approaches. Second, it analyses ten software development methods that can be characterized as being "agile" against the defined criterion. Third, it compares these methods and highlights their similarities and differences. Based on this analysis, future research needs are identified and discussed.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 728 citations · ⚡54
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

Context: Software startups are newly created companies with no operating history and fast in producing cutting-edge technologies. These companies develop software under highly uncertain conditions, tackling fast-growing markets under severe lack of resources. Therefore, software startups present a unique combination of characteristics which pose several challenges to software development activities. Objective: This study aims to structure and analyze the literature on software development in startup companies, determining thereby the potential for technology transfer and identifying software development work practices reported by practitioners and researchers. Method: We conducted a systematic mapping study, developing a classification schema, ranking the selected primary studies according their rigor and relevance, and analyzing reported software development work practices in startups. Results: A total of 43 primary studies were identified and mapped, synthesizing the available evidence on software development in startups. Only 16 studies are entirely dedicated to software development in startups, of which 10 result in a weak contribution (advice and implications (6); lesson learned (3); tool (1)). Nineteen studies focus on managerial and organizational factors. Moreover, only 9 studies exhibit high scientific rigor and relevance. From the reviewed primary studies, 213 software engineering work practices were extracted, categorized and analyzed. Conclusion: This mapping study provides the first systematic exploration of the state-of-art on software startup research. The existing body of knowledge is limited to a few high quality studies. Furthermore, the results indicate that software engineering work practices are chosen opportunistically, adapted and configured to provide value under the constrains imposed by the startup context.

Nicolò Paternoster, Carmine Giardino, M. Unterkalmsteiner et al. · 394 citations · ⚡54
#computer vision Open access Jul 2017

What happens when software developers are (un)happy

The growing literature on affect among software developers mostly reports on the linkage between happiness, software quality, and developer productivity. Understanding happiness and unhappiness in all its components -- positive and negative emotions and moods -- is an attractive and important endeavor. Scholars in industrial and organizational psychology have suggested that understanding happiness and unhappiness could lead to cost-effective ways of enhancing working conditions, job performance, and to limiting the occurrence of psychological disorders. Our comprehension of the consequences of (un)happiness among developers is still too shallow, being mainly expressed in terms of development productivity and software quality. In this paper, we study what happens when developers are happy and unhappy while developing software. Qualitative data analysis of responses given by 317 questionnaire participants identified 42 consequences of unhappiness and 32 of happiness. We found consequences of happiness and unhappiness that are beneficial and detrimental for developers' mental well-being, the software development process, and the produced artifacts. Our classification scheme, available as open data enables new happiness research opportunities of cause-effect type, and it can act as a guideline for practitioners for identifying damaging effects of unhappiness and for fostering happiness on the job.

D. Graziotin, Fabian Fagerholm, Xiaofeng Wang et al. · 236 citations · ⚡13
#computer vision Open access Oct 2004

Mobile-D: an agile approach for mobile application development

Mobile phones have been closed environments until recent years. The change brought by open platform technologies such as the Symbian operating system and Java technologies has opened up a significant business opportunity for anyone to develop application software such as games for mobile terminals. However, developing mobile applications is currently a challenging task due to the specific demands and technical constraints of mobile development. Furthermore, at the moment very little is known about the suitability of the different development processes for mobile application development. Due to these issues, we have developed an agile development approach called Mobile-D. The Mobile-D approach is briefly outlined here and the experiences gained from four case studies are discussed.

P. Abrahamsson, Antti Hanhineva, H. Hulkko et al. · 225 citations · ⚡18

Related blog posts

MIT News · Artificial Intelligence Aug 17, 2026

Q&A: Rethinking how innovation happens

In his latest book, Professor Eugene Fitzgerald examines the forces that turn breakthroughs into value — and why innovation resists simple formulas.