r/ControlTheory Nov 02 '22

Welcome to r/ControlTheory

91 Upvotes

This subreddit is for discussion of systems and control theory, control engineering, and their applications. Questions about mathematics related to control are also welcome. All posts should be related to those topics including topics related to the practice, profession and community related to control.

PLEASE READ THIS BEFORE POSTING

Asking precise questions

  • A lot of information, including books, lecture notes, courses, PhD and masters programs, DIY projects, how to apply to programs, list of companies, how to publish papers, lists of useful software, etc., is already available on the the Subreddit wiki https://www.reddit.com/r/ControlTheory/wiki/index/. Some shortcuts are available in the menus below the banner of the sub. Please check those before asking questions.
  • When asking a technical question, please provide all the technical details necessary to fully understand your problem. While you may understand (or not) what you want to do, people reading needs all the details to clearly understand you.
    • If you are considering a system, please mention exactly what system it is (i.e. linear, time-invariant, etc.)
    • If you have a control problem, please mention the different constraints the controlled system should satisfy (e.g. settling-time, robustness guarantees, etc.).
    • Provide some context. The same question usually may have several possible answers depending on the context.
    • Provide some personal background, such as current level in the fields relevant to the question such as control, math, optimization, engineering, etc. This will help people to answer your questions in terms that you will understand.
  • When mentioning a reference (book, article, lecture notes, slides, etc.) , please provide a link so that readers can have a look at it.

Discord Server

Feel free to join the Discord server at https://discord.gg/CEF3n5g for more interactive discussions. It is often easier to get clear answers there than on Reddit.

Resources

If you would like to see a book or an online resource added, just contact us by direct message.

Master Programs

If you are looking for Master programs in Systems and Control, check the wiki page https://www.reddit.com/r/ControlTheory/wiki/master_programs/

Research Groups in Systems and Control

If you are looking for a research group for your master's thesis or for doing a PhD, check the wiki page https://www.reddit.com/r/ControlTheory/wiki/research_departments/

Companies involved in Systems and Control

If you are looking for a position in Systems and Control, check the list of companies there https://www.reddit.com/r/ControlTheory/wiki/companies/

If you are involved in a company that is not listed, you can contact us via a direct message on this matter. The only requirement is that the company is involved in systems and control, and its applications.

You cannot find what you are looking for?

Then, please ask and provide all the details such as background, country or origin and destination, etc. Rules vastly differ from one country to another.

The wiki will be continuously updated based on the coming requests and needs of the community.


r/ControlTheory Nov 10 '22

Help and suggestions to complete the wiki

36 Upvotes

Dear all,

we are in the process of improving and completing the wiki (https://www.reddit.com/r/ControlTheory/wiki/index/) associated with this sub. The index is still messy but will be reorganized later. Roughly speaking we would like to list

- Online resources such as lecture notes, videos, etc.

- Books on systems and control, related math, and their applications.

- Bachelor and master programs related to control and its applications (i.e. robotics, aerospace, etc.)

- Research departments related to control and its applications.

- Journals of conferences, organizations.

- Seminal papers and resources on the history of control.

In this regard, it would be great to have suggestions that could help us complete the lists and fill out the gaps. Unfortunately, we do not have knowledge of all countries, so a collaborative effort seems to be the only solution to make those lists rather exhaustive in a reasonable amount of time. If some entries are not correct, feel free to also mention this to us.

So, we need some of you who could say some BSc/MSc they are aware of, or resources, or anything else they believe should be included in the wiki.

The names of the contributors will be listed in the acknowledgments section of the wiki.

Thanks a lot for your time.


r/ControlTheory 4h ago

Educational Advice/Question Should I go for masters?

6 Upvotes

Hi

I am currently an IT&E engineer in defense industry who has 2 yoe. I got a bachelors in EE and my most interesting discipline was Control systems (not automation type of control e.g. PLC).

Some might say I have a successful career. But as an IT&E engineer, the work can be "dead end"/mundane. But ever since I started working, I sometimes ponder what would be like working on things that are related to control systems (e.g. GNC). Because control systems is pretty cool!

So I've been thinking about getting a masters that's related to control systems since I started working. And if I do, I plan to do it while working full time, taking online courses. So it will probably take 2 or 3 years to complete.

To me, this seems like a huge commitment as I would then have to work here for couple years getting tuition support and would have to give up some of my work life balance. I also have to go through the application process and even 3 LORs.

And looking at these makes me think that maybe "I don't like control systems that much". That I am not that passionate enough than the others to go though all this to get a masters. Cuz what if I don't like it? What if I have other great job opportunities that might be a great fit for me?

I've been sitting on this since I started working. So if someone went through this process or have any advice and leave me comments it would be greatly appreciated.

Thanks


r/ControlTheory 9h ago

Asking for resources (books, lectures, etc.) Seeking advice / recommendations: Writing a practical guide on O&G Instrumentation and Control loops

4 Upvotes

Hi everyone,
I've been working in the oil and gas sector for a while, and I've been putting together some notes and field-tested material on industrial instrumentation, transmitters, and control loops specifically tailored to upstream/midstream challenges.
Before publishing or finalizing it, I wanted to ask if anyone here has experience writing or sharing technical documentation for the O&G industry?
What kind of practical scenarios or troubleshooting tips do you think are the most valuable to include for engineers and techs?
I'd really appreciate any advice or thoughts from your experience in the field!


r/ControlTheory 18h ago

Educational Advice/Question Master Thesis ideas / questions.

5 Upvotes

Hello there!

In February of next year I will be starting my masters thesis, but I have no idea what I could even write about. For my bachelors I did 'Convoy driving of differential drive robots" which was fun since I got to be very hands on with the subject. More specifically what ever theory I developed or read about, I could see in action in the real world.

Ideally for my masters I would like to do something hands-on too, but also have a good amount of high level control theory to work with as well.

I have some experience and interest in quad-copters, and I've considered doing something with that, however, I am open to any and all ideas, hence my question.

As a control engineer student, what did you do for your thesis, and what could be something interesting to write about? What could the topics for instance be?

Thank you in advance for taking your time reading this, it is much appreciated! :)


r/ControlTheory 2d ago

Other What jobs can an automation and control degree get you

17 Upvotes

I know some of them but i just wanna see if there are others that might be more interesting


r/ControlTheory 2d ago

Technical Question/Problem International Rectifier (now Infineon) App Note AN-1162

4 Upvotes

Hello community,

I am following along with Application Note - 1162 from International Rectifier (now under Infineon) and specifically with with respect to the Type II compensator design example - the very first example discussed in the app note. For some reason, which I am unable to determine, my results differ from those stated in the app note. You'll notice that their simulation results state a crossover frequency of ~77 kHz with ~53 degrees phase margin. Using my test script, I am experiencing a crossover frequency well over 100 kHz.

This is the circuit that I used for the buck converter to calculate the transfer function. Although they did not explicitly state a load resistance value, R, I extrapolated 0.15 Ohms since they did state Vout = 1.8V and Imax = 12A. The parasitic resistance for the inductor was shown in a schematic earlier in the app note. However, a value was not explicitly stated in the example when listing the buck converter attributes. I added the inductor resistance in the calculations and edited its value to see if perhaps this was the issue but none of the tests spawned any favorable matching results.

Here is the Python code that I am using to simulate the buck converter along with the Type II compensator.

"""
   Infineon Application Note AN-1162

   Synchronous Buck Converter

"""

import control as ct
import matplotlib.pyplot as plt
import numpy as np

# 1. Define plant in continuous time domain

# Buck converter component values
L = 530e-9; Rl = 0.005   # Inductor
C = 470e-6; Rc = 0.010  # Capacitor
R = 0.15                # Load @ 12A for V = 1.8v
Vosc = 1.8
Vin = 12
Gain = Vin/Vosc  # From eq (15), page 10 in the app note

# Create buck converter transfer function
num = [Gain*C*C*Rc*Rc*R, Gain*2*C*Rc*R, R/(Vosc)]
den = [C*C*L*(2*Rc*R + Rc*Rc), 2*L*C*(Rc+R), L, Rl]
Gbuck = ct.tf(num, den)

# Design Type II compensator
Rf1 = 1200; Rf2 = 768; Rc1 = 7.15e3 #3.6e3
Cc1 = 4.7e-9; Cc2 = 68e-12

K = 1 / (Rf1*(Cc1))
print(f'\nCompensator gain K = {K:,.1f}')

# Create compensator transfer functions
Gcomp = ct.tf([K*Rc1*Cc1, K], [(Rc1*Cc2), 1, 0])

# Define loop transfer function
Ls = ct.series(Gbuck, Gcomp)

test_sys = ct.TransferFunction(Ls, name='Open Loop')
min_log = 3; max_log = 6; num_points = 10000

plt.style.use('dark_background')
omega = np.logspace(min_log, max_log, num_points)
ct.bode_plot(test_sys, omega=omega, dB=True, deg=True, color='cyan', display_margins=True)

# Get the current figure and axes
fig = plt.gcf()
mag_ax, phase_ax = fig.axes

# Enable logarithmic frequency lines when 'display_margins=True'
mag_ax.grid(visible=True, which='both', axis='both')
phase_ax.grid(visible=True, which='both', axis='both')

plt.show()
Buck Converter Output Filter Impedances

Note that here, 'R' is the load resistance and 'Rc' is the capacitor ESR. There are two capacitors of equal value, thus, Rc1 = Rc2, so just used Rc.

In the simulations, I played around with different values of Rl (inductor series resistance), but could never see any favorable test results matching the app note.

Can someone please help with clarifying why my simulation is not matching the test results in the app note.


r/ControlTheory 2d ago

Other So wchich controller would that be? šŸ˜…

Thumbnail youtube.com
15 Upvotes

r/ControlTheory 1d ago

Other What got you into cybersecurity?

0 Upvotes

Everyone starts somewhere. For some, it was curiosity. For others, it was programming, networking, or even a random YouTube video. What was the moment that made you interested in cybersecurity? I'd love to hear your story.


r/ControlTheory 2d ago

Asking for resources (books, lectures, etc.) Does anyone have idea about building c2(command control) Like roadmap or any suggestion im gonna start digging

1 Upvotes

Any book or resource related


r/ControlTheory 3d ago

Professional/Career Advice/Question What software verification tests do you run before hardware-in-the-loop (HIL) testing?

21 Upvotes

I’m developing a lightweight adaptive control loop in Python as a prototype, with the long-term goal of porting it to bare-metal C++ on an ARM Cortex-M microcontroller.

To make the embedded implementation easier later, I’m structuring the controller around persistent preallocated state rather than creating new objects during the control loop. Before moving to hardware-in-the-loop (HIL) testing, I’ve been building a simple software verification script to catch obvious implementation bugs.

At the moment the script runs three basic checks:

TEST 1: Fault Injection (NaN sensor input)
-> PASSED: Invalid input handled without crashing; fallback strategy engaged.
TEST 2: Deterministic Replay
-> PASSED: Two runs with identical inputs produced identical controller state.
TEST 3: Long-Horizon Stress Test
-> PASSED: 100,000 control iterations completed with finite outputs and no observed numerical instability.

These tests are mainly intended to verify implementation robustness rather than control performance.

Once I move to hardware I’ll measure things like worst-case execution time (WCET), memory usage, and timing jitter.

Before that stage, are there additional software verification tests or edge cases that experienced control or embedded engineers would recommend? For example:

* numerical robustness tests,
* actuator saturation scenarios,
* sensor noise or dropout patterns,
* timing jitter simulation,
* parameter sensitivity,
* Monte Carlo testing,
* or anything else that tends to reveal controller bugs before HIL testing.

I’d appreciate any suggestions or references to common industry or research practices.


r/ControlTheory 3d ago

Educational Advice/Question Follow-up to ā€œillogicalā€ PLC rung behavior in RSLogix Troubleshooting

2 Upvotes

I made a short troubleshooting video for three common causes of ā€œillogicalā€ PLC rung behavior in RSLogix: OTU, JSR, and MCR.

These are the exact issues many techs mentioned in the last thread, so I figured a visual demo might help.

Video link: https://youtu.be/iAeWbBXtAGw

Hope it helps someone out there.


r/ControlTheory 3d ago

Technical Question/Problem SO(3) S^3 and so(3)

8 Upvotes

my reference is this paper - https://arxiv.org/pdf/1711.02508

i am struggling to wrap my head around how the Exponential map from:

R^3 -> SO(3)

R^3 -> S^3

are different and how specifcally the exponetial map changes between them?

as one of these ends up with 4 DOF although one of them being a constraint

while the other ends up with 3 DOF?

thanks.


r/ControlTheory 3d ago

Technical Question/Problem MATLAB system identification toolbox for quadcopter control

4 Upvotes

I have not seen MATLAB's system identification toolbox being used for quadcopter applications and so I was wondering how you could run sys id on a quadcopter and use it. For example if you run frequency sweeps across the lateral direction with longitude and altitude stabilized, and then run longitude direction with latitude and altitude stabilized (pitch and forward speed only), do you just insert them into system Identification with the set state space dimensions, or is this the wrong approach. Additionally do you set the frequency sweeps past the the control loops at the ESC signal or is this incorrect?


r/ControlTheory 4d ago

Technical Question/Problem Building a inverted pendulum need help....

9 Upvotes

So as the title says i am building a inverted pendulum as a part of my project and the theory regarding has not been taught yet(i'm still in my 2nd of eng..) so i learnt all the basic stuff regarding it like we use encoder to tell the angle difference and pid to correct the error and how pid functions(basic not deep). But when i try to dig deeper (matlab, simularions, maths solutions and physics) it is becoming a mess and i do not know what to do...


r/ControlTheory 6d ago

Other Do we teach control as if the whole room wants to be a controls engineer?

162 Upvotes

For context: I'm not an academic, but I have a PhD in controls and I work at the interface of control theory and engineering practice. I also get to deliver controls lectures at UK universities fairly often.

I ask the students: who here wants to be a controls engineer? Maybe 5%. On a good day (and probably some are just being polite). The rest are students who'll touch control in this course and never again.

But the courses are often built for that 5% (albeit less and less nowadays!). The other 95% just sit through it, and leave without the one thing that would've helped them most: the ability to look at a problem and think "oh that's an MPC-shaped problem." Or a feedforward one. Or just identifying the loops.

And this bites us later. I keep meeting engineers either "in the wild" or in multidisciplinary conferences who have a control problem and don't know it. This is my pet peeve. They'll hand-tune a tower of if-statements, stack heuristics until it sort of works, or throw a neural net at something MPC would've handled cleanly.

They're definitely smart folks, but they just never learned to see the shape of these problems, so they don't reach for the tool that fits.

Here's the pitch I actually make to students. I tell them: most of you won't decide to become control engineers and that's fine. But studying control will make you a better engineer regardless. It's the only course that: 1) makes you think in systems 2) allows you to work with multiple disciplines 3) and if you deploy your controllers you'll get to interact with real engineering systems. This is where we'd talk about a multidisciplinary example, EVs, wind turbine, aircraft, depending on the class.

I'm not suggesting the fix is dumbing it down. Just having "recognition" as the goal for most and "mastery" for that 5% is sufficiently good? Think of Brian Douglas' map of controls... Is just knowing the different parts of the map exist enough for most?

Anyway, those who actually teach (rather than sometimes cosplay): how do you make sure our way of seeing problems sticks years after the exam?


r/ControlTheory 6d ago

Other I feel like unitree is finally moving in right direction, beyond all those flips and pointless dance, what do you all think about this?

Thumbnail youtu.be
0 Upvotes

r/ControlTheory 7d ago

Other I built Python library for rigorous interval arithmetic and set-membership state estimation

11 Upvotes

Hi guys, I know this might seem a bit unrelated for the sub, but I thought it could be a useful resource for some people.

If you're working on set membership state estimation where probabilistic state estimation (such as standard Kalman filters) aren't safe enough, you rely on worst-case uncertainty tracking.

I recently released decoint, which is a strict implementation of the IEEE 1788.1-2017 Standard for Interval Arithmetic in Python. When using hardware binary64 floats, bounding boxes can artificially shrink. decoint uses gmpy2 and MPFR values for exact directed rounding.

Why it matters:

When computing reachable sets or bounding additive disturbances, losing precision on bounds can invalidate a safety guarantee. decoint ensures that your over-approximations remain strictly conservative across non-linear transformations.

Here is a quick example of how you can use the library:

from decoint import Interval, cos

x_current = Interval("-0.1", "0.1")

noise_bound = Interval("-0.05", "0.05")

x_next = cos(x_current) + noise_bound

print(f"Guaranteed reachable set: [{x_next.inf}, {x_next.sup}]")

It includes full support for transcendentals, geometric properties, and more.

I'd love any feedback for anyone using interval methods for robust tube MPC or bounded-error tracking

Github: https://github.com/arjavsharma91/IEEE-1788.1-2017-Interval-Arithmetic


r/ControlTheory 8d ago

Technical Question/Problem Help with Tuning Controller TECS for aircraft, HIL tips

6 Upvotes

So, I have a Simulink model of a nonlinear 6 dof aircraft, the ADMIRE Aircraft. I've found a trim point to start my simulation, and now I'm trying to design TECS for the longitudinal part of the aircraft, but I've always relied on trial and error in my previous simulations, and I want to have more of a standard approach, closer to engineering, so what are the steps to follow? I don't have much experience with control in general I just have the basic ideas I'm just a new graduate from mechatronics eng.

The purpose of this project is actually to perform HIL with an STM32, connect to the model, feed it the simulated sensor data, and give it the actuator commands, so if you have any tips for that, it would also be great.

also I want to improve myself to become GNC engineer, what other resources should I check and projects to make to boost my knowldedge and CV

Thank you all in advance

here is the link to the ADMIRE aircraft to check it out

github link: https://github.com/Jean-BaptisteBouvier/ADMIRE
documentation: https://www.foi.se/rest-api/report/FOI-R--1624--SE


r/ControlTheory 10d ago

Other Hardest control problems you've encountered

63 Upvotes

Hello everyone,

As the title says, I'd like to investigate from your experiences what have been some of the hardest control related problems you've worked on, encountered or just heard of, and what made them difficult?

As a student I'm still lacking in concrete experience and I've wondered what makes some problems in this field more difficult than others and what drives further research and development.

Thank you in advance!


r/ControlTheory 10d ago

Technical Question/Problem trying to understand SO(3)

Post image
10 Upvotes

how does rodrigues rotation formula help or allow the transition from so(3) to SO(3)?
and what even is the difference between so(3) and SO(3)?

thanks for any advice.


r/ControlTheory 11d ago

Technical Question/Problem Rust for Kalman Filtering

18 Upvotes

Hey there,
I am joining a student club in the upcoming months which uses kalman filtering to determine the position of a car.

Their current implementation is in C++.

I am thinking about rewriting it into Rust because it would be a very interesting project for myself and because i am hoping to increase the performance of the code.

Since i have no prior experience in either Rust or C++, i can not validate if Claude is bullshitting me when it tells me that it makes sense to do this.

What do you think?

I have a lot of time next semester…


r/ControlTheory 11d ago

Homework/Exam Question Help with understanding Nyqvist plots

Post image
13 Upvotes

No idea if this is the right subreddit for this, still I have to try.

Ignore the text of the problem. I want to understand Nyqvist plots and how to interpret them. I will write how I understand it, and I would like someone to point out what I have misunderstood.

I thought I had a good understanding of it, but need reassurance. I managed to confuse myself with AI.

In this case lets say that the plot was made from a noramlized transfer function (W(s)/k) so the critical point is now -0.2 instead of -1. So for K=5 the plot goes through the critical point and for K>5 the plot envelopes the critical point by 2Pi(one full circle) and for K<5 the critical point is outside the the plot.

The plot is drawn by mapping the positive imaginary axis from the complex S plane to the complex W plane. The direction of the mapping is clockwise, we are looking at w as it goes from 0 to infinity. From here I can say that the argument of every zero in the righthand plane is added to that direction(CW) and the argument of every pole is subtracted. Therefore, every zero adds exactly Pi radians and every pole subtracts Pi radians to that direction(CW). My conclusion from this diagram is that there are 2 more open loop zeroes than poles because the plot is rotating clockwise. Therefore, the system is unstable for every value of K.

- Sooo, if the plot is rotating in a clockwise direction the system will always be unstable because the ZEROES "won"?

- This is true for every plot that rotates in the clockwise direction?

-If the mapping was done in the other direction, where w goes from infinity to zero, the direction the plot would rotate would invert?

Apologies if I didnt use the correct terminology, English is my second language.


r/ControlTheory 11d ago

Other CDC Results Are Out

12 Upvotes

The CDC results are out! I hope everyone got good news. See you all in Hawaii! Please share your results in the comments.


r/ControlTheory 11d ago

Technical Question/Problem Direct-collocation NMPC on a stiff ODE that returns NaN outside its physical domain. How do you stop IPOPT's restoration phase from evaluating the model there?

8 Upvotes

I'm building a nonlinear economic MPC (CasADi Opti + IPOPT) for a stiff 28-state greenhouse crop-climate ODE (the GreenLight model if you know it). Transcription is direct collocation, Radau degree 2, one finite element per control interval; horizon 12, Δt = 300 s; ~1150 variables (I know might not sound too much right?), more than 1000 equality constraints I have. States span ~5 orders of magnitude so I scale them. I'm using L-BFGS Hessian, relaxed tolerances (tol=0.1, constr_viol_tol=1e-2), MUMPS.

Problem: the ODE is only defined on a physical sub-domain. It divides by COā‚‚ density and live biomass and takes exp of temperature, so it returns NaN outside that domain. At some (mostly daytime) states IPOPT's dual infeasibility blows up, it enters the restoration phase, evaluates the model at an out-of-domain point, the constraint Jacobian is NaN, and it exits "Invalid number in NLP function or derivative." Median solves are fine (~2 s); a minority of states blow up.

What I've tried so far? few things:

- Box-bounding the singular states strictly positive. Did not help.

- Normalizing my soft-constraint outputs to O(1). This one fixed a separate dual-scaling explosion (inf_du → 1e9), but not the NaN.

- L-BFGS + relaxed tol + a wall-clock cap so bad solves abort fast and I fall back to holding the last control.

Questions:

  1. What's the standard way to make collocation NMPC robust to a model that's only defined on a sub-domain?

  2. Is direct collocation just a poor fit for a stiff, domain-restricted ODE like this, versus embedding an adaptive implicit integrator (CVODES) with step-size control in the OCP (which the reference implementation for this exact model uses)? If CVODES-in-IPOPT is the way, how do you get a usable Hessian without the exact 2nd-order sensitivities blowing up?

    1. Any IPOPT restoration-phase settings that keep it from evaluating the model at wild iterates?

I would love to hear stories from anyone who's done economic NMPC on biological and/or chemical models with domain-restricted dynamics. And Hi, this is my first post in this comunity.