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

This publication proposes a definition and a classification of agile software development approaches and analyses ten software development methods that can be characterized as being "agile" against the defined criterion.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 727 citations · ⚡54
#computer vision Jun 2008

The impact of agile practices on communication in software development

The study shows that agile practices improve both informal and formal communication, but indicates that, in larger development situations involving multiple external stakeholders, a mismatch of adequate communication mechanisms can sometimes even hinder the communication.

M. Pikkarainen, Jukka Haikara, O. Salo et al. · 401 citations · ⚡48
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

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 Review Mar 2008

Agile methods in European embedded software development organisations: a survey on the actual use and usefulness of Extreme Programming and Scrum

The results show that the embedded industry has been able to apply agile methods in its development processes and that the appreciation of the agile methods and their individual practices appears to increase once adopted and applied in practice.

O. Salo, P. Abrahamsson · 238 citations · ⚡9
#computer vision Open access Jul 2017

What happens when software developers are (un)happy

Consequences of happiness and unhappiness that are beneficial and detrimental for developers' mental well-being, the software development process, and the produced artifacts are found.

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

The Mobile-D approach is briefly outlined here and the experiences gained from four case studies are discussed, which helped develop an agile development approach for mobile application development.

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

Related blog posts

Microsoft Research Blog Nov 5, 2026

Formally verifying agent-written full-stack web apps with PDD Kit

AI agents can generate code at a scale that’s hard for humans to review line-by-line. PDD Kit helps ensure the code is doing what the developer intended by creating formal specifications and testing against them. It converts developer intent into a Verus specification, proves AI-generated code meets it for every input, and uses tests where proofs aren't practical. Developers review intent, not every line. The post Formally verifying agent-written full-stack web apps with PDD Kit appeared first o…

GPT-Lab Nov 3, 2026

Sovereignty Is the Option to Leave

Is your company’s AI sovereign? A practical guide for CIOs on AI vendor lock-in, EU Data Act switching, cloud sovereignty, and testing your exit plan before you need it. The post Sovereignty Is the Option to Leave appeared first on GPT-Lab.

Microsoft Research Blog Oct 30, 2026

From synthetic enterprise data evaluations to real Microsoft Copilot AI confidence

Evaluating Microsoft Copilot at enterprise scale requires test data that captures the full complexity of real organizations, yet real enterprise data contains sensitive information that cannot be used for evaluation under any circumstances. The post From synthetic enterprise data evaluations to real Microsoft Copilot AI confidence appeared first on Microsoft Research.

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.