I will develop custom pid and lqr control algorithms in cpp
MSc, Automation and Control Engineering, RD Robotics Control Systems Engineer
About this Gig
Fix unstable, slow, or oscillating control loops with custom, mathematically validated control software in modern C++ or Python.
What I deliver:
- System Identification: Transfer function and state-space models derived from your experimental CSV logs (step/frequency response).
- Industrial Discrete PID: Tustin/Euler implementations featuring anti-windup (clamping/back-calculation), derivative low-pass filtering, and feedforward compensation.
- Optimal Control (LQR / LQG): Discrete state-space formulation, state-feedback gain matrix synthesis, and state observers (Luenberger / Kalman).
- Validation & Stability Report: Bode plots, gain/phase margins, settling time, and overshoot analysis.
- Code Specifications: Clean, standalone C++ classes (.hpp/.cpp) without dynamic heap allocation upon request (bare-metal MCU friendly). Tested for STM32, ESP32, ARM Cortex, Linux IPCs, Raspberry Pi, and ROS / ROS 2 nodes.
Please message me before placing an order to discuss your plant dynamics, target sampling time, and hardware constraints.
FAQ
Do I need any proprietary software (like MATLAB/Simulink) to run your deliverables?
No. All code is delivered as standalone, standard C++ (or Python) source files with no proprietary runtime or licensing dependencies.
Can the C++ code run on bare-metal microcontrollers without dynamic memory allocation?
Yes. On request, the implementation is written strictly without heap allocations (malloc/new), using static memory and fixed-size arrays suitable for bare-metal STM32, ARM Cortex, or MISRA-compliant environments.
What format should my experimental data be in?
A simple CSV, TXT, or Excel file containing timestamps, the control input signal (e.g., PWM, voltage, command), and the measured plant output (e.g., RPM, position, temperature).
Can you design controllers for coupled multi-variable (MIMO) or non-linear systems?
Yes. We can formulate state-space representations for MIMO setups or linearize around specific operating setpoints for gain-scheduled control. Please send me a message first to evaluate your plant dynamics.
Can the controller be integrated into a ROS / ROS 2 node?
Yes. The control class is written modularly, making it trivial to wrap inside an rclcpp node or custom timer callback. Let me know in advance if you need a full ROS 2 workspace wrapper.

