/r/ControlTheory

Photograph via snooOG

Welcome to r/ControlTheory

Link to Subreddit wiki for useful resources


Official Discord : https://discord.gg/CEF3n5g


Related Subreddits:

/r/ControlTheory

33,026 Subscribers

5

Combining control theory with DSP and communications

I'm in the process of obtaining an MS in Electrical Engineering with a focus on controls. I find control theory very interesting, but I've recently become interested digital signal processing and communications, particularly wireless communications. Are there any active research areas or subfields that combine control theory, DSP, and communications?

0 Comments
2025/02/01
17:11 UTC

7

Questions about Transfer Functions

Hi all,

I’m new to the field of control systems and still in the process of learning. However, I have some questions that I would love to ask someone with experience in this area.

  1. I choose a first-oder transfer function - TF for system H(s) = c/(as+b). I fit the TF with data from an step function input. The fit is >90%. But now if I change my recorded input in a real system, which not a step anymore, it is more random things. I use scipy.signal.TransferFunction and lsim, I still can have the output from this. However, I still wonder this is correct or not because with lsim, I can feed the discrete input in time domain. Do you think this is correct? and why I dont have to transfer the input to s-domain?
  2. I have another Transfer function which I analysis my control circuit (have a infulence of capacitor). For example like this. Then, my transfer function looks like H(s) = P/R + 1/(RsC). sC = the impedance of the capacitor. My input still a discrete data, and I feed each time step to create a closed-loop system, but I have to use a look back window to calculate the dominant frequency of the previous signal for the capacitor. Thus I think there is not right in here. Can you guy show me the proper way to do it?

P/s: I also add disturbance in the output before it came to the control's TF => so that's why I feed each time step

I think I still don’t fully understand the concept of the transfer function, so I would like to ask for some help.

Thank you in advance and have a nice weekend

0 Comments
2025/02/01
09:15 UTC

32

Lets be honest about Sliding mode control (SMC)

Recently, I started experimenting with control during my free time. So far, I’ve implemented state-space control, LQR, and a Kalman filter on a simple DC motor. Now, I’d like to dive into nonlinear controllers and, since I took a course on robust control many years ago, I started looking into SMC again.

But after browsing Reddit I’ve noticed that many people seem to have only an intellectual interest in SMC and consider it unusable for real-world applications. Is this really the case? Should I skip SMC and go straight to Model Predictive Control (MPC) or Neural Network (NN) control?

Are there any specific use cases where SMC shines, such as robotics or trajectory tracking? Also, I’d love recommendations for hands-on nonlinear control projects that are worth trying.

Would appreciate any insights from those with experience in the field!

28 Comments
2025/01/31
20:36 UTC

3

Career help need advicr

I am a EE guy really interested in control system engineering how should I get into this field and I planned to do masters should I do it in control systems or any other filed in electronics please help me

5 Comments
2025/01/31
10:53 UTC

1

State Space Representation from Block Diagram

Hi guys, I'm currently trying to solve this question. Im to design a full state feedback controller but I am not sure how to solve the block diagram to obtain the A, B and C matrices. Any guides I should follow to solve this?

0 Comments
2025/01/31
08:11 UTC

1

Paper reimplementation problem

Hello,

I've been trying to implement this paper in simulink. The idea is that the feed forward compensator should counter the input position such that the output is zero. In other words the compensator needs to output a value that is equal and opposite to the input angular position. The problem is that when I implement it based on this paper, It doesn't behave at all as mentioned or maybe I've done something wrong in simulink. Could someone take a look at it. For context, my background is in mathematics but not control system engineering specifically. The paper is: THE USE OF CONTROL SYSTEMS ANALYSIS IN THE NEUROPHYSIOLOGY OF EYE MOVEMENTS and I can share a copy if anyone wants it or my code!

Edit: I wasn't finished typing.

2 Comments
2025/01/30
23:22 UTC

3

Estimate low-frequent motion using Kalman filter

My problem is this: I have a harmonic oscillator Ma+Bv+Kx=F, with full state measurement. F is unknown, and M,B,K are uncertain. But I know the eigenfrequency.

I wish to estimate the motion in a narrow frequency range around the eigenfrequency of the system. Low-pass filtering or band-pass filtering does not work, due to significant disturbances close to the frequencies of interest.

In ship motion control, it is common to use a Kalman filter to separate the low-frequent motions from wave-induced motions, see link below. Similar technique might work here, but results so far are unsatisfactory. In simulations I’m able to tune it to get decent results, but I lack the robustness needed for real-life implementation.

The papers I have found on Kalman wave filtering consider systems where there is significant separation between the wave frequencies and the low-frequent motion. This makes the problem kinda trivial, since even a simple low-pass filter would yield decent results.

I’m looking for additional in-depth resources. Or perhaps on other techniques that can solve this problem. Any tips?

https://www.fossen.biz/publications/2009%20Fossen%20and%20Perez%20IEEE%20CST.pdf

10 Comments
2025/01/30
21:55 UTC

3

Design a constraint for the optimization problem

I am currently trying to design a constraint which has a cone shape. The idea is that my optimized solution (x,y) should be inside that cone (a,b) and the line c, while solving the cost function. The cost function is just to reduce the distance between the initial pose (A) to the coupling pose(rx,ry).

I am attaching a picture in order to explain the idea. I have read so many articles and asked ChatGpt as well, however I am not been to understand how to design the constraint equation for a,b and c. Can anyone give me an explanation with the basic mathematical derivation? I would really appreciate any help.

https://preview.redd.it/7t3q710ym5ge1.png?width=736&format=png&auto=webp&s=460325afd2fad3229a651dcb661c29e85206c609

5 Comments
2025/01/30
16:01 UTC

7

Coming from a biology background, how do I learn network controllability?

Hello all,

I study biological networks as a grad student and recently, I got acquainted with the concept of network controllability. It's bloody interesting! I am going through a couple of foundational papers one of which is tailored to biology but I am struggling to grasp the intuition behind the math. I have a basic understanding of Linear algebra (I study it whenever I get time out of my busy schedule).

I keep coming across terms like Linear Time Invariant systems, state space model, etc which flow right above my head.

Please suggest an approach to understand this field and please point to resources that would be appropriate with my background. Interest is not an issue and neither am I scared of math. I like it and wanna be good at it (in the context of my field at least). So, please write back.

Thank you for reading!

23 Comments
2025/01/30
09:48 UTC

5

Tips for controls engineering intern ASML

I have an interview coming up for Controls Engineering Intern position at ASML USA.

After applying online, I had to do a hirevue interview answering a few basic questions regarding my interests and background. I am now invited for a remote interview with 2 control engineers at ASML.

Any general tips or advice, for the interview ?What should I be on the look out for ?

Thanks !!

7 Comments
2025/01/30
05:28 UTC

3

References on Theory for Comparing Algorithms

Does anyone know of any work that basically says if you have a nonlinear control laws for a system that achieves reference tracking, could we also design a recursively feasible nonlinear mpc for the system that achieves reference tracking? I haven't seen much on this topic but it seems to actually be an interesting question

1 Comment
2025/01/30
04:57 UTC

10

Handling model uncertainties in MPC

I’m a Master’s student in applied science (previously a Computer Science student), and my thesis focuses on controlling a greenhouse. I’m currently working with a piecewise linear greenhouse dynamics model, which is inherently non-linear. There are also numerous control constraints, and the final objective is to maximize photosynthesis, which I believe is a non-convex function. Additionally, the dynamics model is subject to some uncertainties like input disturbances, unmodelled dynamics, and errors introduced during linearization.

I’ve learned that MPC is a promising approach for this problem, but I’m unsure how to handle the uncertainties in the model. Could anyone provide insights for addressing these uncertainties? I would greatly appreciate any relevant resources or references that could help me tackle this problem.

3 Comments
2025/01/30
01:51 UTC

8

Graduating at CERN

I'm currently majoring in Systems and Control and am very interested in pursuing a graduation project at CERN. I am fascinated by all the research that is done and I believe CERN would be a great place to learn from the best.

I've been looking at the CERN website, but have not been able to find very specific information and would therefore like to hear from people that are familiar with CERN's work, specifically,

What are some projects that would fit my background?

What skillset would make me stand out?

I would really appreciate any advice.

2 Comments
2025/01/29
20:56 UTC

2

Defining PID Values for Transfer Function which has s in Numerator

Hello, I have this transfer function. When determining kp, kd and ki values ​​with pole placement, I find two kd values. I think this is because there is an s in the numerator part. Can you help with this?

1 Comment
2025/01/29
20:15 UTC

2

Need guidance developing and building a rotary inverted pendulum.

I am a senior in college just starting his senior project, and chose to design an inverted pendulum, and I specifically liked the look and design of a rotary inverted pendulum. It appears that no one else chose this project from the list of options though, and now I have a semester to figure this out on my own, so I was hoping I could ask here on advice on where I can get started, especially parts wise and how to account for the angular movement considering id like the inverted pendulum to be rotary. I've also seen a few methods, including designing a PID controller, a github with built in code, and working through matlab simulink and was hoping I could get advice on which to choose, especially because while I can read and calculate PID layouts, I'm not sure how to actually design one. Any help would be greatly appreciated.

5 Comments
2025/01/29
20:02 UTC

6

Navigating Career Growth Without a Bachelor’s: Seeking Advice

I’m seeking some insights and advice regarding my career situation and would love to hear what you would do if you were in a similar position.

After attending a trade school for automation, I spent five years moving between companies before landing a role as a Controls Engineer. In short, my work involves a significant amount of project planning, design, and implementation across various types of automation and process equipment.

While the scope of my work is on par with that of an engineer—and the companies I’ve worked for, including those I’ve contracted with, treat me as such—I’ve noticed that many employers still list a Bachelor’s degree as a requirement for their positions.

This brings me to my questions:

1.	When applying for roles where a Bachelor’s degree is required, how can I best present my experience and qualifications to convince employers to consider me as a candidate?
2.	I’m contemplating going back to school to earn my degree. If you were in my shoes, which degree would you pursue to complement my current work in automation and controls? I’m open to any suggestions and would appreciate hearing your reasoning.

Thanks for taking the time to read and share your thoughts!

4 Comments
2025/01/28
18:31 UTC

20

Research Collaboration in Adaptative/Online LQR

As part of my PhD research, I’ve transitioned from deep reinforcement learning to exploring online LQR. Specifically, I’ve been diving into the ideas presented in this paper.

I’ve developed some algorithmic ideas that I believe could be highly efficient. However, my background is primarily practical, and I lack the theoretical foundation to perform a rigorous theoretical analysis of these methods.

If anyone is interested in this topic and would like to collaborate on the theoretical aspects, I would love to connect. :)

3 Comments
2025/01/28
07:20 UTC

6

Linearity Definition: Linearity of Inputs or States or Both?

Hi All,

My background is in circuit design and I wanted to brush up on my fundamentals in Control theory and Signal processing. While revisiting my fundamentals, I noticed something that I did not pay attention to before.

In Lathi's newer Book: "Linear Systems and Signals (The Oxford Series in Electrical and Computer Engineering)"

https://preview.redd.it/1h1l3gtixnfe1.png?width=669&format=png&auto=webp&s=94cbd7e26888a580c18515f8204ca6427a0b195b

Linearity is defined using the additivity and homogeneity of inputs, x(t) to the system
Then it proceeds to say that the full response can be decomposed into Zero State Response and Zero Input:

https://preview.redd.it/pupszo5rxnfe1.png?width=565&format=png&auto=webp&s=7cf210e36783c002f411dc13c2983955ea4cbc8e

And then it also proceeds to say that linearity implies zero state and zero input linearity

https://preview.redd.it/j1do0mt1ynfe1.png?width=583&format=png&auto=webp&s=a1147e86b52131012b26d9f56ebbe822058a5fd6

My problem is that Linearity was first defined as additivity and homogeneity of inputs, not states so I'm not sure how zero input linearity follows from it. My guess is that this initial condition is a result of an input before t=0 so if the system is linear, the state at t=0 scales with the past input?? and again, since the system is linear, if we instead take t=0 to be the time that past input was applied, then the current output would scale with that past input ( and state at t=0) ??

However, in Lathi's older book https://archive.org/details/signalssystems00lath/mode/2up it speaks of linearity as superposition of causes:

https://preview.redd.it/a46pwbzy0ofe1.png?width=502&format=png&auto=webp&s=7d3a78875fe1d0de1363942d79b8d9c68a73832b

In this case, I can see how Zero Input Linearity, Zero state linearity and decomposition property follows.

Thanks in advance and any help is appreciated.

6 Comments
2025/01/28
04:53 UTC

18

On Orbit Object Transportation with Spacecraft Swarms

Hey r/ControlTheory! 

My name is Sidh, and I’m a controls Ph.D. student at Purdue specializing in multi-agent/swarm robotics for orbital infrastructure—think repair, retrieval, assembly, and construction in space! I’m also a co-founder of Manifold Research Group, where we tackle ambitious, next-generation research problems. 

I’m excited to share that I’ll be giving a talk this Saturday, Feb 1st, at 12 PM (PST) on my Ph.D. research and some of the exciting projects we’re working on at Purdue and Manifold.

Talk Title: On-Orbit Object Transportation with Spacecraft Swarms

I’ll dive into the research my co-authors and I published in this paper:

https://arc.aiaa.org/doi/abs/10.2514/6.2025-0405 

The talk will also explore:

  • Planned extensions of this work for orbital logistics and manufacturing.
  • A related Manifold project on modular self-assembling space structures, some more information on that is also available here.

If you’re interested in space robotics, swarm behavior, or futuristic engineering challenges, come join us for this talk!

Save your spot here: https://lu.ma/ghp7suki 

Looking forward to seeing some of you there and answering any questions you might have afterward!

1 Comment
2025/01/27
19:40 UTC

2

PMSM Back EMF Observer Without Voltage Measurements

I was curious if anyone had ever come across a way of estimating the back emf of a PMSM without actually knowing the applied voltage, but knowing the current, position, and speed via measurement. Assume you have at least a rough estimate of the winding resistance and the inductance but you do not know the permanent magnet flux linkage.

Given the electrical model of a PMSM I don't really see how this could be possible, but thought I'd check if there was some method I hadn't come across that could work.

I'm relatively new to motor control, so apologies if I seem to be missing something or this is just obviously not possible.

5 Comments
2025/01/27
14:12 UTC

12

IFAC Graduate School on Control

Has anyone ever participated at IFAC Graduate School on Control? Can you share your experience please?

I would like to attend the one in Ilmenau in April, but I am not sure if it is worth paying 350 euros, as I am an private individual.

https://www.ifac-control.org/news

10 Comments
2025/01/27
11:45 UTC

2

Which control strategy should I use?

I am a real beginner with control engineering so excuse my ignorance.

Could you please suggest what kind of control strategy I can use in this situation?

My 'contraption':

I am building a temperature controlled bath for another project (chemistry). I re-purposed an electric heater and rigged a temperature sensor and a Arduino board as a controller. I am using a relay to turn the heater on/off in a pseudo PWM. The goal is to be able to control the temperature of the water bath within 1 C or so. The setpoints can be between 40 and 200+ C (with oil)

The challenge:

Currently I am using standard PID but facing problems with overshoots/tuning. Main reasons for this:

  1. The size of the bath can change every time (say around 500g to 5000g). So I can not use preset PID parameters. The system needs to work on a wide variety of water bath weights and standard PID seems not to be the way.
  2. The heater itself has a weight (say 500g) that is comparable to weight of the water bath on the lower end. And heater gets very hot by nature (around 500 C). So even if the heater is powered off, the stored heat will continue to heat the water bath.
  3. There is delay between heater being active and the temperature raise being registered due to all the thermal masses involved in the chain.

In summary, I need a control system that can adapt to different 'plant behaviors' that include some kind of capacitance/accumulation and delay.

Does this exist, especially something that can be implemented by a novice (e.g. an Arduino/C++ library)?

Or am I better off just limiting the heater power to just slow everything down to prevent overshoots?

I would appreciate any leads or keywords I can search for.

EDIT: It would be acceptable to use first 2-3 minutes of each 'session' to characterize the system by giving an step signal for example.

8 Comments
2025/01/27
10:58 UTC

6

*Beginner* Is it feasible to run a MPC controller and and AI model on raspberry pi 5, 8gb + Coral TPU?

Hey, all!

I am a beginner, and am trying to make an autonomous vehicle on a raspberry PI 5 8gb, and a coral TPU for running the prediction models. I was wondering if this is feasible to run without being overly inefficient? I am planning on implementing the MPC controller in python, and having it follow the path that gets generated by the model. I assume its feasible because the raspberry pi runs the MPC computation parts, and the TPU focusses on the prediction. I am completely new to this so please let me know if I am omitting information, I will respond as soon as I can!

Thank you in advance for your help!

7 Comments
2025/01/27
04:40 UTC

2

Steady State Error of Close-Loop System in terms of system type

Hi,

I'm studying the computation of steady state error of reference tracking close-loop system in terms of system type 0, 1, 2. The controller TF is kp+kd*s and the plant model is 2/(s^2-2s) with negative unity feedback.

As you can see in the attached snapshot which is the formula of final value theorem on E(s), however,

- if n=0, it's a impulse reference input, the limit is ZERO

-if n=1, it's a step reference input, the limit is -1/kp

-if n>=2, the limit is infinity

The following are my questions

Q1: why isn't the system type type '0' but type '1' since ZERO is a constant as well?

Q2: What's the difference of system type definition between OLTF and CLTF i.e. E(s)? Are they the same meaning? Because for OLTF = (kp+kd*s)*(2/(s^2-2s)) which has one pole at origin which is type 1. It seems both way can derive the same result but I don't know if the meaning is the same.

Q3:In practical, why does control engineer need to know the system type? before controller design or after? How can the information imply indeed from your realistic experience?

Thank you

1 Comment
2025/01/27
02:40 UTC

7

How to determine if it can use PID if we don't know the plant math model

Hi,

I have a question regarding the application of control theory. I see many people who are not the background of any control theory in the undergrad. However, when the system is a feedback system , they seems being able to google to use PID algorithm as a resolution with manual tuning w/o any derivation of the plant math model in advance in the industry.

I'm wondering what's the difference to jump start from the modeling of plant math model as transfer function. What's the benefit to learn the control theory against w/o math model knowledge?

Given that we try to derive the math model, if the derivation process is wrong and not aware, the wrong controller will be designed. How could we know if the plant math model is correct or not?

12 Comments
2025/01/26
09:25 UTC

9

PID controller for controlling directions

Hello

I'm coding a video game where I would like to rotate a direction 3d vector towards another 3d vector using a PID controller. Like in the figure below.

https://preview.redd.it/etffn5u3s5fe1.png?width=723&format=png&auto=webp&s=925d8ab5e368985fe9164e4d310c1cb3718b5ad4

t is some target direction, C is the current direction.
For the error in the PID controller I use the angle between the two vectors.
Now I have two question.

Since the angle between two vectors is always positive, the integral term will diverge. This probably isnt good. so what could I use as a signed error?

I've also a more intricate problem. Say the current direction is moving with some rotational velocity v.
Then this v can be described as a component towards the target, and one orthogonal to the direction towards the target. The way I've implemented it, the current direction will rotate exactly towards the target. But given the tangent velocity, this will cause circular motion around the target, And the direction will never converge. How can I fix this problem?

I use the cross product between the current and target as an angle of rotation.

Thanks in advance

13 Comments
2025/01/25
15:34 UTC

6

Second thoughts on master's degree focus

Hello engineers,

I am a master's student working on MRAC for brushed DC motors, well, I was, anyway. I've been focusing on this topic for 5 months now and I did an implementation that provided pretty good results; however, I just don't feel there is anything more I can do in this topic, I can't find this interesting enough to continue.

Therefore, I would like to ask for guidance in one or more of the following, this is just a brainstorming post:

1- ideas to enhance MRAC for more applications or using advanced techniques, this could allow me to spark my interest by finding a solution to maybe implementing a hardware algorithm on an FPGA or a MC.

2- assuming that I might disregard this topic and change the focus of my studies, what do you think is an interesting topic? Honestly, I like to work on real life applications that at some point can become hardware implementations.

My interests are: sports (mainly soccer and tennis), ships (thought once of implementing a ballast water management system, can't remember why I abandoned it), and astronomy (thought once of implementing MPC for missle guidance, but couldn't gather enough info at the time).

I'm relatively good at MATLAB, Microcontrollers, and I do my best with FPGAs, if this piece of information is of any value.

Thank you, engineers, in advance.

2 Comments
2025/01/24
19:30 UTC

15

Finding the optimum PI controller parameters for a servo

Hello,

I recently made a post here asking some questions about the assignment I was given. After figuring it out a few people asked me to post my findings here.

I was assigned to design a PI controller that would control the speed of my servo. Here is the block diagram of the starting system:

Picture 1. Block diagram of the system

The angular speed of the servo is measured by a digital angular speed sensor which has a sample time of T. (keep in mind the sensor measures the angle of rotation but spits out it's derivation of it which is the angular speed -> speed=(alpha_now-alpha_before)/T) For the initial design of the PI controller I won't be taking in the consideration the torque of the load 𝑚_L. Here is the comparison of the real and measured angular speed with a simple step input:

Picture 2. Comparison of the real and measured angular speed

As you can see from the picture the measured value always lags behind the actual value which is expected. To determine the optimal controller parameters I need to transform everything into the continuous domain - i.e. the digital speed sensor. A great solution to simplify things is just to assume the measured speed is the real speed (not the other way around) so I added the sensor time constant T to the servo armature constant (this is not mathematically correct but simplifies the system greatly). With this simplification I do 2 things:

  1. whole system is now in the continuous domain
  2. system is less complicated

Here's a picture of the simplified system and it's response:

Picture 3. Comparison of the real and simplified system

We can see the simplified system lags behind the real system but all in all I would say the simplification is acceptable for my use case.

A PI controller can be executed in a few different ways. The conventional way is just to put both P and I in parallel where they act upon the control error. This has a negative side of adding an additional zero to the system. The root cannot be avoided it's the integral part of the PI controller but the zero could be negated by adding a signal prefilter whose transfer function will cancel out the added zero to the system.

I prefer the alternative PI controller execution which does not require the signal prefilter as it doesn't add a zero to the whole system but acts identically to a conventional PI regulator with a signal prefilter.

Here is the comparison of the 2 implementations of the PI regulator:

Picture 4. Comparison of the 2 PI controller implementations

Now that I've chosen the desired implementation of the PI regulator it's time to determine the optimal controller parameters - K and Ti. All that I care about is the fastest response time (settling time actually) and with that in mind I'll choose the damp optimum of the system. I don't know the mathematics behind this method but there are mathematical proofs for it.

Here's how it goes:

Picture 5. Procedure to find the optimal controller parameters

When all the D parameters are set to 0.5 (D2=D3=0.5) the K and Ti values are tuned for the fastest settling time. The downside of this approach is that the system overshoots about 6-8% which in my use case isn't a big deal.

Here's the response of the system after setting the controller parameters to the ones I calculated:

Picture 6. Response with the fastest settling time (overshoots a little)

To get the fastest settling time which doesn't overshoot I simply set the D2=0.35 and keep the D3=0.5 and recalculate the controller parameters.

Here's the response:

Picture 7. Response with the fastest settling time that doesn't overshoot

The settling times seem to be pretty similar in these 2 images but mathematically the first image where the parameters D2 and D3 are set to 0.5 is faster. However in my opinion the response where the value doesn't overshoot looks better.

Note:

This method doesn't take into account the limits of your system like the maximum allowed current etc. etc.

2 Comments
2025/01/24
17:57 UTC

11

Looking for Feedback: Open Source Project on Nonlinear MPC for Humanoid Locomotion

We recently released an open-source project on GitHub that implements full-order physics-based motion planning and control for humanoid robots. We hope this project can help to make the topics of Nonlinear MPC more accessible, allowing users to develop intuition through real-time parameter tuning. Do you have any recommendations for maximizing the project's accessibility, particularly regarding documentation, installation process, and overall user experience?

https://github.com/1x-technologies/wb-humanoid-mpc

12 Comments
2025/01/24
16:47 UTC

21

Career switch from robotics to GNC

If you already have navigation expertise in robotics, for example software development with ROS, knowledge of the navigation stack, path planning, pose estimation and trajectory tracking algorithms, how difficult is to transition to GNC engineering roles?

Which are they key differences between GNC in aerospace and navigation in robotics, in terms of software tools and theoretical knowledge?

Does an engineer with a background in control systems find an easy transition between the two roles?

2 Comments
2025/01/24
13:49 UTC

Back To Top