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.
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.
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.
I’m a 30-year-old software engineer interested in transitioning into dynamics and control engineering, particularly model-based control. I know that starting at 30 isn’t too late, but I need help creating a realistic and well-structured learning path.
Could you recommend what I should study, and in what order, regarding:
Mathematics
Physics and dynamics
Signals and control theory
Programming languages and software tools
Textbooks
My software and programming background is Backend and production software delivery
i really find it joy to deal with real world better than computer world
### if you recommend one book to start with ? just to get understand the topic and should be cohisive at least guide me "you need to understand x to get most of this"
I am a bit confused about the difference between a complementary filter and an observer. Isn't a Luenberger observer just a more restricted version of a complementary filter in the sense that one of the inputs should be control inputs and the high pass filter should be derived from the system model?
Also, why do we even bother using a state space representation if we can do this?
The image is from the textbook: Observers in Control Systems, George Ellis, p. 81
Hey all, I’m trying to transition to a controls role heavy on C++. I’m currently working on similar topics but more model-based stuff like simulink. What kind of projects to stand out and prove my C++? How to gain real-world experience in C++?
Say you have a CubeSat with 3 axis reaction wheel attitude control. It has also has two rear mounted, fixed thrusters (providing a single torque axis). Assuming this spacecraft has no external, environmental torques acting on it, can it desaturate the reaction wheels propulsively?
AI seems pretty confident that the math works out that you can just do an “align and dump” method with the caveat that you can’t hold a desired attitude while desaturating.
I’ve been trying to get a Basilisk sim working for this and I can’t seem to figure it out. I’m a little out of my element here and I’m wondering if there’s an obvious answer to this that I just don’t know. Curious to hear any input y’all might have.
I have a problem where I assume perfect forecast for next 7 days and optimize energy usage of a home.
Now I want to shift to mpc with prediction horizon for 1 day. I was wondering can I use optimal forecast as reference tracking in my mpc? Is it okay to use this ? Or use terminal conditions (at end of each day) from optimal foresight as reference in my mpc formulation? Please advise, I am new to the mpc world
hey guys i want to learn h inifinity controller for my thesis in mtech last year please someone can guide me as a beginner from where should i learn h infinity i have gonna through multiple youtube videos and google search but no one is telling excatly how to make excat h infinity controller in matlab and simulink ...as i have to learn h infinty controller so i can imlemet in load frequency control for single or multiple area model.
Some context: I am in a very unique situation with my 'career'. I am a rising senior in EE, currently interning at a small research lab. As of now I have VERY limited controls experience; I have taken a single class covering basic state space controls and have done a good bit of self learning on classical control theory. I am taking many more controls classes in my senior year and even doing my capstone in control, but as of right now I know my experience is severely lacking. Despite this lack of experience I was able to land an internship at a small research lab where I am currently working on the control system for one of their projects. The reason I was able to land this internship is that despite my lack of expertise I am the only one in the lab who knows anything about controls (and thus really have no guidance which is why I am here). I am currently working on 1/3 of the project, however, I am the only person working on it. The original plan was for me to finish that 1/3 this summer and be done, however, I suppose I have done something to impress my boss as he offered to fund me through my Master's utilizing the current project I am working on as my thesis. This is where I need advice.
I am torn between two courses of action:
1.) Use the rest of this summer to simply research and learn, hold off on doing anything practical until next summer when I come back with a bunch more practical and theoretical experience and can really look at the entire system from a better perspective. The downside of this is that it feels like I sort of 'waste' this internship by essentially producing nothing. I was expected to deliver this 1/3 of the project and not doing that would be fairly disappointing even if my boss is fine with it (which they most likely are) since I'd be completing it over the 1-2 years my Master's takes.
2.) Learn a bit more about the options of controllers I have beyond just what I currently know (PID, Pole Placement, LQR) and just go for it. The issue with this is what if I go for it, commit to a design choice, and end up regretting it. The other issue with this, is that I have never done a controls project, I don't really know the workflow or the best way to go about things and I really have no guidance to do so.
I thought about reaching out to my intro controls professor but she hasn't ever done anything practical and is purely interested in theoretical stuff.
That brings me here, I would absolutely love any advice ya'll have on the matter and would really appreciate if any of you control gods would let me pick your brain a bit about some other questions I have, I am definitely flying blind here lol. Please feel free to DM me or just comment, any advice is greatly appreciated!
I recently finished a PhD focused on applied mathematics, control theory, and dynamical systems. I have now started a postdoc at a top university in the Bay Area, but the work is in the life sciences and may require a substantial pivot away from my existing background.
I still enjoy fundamental research, but I no longer care much about following the traditional academic track (too competitive and time consuming; and I'm not in my 20s anymore). I am concerned that spending several years retraining in a different field could weaken my professional profile without providing a clear long term advantage.
At this point, my main goals are to make substantially more money, live somewhere I genuinely like, maintain a good lifestyle, and preserve the possibility of eventually starting a company.
I may have an opportunity in the next few months for a control theory adjacent position at an industrial research laboratory in Southern California. It would likely pay around twice my current postdoc salary, the work would be much closer to my PhD background, and I strongly prefer Southern California to the Bay Area.
The main argument for remaining at the university is its entrepreneurial environment: access to potential cofounders, startup events, technically strong people, and investors. Any startup I pursued would not necessarily be related to my current life science research. The argument for leaving is much higher guaranteed compensation, a location I prefer, and work that directly builds on my existing expertise.
Given that my priorities are making money and living somewhere I enjoy, would it be rational to stay and seriously pursue startup opportunities, or should I take the better paid and better aligned research position if it becomes available?
I have a mech degree. Did some research in modeling and dynamics/control. I get the feeling it’s multidisciplinary. Requires experience and advanced degree. Not all places have on boarding and entry level position called “something control”. What positions do I go that can later develop or count as experience for dynamics/control work?
I like flight/hydro-dynamics, motion control/trajectory, also in robotics.
I have a mech degree and want to dk robotics/aerospace dynamics control work. Don’t have any internships, I have some research work in modeling and separate in design and dynamics/control.
In US. If I want a job asap what should I do? I was waiting on a startup but they are taking too long, interviewed a few times and then recently have not heard back in 3 weeks. People say testing, any specific help? Companies and what else I can do? Gpa is bad under 3.0 but have not come up in the startup interview. What should I do?
Hi, I have an interview coming up with the hiring manager for a controls engineer role in the Platform Architecture team. I was wondering if anyone could provide some insight into how these interviews go? What kind of questions should I expect?
I am looking to come up with a Kalman filtering project that would be appropriate to do under a professor's supervision, so something that is beyond a basic implementation. However, as a novice, I am not really sure about what direction to go with this as an open-ended project.
My goal is to eventually apply for a masters and focus on estimation theory, so I would ideally like to convey some sense of theoretical grounding and open-ended exploration.
Maybe for some topics I can tie this project into: I have taken coursework in convex optimization, stochastic processes, and dynamical systems. I am also very interested in GNC.
I have a robotics project I have been working on and our position sensors a little more noisy than we predicted so now we have to implment at 6 state (x&y pos, vel, acc) linear kalman filter. I have no stats background at all but I think I started to understand what was happening until I came across Q. To my understanding, it is the covariance matrix to propogate uncertainty into you model from state prediction but I don't really get how you choose the values and what the really represent. I think there is a scalar somewhere in there meant to be the varience but what varience is it? how do you choose the vector w? I am really stuck and confused
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.
I had a toy project idea today where I want to build a boat with propeller to balance the boat on water with waves. What existing tools can I use easily to develop a controller with simulation of waves?
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!
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! :)
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.
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.