Design of High Pass filter to eliminate an instability in my control system

AI Thread Summary
The discussion revolves around designing a high-pass filter to improve the settling time and reduce oscillations in a control system using a first-order controller. The user initially achieved a settling time of 10 seconds by selecting a cutoff frequency (fc) of 100 Hz for the filter but seeks a mathematical justification for this choice. Responses emphasize the importance of understanding the entire system's transfer function, as well as the role of phase and gain margins in altering system behavior. The conversation also highlights that adding a high-pass filter can be an ineffective method compared to proper lead-lag compensation techniques. Overall, a deeper understanding of control system fundamentals is recommended for effective troubleshooting and design.
Abdul Wali
Messages
33
Reaction score
0
HI,
i have a first order controller (ts/ks+k) which contain some oscillations and its settling time is very huge, i wanted the controller to have settling time of 10seconds and remove the oscillations. in order to remove the noise and get the expected settling time i added a filter ( s/cs+1) where c=1/fc where fc=cutoff frequency to the transfer function. during troubleshooting after choosing different values for fc finally i chose fc=100 and it gave me settling time of 10seconds. Now i am not sure and i want to know that how to prove this mathematically ?? or how it happened??Or is it possible to prove it from bodeplot as attached to the link below?
https://drive.google.com/open?id=0B9NQhKDld_D4TjNPNzNoM2I3U28

Your help is appreciated. Thanks in advance.
 
Last edited:
Engineering news on Phys.org
Abdul you need to give us more information about your system, and preferably be a bit more rigorous with your use of parenthesis.

is your system the value you gave, or is that just the transfer function for the controller.
sys = [ t s / (ks + k) ] . if this is true, then your system can be simplified to [ (t/k) s/(s+1)]

If the tf you gave is just the controller and not the entire system (which i think is the case), then you need to tell us the tf for the system you are controlling. We need the entire picture to help you.

As for why you adding that filter changed the settling time and ringing, the answer lies in the video linked by Jim. by adding a high pass filter you simply made a "crappy" version of a lead filter (essentially a lead filter that introduces more changes than desired).
 
  • Like
Likes jim hardy
I also want to say that video is amazing. It does a great job at explaining how and why those filters work.
 
  • Like
Likes jim hardy
donpacino said:
Abdul you need to give us more information about your system, and preferably be a bit more rigorous with your use of parenthesis.

is your system the value you gave, or is that just the transfer function for the controller.
sys = [ t s / (ks + k) ] . if this is true, then your system can be simplified to [ (t/k) s/(s+1)]

If the tf you gave is just the controller and not the entire system (which i think is the case), then you need to tell us the tf for the system you are controlling. We need the entire picture to help you.

As for why you adding that filter changed the settling time and ringing, the answer lies in the video linked by Jim. by adding a high pass filter you simply made a "crappy" version of a lead filter (essentially a lead filter that introduces more changes than desired).
hi, below is the information of the system.
controller transfer function= ts/ks+k
motor transfer function (that is being controlled) = k/ts^2+s
where k= 0.4 and t= 2.7763
filter equation: s/(1/fc)s+1
when i first tried to control the motor by controller without using the filter i found that there are some oscillation and the settling time of the system increased. now let's say that i want my system to be free of the oscillations and improve the settling time so i think of adding a high pass filter but when i want to add a high pass filter then what should be the cutoff frequency of the filter that i must choose or how should i choose? @donpacino
 
normally you can change the poles, zeros, and gain of a controller. why are your controller values static? is this just a problem you were given?

Also did you read my above post? adding a high pass filter is just a very bad version of a lead filter. watch the video jim posted and it will help you achieve the results you want
 
  • Like
Likes Abdul Wali
note: normally the controller consists of a gain followed by some combination of lead and lag filters (or other things)
 
  • Like
Likes jim hardy and Abdul Wali
donpacino said:
normally you can change the poles, zeros, and gain of a controller. why are your controller values static? is this just a problem you were given?

Also did you read my above post? adding a high pass filter is just a very bad version of a lead filter. watch the video jim posted and it will help you achieve the results you want
yes, its just a problem and values can vary too. yes, i read your post and i didn't understand much from the video too. attached is the bode plot and the signal characteristics of the system, after adding the filter at the fc=100hz. because i thought may be there is some way to prove that why fc is chosen as 100hz in reverse after having the system outputs and characteristics. but i m not able to prove this mathematically. so is there any way to get a relationship of fc with this available data?
 

Attachments

  • Screen Shot 2017-07-26 at 8.31.00 PM.png
    Screen Shot 2017-07-26 at 8.31.00 PM.png
    10.5 KB · Views: 507
  • Screen Shot 2017-07-26 at 11.05.57 PM.png
    Screen Shot 2017-07-26 at 11.05.57 PM.png
    19.4 KB · Views: 518
  • #10
ok I am going to reword a few of the things I've said...

1. your controller: ts/ks+k

I asked you to specify parenthesis. since you didnt make any changes, I can only assume your controller can be simplified to
[(t+k)/k^2] or [ (t/k) s/(s+1)]
either way these systems don't allow you to change the poles or zeros of your function. You shouldn't be adding a controller then a subsequent filter when the controller really doesn't do much. unless the controller is specified as part of the problem statement, which you didn't even tell me yes or no.

2. the hgih pass filter: like i said before the reason your high pass filter works is for reasons specified in the video. another way to put it is the phase and gain margins change, which change the poles and zeros of the overall closed loop system. but like I've said before adding a high pass filter is a bad way to do it. If you olny want to know mathematically why your trial and error method worked and don't care about the actual way to do it, then just know its because of the phase and gain margin changing and the poles changing.

3. If you don't understand that video, you should probably go backwards and take a look at the basics. lead and lag filters are an integral part of class control systems. If you can't understand them, you need to go back and take another look.
 
  • #11
donpacino said:
ok I am going to reword a few of the things I've said...

1. your controller: ts/ks+k

I asked you to specify parenthesis. since you didnt make any changes, I can only assume your controller can be simplified to
[(t+k)/k^2] or [ (t/k) s/(s+1)]
either way these systems don't allow you to change the poles or zeros of your function. You shouldn't be adding a controller then a subsequent filter when the controller really doesn't do much. unless the controller is specified as part of the problem statement, which you didn't even tell me yes or no.

2. the hgih pass filter: like i said before the reason your high pass filter works is for reasons specified in the video. another way to put it is the phase and gain margins change, which change the poles and zeros of the overall closed loop system. but like I've said before adding a high pass filter is a bad way to do it. If you olny want to know mathematically why your trial and error method worked and don't care about the actual way to do it, then just know its because of the phase and gain margin changing and the poles changing.

3. If you don't understand that video, you should probably go backwards and take a look at the basics. lead and lag filters are an integral part of class control systems. If you can't understand them, you need to go back and take another look.

let me put it this way to u:

i am given a controller T*s/(k*s+k) and a motor k/(T*s^2+s). the controller controls the ac motor. i am required to modify the Simulink block diagram by breaking the controller transfer function into its components and then sending the output to the motor in order to control the motor. i am also given the expected output, bode diagram and signal characteristics of the system. now when i start modifying the controller transfer function, during the process I come to a stage that I need to use the derivative block as shown in the following link (https://www.mathworks.com/help/simulink/slref/derivative.html#br3m9zv-1 ). when i add the derivative block to the system now i am sure that my broken transfer function is equal to the given controller transfer function. but there is one problem as i am given the expected output of the system so finally my modified design should also have the same output because i didn't bring anything new i just broke the transfer function into its components and then connected all the blocks together so at the end i get the same transfer function BUT my modified version output has a litlle bit noise and the settling time increase. according the MATLAB website i found that the noise is because of the derivative block and they have a given a solution (that the derivative block should be replaced by a filter [s/cs + 1] where c=1/fc as shown in the following link https://www.mathworks.com/help/simulink/slref/derivative.html#br3m9zv-1 Now since i am given all of the expected signal characteristics, bode diagram and output signal as shown in the following link ( https://drive.google.com/open?id=0B9NQhKDld_D4T0xwZTdZY1V6NHM ) so can you help me that how should i choose the value of fc for the filter so that i can get the expected output? @donpacino
 
  • #12
It sounds to me like homework.

Is this the Bode plot you want to achieve ?
bodeplotforabdul60%.jpg
 
  • Like
Likes Abdul Wali
  • #13
Abdul Wali said:
my modified version output has a litlle bit noise and the settling time increase.

If you want to live in the world of control systems you should learn the lingo! Those spikes (overshoots) you showed earlier are not noise, its called ringing. It occurs when a system is underdamped. This might sound harsh, but if you get confused by the term under-damped you might want to backpeddle and go learn some more basics about control systems. One needs to walk before he can run, we all went through it!

Abdul Wali said:
that the derivative block should be replaced by a filter [s/cs + 1] where c=1/fc as shown in the following link https://www.mathworks.com/help/simulink/slref/derivative.html#br3m9zv-1

This might be where some of the confusion is coming from. That line is talking about linearizing the derivative function. You do not need to worry about it, as you are working with the 'classic' linear model for a dc motor.

I think the biggest issue here is communication. We are not fully aware of the problem you are actually trying to solve, instead you are asking us very specific questions about a solution you tried that will not solve the problem. Is this a homework or lab problem, or did you create it yourself?

Can you do us a favor and give us the actual problem statement, not your interpretation of it? that might allow us to better help you. It that you are having trouble setting up the model correctly, in which case you should not be considering filters to improve performance yet. Another thing to consider, you might want to show multiple lines on your bode plots, one with the controller and one without for comparison sake.
 
  • Like
Likes Abdul Wali and jim hardy
  • #14
jim hardy said:
It sounds to me like homework.

Is this the Bode plot you want to achieve ?
View attachment 207907
@jim hardy Yes, this is the Bode plot that i want to achieve.
 
  • #15
Abdul Wali said:
@jim hardy Yes, this is the Bode plot that i want to achieve.

Abdul Wali said:
hi, yes i have looked into this but i couldn't get what i want.

Hmmm.

This seems pretty close to what you asked. I sure wish i'd had such clear explanations when i took controls in 1966.
 
Back
Top