DSPRelated.com
Forums

Adaptive PIDF under closed-loop

Started by adrianni March 28, 2015
Hi guys

I know this not quite by the book of control theory, but i am looking into
ways to implement an adaptive system onto my PIDF. Lets say (theoretical)
that we dont have equations of state, hence we can't linearize the system
around certain operating points. We can only do open-loop step response to
estimate a optimal controller. The system is unstable and have complex
poles. 
With that being said. How would you approach the adaptive system? I know
that Asymptotic Properties for LQR/LQG controller works, but i want propose
something less complex.
I've tried something so simple as using the step response slope of the
system to estimate a time constant (assuming first order), and thereby
using abs(time_const-desired_time_constant) as a factor for multiplying the
old controller gain. 

Do you guys see any other (creative) ways of calculating the adaptive
parameters? I have zero time delay. Any (included dump) suggestion are
appreciated. 

	 

_____________________________		
Posted through www.DSPRelated.com
(I'm cross posting to sci.engr.control in a probably futile attempt to 
revive that group).

On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote:

> Hi guys > > I know this not quite by the book of control theory, but i am looking > into ways to implement an adaptive system onto my PIDF. Lets say > (theoretical) that we dont have equations of state, hence we can't > linearize the system around certain operating points. We can only do > open-loop step response to estimate a optimal controller. The system is > unstable and have complex poles. > With that being said. How would you approach the adaptive system? I know > that Asymptotic Properties for LQR/LQG controller works, but i want > propose something less complex. > I've tried something so simple as using the step response slope of the > system to estimate a time constant (assuming first order), and thereby > using abs(time_const-desired_time_constant) as a factor for multiplying > the old controller gain. > > Do you guys see any other (creative) ways of calculating the adaptive > parameters? I have zero time delay. Any (included dump) suggestion are > appreciated.
First, I'm going to make a distinction between "adaptive" and "self- tuning". "Adaptive", to me, means that the controller adjustment is on-line all the time. I.e., the system is continually watching the plant inputs and outputs, it's adjusting the plant model, and it's updating the controller gains. "Self-tuning" means that the controller adjustment is a one-time event that happens under operator control: you push the "self-tune" button, the controller generates some stimulus, and watches the plant input and output to generate a controller tuning. Your step response slope thingie sounds like a self-tuning approach to me, unless you're continually having the system make little extra motions to assist in the self-tuning. Your approach of looking at the slope of the step response may work in certain limited circumstances. One of the things that strikes me about adaptive and self-tuning control is that the circumstances in which any particular approach works always seems to fit the definition "certain limited circumstance", with the only variable being just how painfully limited "limited" is. So, in your case, it may work. I strongly suggest that you get a copy of Åström and Wittenmark's "Adaptive Control". It provides a good base for understanding this stuff, and they have some material in there on simplified controllers (not to mention ways that you can determine just how limited your particular circumstances are). Personally, I don't think it's wise to launch into a pursuit of an adaptive controller for a process about which you have no knowledge (it gets back to the limited circumstances -- how do you know your controller will really work?). I wouldn't apply an adaptive controller unless I have a process for which I have a representative model with varying parameters, and I had a pretty good grasp on how those parameters would be varying, and I had determined that a plain old non-adaptive robust controller couldn't do the job. -- www.wescottdesign.com
On 3/28/15 2:26 PM, Tim Wescott wrote:
> (I'm cross posting to sci.engr.control in a probably futile attempt to > revive that group). > > On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote: > >> Hi guys >> >> I know this not quite by the book of control theory, but i am looking >> into ways to implement an adaptive system onto my PIDF.
what does the "F" mean in PIDF? -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Sunday, March 29, 2015 at 7:26:49 AM UTC+13, Tim Wescott wrote:
> (I'm cross posting to sci.engr.control in a probably futile attempt to > revive that group). > > On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote: > > > Hi guys > > > > I know this not quite by the book of control theory, but i am looking > > into ways to implement an adaptive system onto my PIDF. Lets say > > (theoretical) that we dont have equations of state, hence we can't > > linearize the system around certain operating points. We can only do > > open-loop step response to estimate a optimal controller. The system is > > unstable and have complex poles. > > With that being said. How would you approach the adaptive system? I know > > that Asymptotic Properties for LQR/LQG controller works, but i want > > propose something less complex. > > I've tried something so simple as using the step response slope of the > > system to estimate a time constant (assuming first order), and thereby > > using abs(time_const-desired_time_constant) as a factor for multiplying > > the old controller gain. > > > > Do you guys see any other (creative) ways of calculating the adaptive > > parameters? I have zero time delay. Any (included dump) suggestion are > > appreciated. > > First, I'm going to make a distinction between "adaptive" and "self- > tuning". > > "Adaptive", to me, means that the controller adjustment is on-line all > the time. I.e., the system is continually watching the plant inputs and > outputs, it's adjusting the plant model, and it's updating the controller > gains. > > "Self-tuning" means that the controller adjustment is a one-time event > that happens under operator control: you push the "self-tune" button, the > controller generates some stimulus, and watches the plant input and > output to generate a controller tuning. > > Your step response slope thingie sounds like a self-tuning approach to > me, unless you're continually having the system make little extra motions > to assist in the self-tuning. > > Your approach of looking at the slope of the step response may work in > certain limited circumstances. One of the things that strikes me about > adaptive and self-tuning control is that the circumstances in which any > particular approach works always seems to fit the definition "certain > limited circumstance", with the only variable being just how painfully > limited "limited" is. So, in your case, it may work. > > I strongly suggest that you get a copy of �str�m and Wittenmark's > "Adaptive Control". It provides a good base for understanding this > stuff, and they have some material in there on simplified controllers > (not to mention ways that you can determine just how limited your > particular circumstances are). > > Personally, I don't think it's wise to launch into a pursuit of an > adaptive controller for a process about which you have no knowledge (it > gets back to the limited circumstances -- how do you know your controller > will really work?). I wouldn't apply an adaptive controller unless I > have a process for which I have a representative model with varying > parameters, and I had a pretty good grasp on how those parameters would > be varying, and I had determined that a plain old non-adaptive robust > controller couldn't do the job. > > -- > www.wescottdesign.com
Unfortunately your definition (which makes sense) is contrary to the literature. Self-tuning controller have been around since the early 70s and are just another name for adaptive.
On 3/28/2015 1:55 PM, robert bristow-johnson wrote:
> > what does the "F" mean in PIDF? >
"proportional + integral + derivative + filter" (PIDF) Reference: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.413.4169&rep=rep1&type=pdf "Tuning of a PIDF Controller Used With a Highly Oscillating Second Order Process" --Nasser
On 3/28/15 4:20 PM, Nasser M. Abbasi wrote:
> On 3/28/2015 1:55 PM, robert bristow-johnson wrote: >> >> what does the "F" mean in PIDF? >> > > "proportional + integral + derivative + filter" (PIDF)
as if PID isn't already a filter. sounds like some author was trying (and maybe succeeding) at coining a new term that people can associate with that author's name. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Sat, 28 Mar 2015 12:36:21 -0700, gyansorova wrote:

> On Sunday, March 29, 2015 at 7:26:49 AM UTC+13, Tim Wescott wrote: >> (I'm cross posting to sci.engr.control in a probably futile attempt to >> revive that group). >> >> On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote: >> >> > Hi guys >> > >> > I know this not quite by the book of control theory, but i am looking >> > into ways to implement an adaptive system onto my PIDF. Lets say >> > (theoretical) that we dont have equations of state, hence we can't >> > linearize the system around certain operating points. We can only do >> > open-loop step response to estimate a optimal controller. The system >> > is unstable and have complex poles. >> > With that being said. How would you approach the adaptive system? I >> > know that Asymptotic Properties for LQR/LQG controller works, but i >> > want propose something less complex. >> > I've tried something so simple as using the step response slope of >> > the system to estimate a time constant (assuming first order), and >> > thereby using abs(time_const-desired_time_constant) as a factor for >> > multiplying the old controller gain. >> > >> > Do you guys see any other (creative) ways of calculating the adaptive >> > parameters? I have zero time delay. Any (included dump) suggestion >> > are appreciated. >> >> First, I'm going to make a distinction between "adaptive" and "self- >> tuning". >> >> "Adaptive", to me, means that the controller adjustment is on-line all >> the time. I.e., the system is continually watching the plant inputs >> and outputs, it's adjusting the plant model, and it's updating the >> controller gains. >> >> "Self-tuning" means that the controller adjustment is a one-time event >> that happens under operator control: you push the "self-tune" button, >> the controller generates some stimulus, and watches the plant input and >> output to generate a controller tuning. >> >> Your step response slope thingie sounds like a self-tuning approach to >> me, unless you're continually having the system make little extra >> motions to assist in the self-tuning. >> >> Your approach of looking at the slope of the step response may work in >> certain limited circumstances. One of the things that strikes me about >> adaptive and self-tuning control is that the circumstances in which any >> particular approach works always seems to fit the definition "certain >> limited circumstance", with the only variable being just how painfully >> limited "limited" is. So, in your case, it may work. >> >> I strongly suggest that you get a copy of Åström and Wittenmark's >> "Adaptive Control". It provides a good base for understanding this >> stuff, and they have some material in there on simplified controllers >> (not to mention ways that you can determine just how limited your >> particular circumstances are). >> >> Personally, I don't think it's wise to launch into a pursuit of an >> adaptive controller for a process about which you have no knowledge (it >> gets back to the limited circumstances -- how do you know your >> controller will really work?). I wouldn't apply an adaptive controller >> unless I have a process for which I have a representative model with >> varying parameters, and I had a pretty good grasp on how those >> parameters would be varying, and I had determined that a plain old >> non-adaptive robust controller couldn't do the job. >> >> -- >> www.wescottdesign.com > > Unfortunately your definition (which makes sense) is contrary to the > literature. Self-tuning controller have been around since the early 70s > and are just another name for adaptive.
Astrom and Wittmark make the distinction in their book. Which doesn't change the reality: online adaptation is fraught with a lot more problems than offline self-tuning, and so should be approached with a great deal more care. -- www.wescottdesign.com
On Sunday, March 29, 2015 at 12:43:02 PM UTC+13, Tim Wescott wrote:
> On Sat, 28 Mar 2015 12:36:21 -0700, gyansorova wrote: > > > On Sunday, March 29, 2015 at 7:26:49 AM UTC+13, Tim Wescott wrote: > >> (I'm cross posting to sci.engr.control in a probably futile attempt to > >> revive that group). > >> > >> On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote: > >> > >> > Hi guys > >> > > >> > I know this not quite by the book of control theory, but i am looking > >> > into ways to implement an adaptive system onto my PIDF. Lets say > >> > (theoretical) that we dont have equations of state, hence we can't > >> > linearize the system around certain operating points. We can only do > >> > open-loop step response to estimate a optimal controller. The system > >> > is unstable and have complex poles. > >> > With that being said. How would you approach the adaptive system? I > >> > know that Asymptotic Properties for LQR/LQG controller works, but i > >> > want propose something less complex. > >> > I've tried something so simple as using the step response slope of > >> > the system to estimate a time constant (assuming first order), and > >> > thereby using abs(time_const-desired_time_constant) as a factor for > >> > multiplying the old controller gain. > >> > > >> > Do you guys see any other (creative) ways of calculating the adaptive > >> > parameters? I have zero time delay. Any (included dump) suggestion > >> > are appreciated. > >> > >> First, I'm going to make a distinction between "adaptive" and "self- > >> tuning". > >> > >> "Adaptive", to me, means that the controller adjustment is on-line all > >> the time. I.e., the system is continually watching the plant inputs > >> and outputs, it's adjusting the plant model, and it's updating the > >> controller gains. > >> > >> "Self-tuning" means that the controller adjustment is a one-time event > >> that happens under operator control: you push the "self-tune" button, > >> the controller generates some stimulus, and watches the plant input and > >> output to generate a controller tuning. > >> > >> Your step response slope thingie sounds like a self-tuning approach to > >> me, unless you're continually having the system make little extra > >> motions to assist in the self-tuning. > >> > >> Your approach of looking at the slope of the step response may work in > >> certain limited circumstances. One of the things that strikes me about > >> adaptive and self-tuning control is that the circumstances in which any > >> particular approach works always seems to fit the definition "certain > >> limited circumstance", with the only variable being just how painfully > >> limited "limited" is. So, in your case, it may work. > >> > >> I strongly suggest that you get a copy of �str�m and Wittenmark's > >> "Adaptive Control". It provides a good base for understanding this > >> stuff, and they have some material in there on simplified controllers > >> (not to mention ways that you can determine just how limited your > >> particular circumstances are). > >> > >> Personally, I don't think it's wise to launch into a pursuit of an > >> adaptive controller for a process about which you have no knowledge (it > >> gets back to the limited circumstances -- how do you know your > >> controller will really work?). I wouldn't apply an adaptive controller > >> unless I have a process for which I have a representative model with > >> varying parameters, and I had a pretty good grasp on how those > >> parameters would be varying, and I had determined that a plain old > >> non-adaptive robust controller couldn't do the job. > >> > >> -- > >> www.wescottdesign.com > > > > Unfortunately your definition (which makes sense) is contrary to the > > literature. Self-tuning controller have been around since the early 70s > > and are just another name for adaptive. > > Astrom and Wittmark make the distinction in their book. > > Which doesn't change the reality: online adaptation is fraught with a lot > more problems than offline self-tuning, and so should be approached with > a great deal more care. > > -- > www.wescottdesign.com
absolutely, wouldn't go near it with a barge-pole.
On Sun, 29 Mar 2015 13:19:09 -0700, gyansorova wrote:

> On Sunday, March 29, 2015 at 12:43:02 PM UTC+13, Tim Wescott wrote: >> On Sat, 28 Mar 2015 12:36:21 -0700, gyansorova wrote: >> >> > On Sunday, March 29, 2015 at 7:26:49 AM UTC+13, Tim Wescott wrote: >> >> (I'm cross posting to sci.engr.control in a probably futile attempt >> >> to revive that group). >> >> >> >> On Sat, 28 Mar 2015 05:56:40 -0500, adrianni wrote: >> >> >> >> > Hi guys >> >> > >> >> > I know this not quite by the book of control theory, but i am >> >> > looking into ways to implement an adaptive system onto my PIDF. >> >> > Lets say (theoretical) that we dont have equations of state, hence >> >> > we can't linearize the system around certain operating points. We >> >> > can only do open-loop step response to estimate a optimal >> >> > controller. The system is unstable and have complex poles. >> >> > With that being said. How would you approach the adaptive system? >> >> > I know that Asymptotic Properties for LQR/LQG controller works, >> >> > but i want propose something less complex. >> >> > I've tried something so simple as using the step response slope of >> >> > the system to estimate a time constant (assuming first order), and >> >> > thereby using abs(time_const-desired_time_constant) as a factor >> >> > for multiplying the old controller gain. >> >> > >> >> > Do you guys see any other (creative) ways of calculating the >> >> > adaptive parameters? I have zero time delay. Any (included dump) >> >> > suggestion are appreciated. >> >> >> >> First, I'm going to make a distinction between "adaptive" and "self- >> >> tuning". >> >> >> >> "Adaptive", to me, means that the controller adjustment is on-line >> >> all the time. I.e., the system is continually watching the plant >> >> inputs and outputs, it's adjusting the plant model, and it's >> >> updating the controller gains. >> >> >> >> "Self-tuning" means that the controller adjustment is a one-time >> >> event that happens under operator control: you push the "self-tune" >> >> button, the controller generates some stimulus, and watches the >> >> plant input and output to generate a controller tuning. >> >> >> >> Your step response slope thingie sounds like a self-tuning approach >> >> to me, unless you're continually having the system make little extra >> >> motions to assist in the self-tuning. >> >> >> >> Your approach of looking at the slope of the step response may work >> >> in certain limited circumstances. One of the things that strikes me >> >> about adaptive and self-tuning control is that the circumstances in >> >> which any particular approach works always seems to fit the >> >> definition "certain limited circumstance", with the only variable >> >> being just how painfully limited "limited" is. So, in your case, it >> >> may work. >> >> >> >> I strongly suggest that you get a copy of Åström and Wittenmark's >> >> "Adaptive Control". It provides a good base for understanding this >> >> stuff, and they have some material in there on simplified >> >> controllers (not to mention ways that you can determine just how >> >> limited your particular circumstances are). >> >> >> >> Personally, I don't think it's wise to launch into a pursuit of an >> >> adaptive controller for a process about which you have no knowledge >> >> (it gets back to the limited circumstances -- how do you know your >> >> controller will really work?). I wouldn't apply an adaptive >> >> controller unless I have a process for which I have a representative >> >> model with varying parameters, and I had a pretty good grasp on how >> >> those parameters would be varying, and I had determined that a plain >> >> old non-adaptive robust controller couldn't do the job. >> >> >> >> -- >> >> www.wescottdesign.com >> > >> > Unfortunately your definition (which makes sense) is contrary to the >> > literature. Self-tuning controller have been around since the early >> > 70s and are just another name for adaptive. >> >> Astrom and Wittmark make the distinction in their book. >> >> Which doesn't change the reality: online adaptation is fraught with a >> lot more problems than offline self-tuning, and so should be approached >> with a great deal more care. >> >> -- >> www.wescottdesign.com > > absolutely, wouldn't go near it with a barge-pole.
I have done it one and a half times, both in very restricted circumstances. The first time we had a very predictable family of command inputs, and a fairly simple plant that only varied in one parameter. Even then I messed it up the first time, although it worked well after a simple revision. The second time was only almost adaptive control -- in that case we had a plant that was making a highly repetitive motion (it was stepping a drum a constant distance). The "adaptive" part involved giving the system a feed- forward signal that was adjusted point-by-point from the prior error signal and a model of the plant. So the step motion of the drum was refined over multiple steps. That was great theory, but the ultimate problem was that the customer had installed a motor and driver that did not have nicely repetitive behavior. It was compounded by the fact that even after I had warned them to do the work in time for a mechanical revision of the machine they held off on getting me in until a few weeks before their first must-ship date. If the situation is as open as the OP implies, and it's not for the purpose of writing a research paper, then online adaptive control is something that one should saunter away from casually, because running like hell might attract the attention of predators. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com