View previous topic :: View next topic |
Author |
Message |
MiniMe
Joined: 17 Nov 2009 Posts: 50
|
Advanced control theory question. |
Posted: Thu Aug 12, 2010 1:42 pm |
|
|
Hi!
I've heard that defying problem makes wanted "things" much more accessible. Since I'm plain lost on my way to solve a problem, because I feel like I'm missing more than 1 puzzle piece to get where I want to be.
I will try to tell what I want.
The application is central heating system regulator.
The inputs are temperature from outdoor and temperature of heating water measured after valve which is regulated by application + UI inputs (not important).
The output is valve driven by DC motor with reducer. Motor is controlled with DC pulses with period and impulse length modulation.
What I've done to solve the problem?
I've collected information from old and well working analog device. Visualization purpose graph below.
I've found a way (equation) to find duty cycle value that changes the polarity of behavior of values T and t1. (table below)
I have written a PID algorithm code. Iv tested it and and I believe is it working as it should. (I've written this code because a analog device was based on it, I'm in trouble to explain how).
Tables & Graphs:
Table
The duty cycle value which is between values period T - 4s and pos. impulse length t1 - 0,3s. The duty cycle value because it division lying between tease 2 values. By this duty cycle value I can find changing point.
Graph based on table.
PID. The x axis is sample nr. and y is changed values. This PID got no plant since feedback variable is set manually by varying ADC.
The thing I like to see ... want, is way to link... PID output... to look like values from collected graph based on table.
As much I understand "the thing"... my only paradox is: If Temp. diff. (error) is more that 0 PID output keeps growing till limits, maybe not linearly but it will? The values from PID output look very different.
The table look like it is discreet, it seems like it is measured by moments and it is solvable by using switch statement or by using equation found by fitting.
I realize that this topic is misplaced because of nature of subject. I'm very sorry. :S
Thank you in advance. |
|
|
MiniMe
Joined: 17 Nov 2009 Posts: 50
|
|
Posted: Sat Aug 14, 2010 1:26 pm |
|
|
Is it possible that PID circuity on analog device was used because of need to create regulator dynamics (characteristics) to create pulses to drive motorized valve?
So i can use collected data from old analog device...in other words to use it as discreet data to replicate analog device dynamics? |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Sun Aug 15, 2010 2:28 am |
|
|
While the objective of the first graph is clear (the characteristic of the said servo valve controller in time domain), you didn't tell, what's the output quantity in the "PID" illustration. Strictly spoken, it shows a pure "I" rather than a "PID" characteristic. Setting the motor speed of a servo valve proportional to the error signal effectively creates an I-controller, by the way.
As the servo controller apparently implements a non-linear characteristic, it's description goes beyond the scope of linear control theory respectively "PID" operation. But I guess, the device design is rather based on a simple empirical "fuzzy" approach than "advanced control theory". |
|
|
MiniMe
Joined: 17 Nov 2009 Posts: 50
|
|
Posted: Mon Aug 16, 2010 5:38 am |
|
|
FvM, Thank you!
You brought out a interesting fact about PID illustration. Idea that PID illustration shows I characteristics, Your correct, my P, I, D - coefficients were 0,05; 0,75; 0,0.
I tried to change "K-s" to different values but sill, i have not seen anything non-linear. My guess it is because missing plant model on feedback part.
Still i have poor understanding of how to set up PID work flow so that i can get output as similar as on graph Temp diff vs duty cycle (red).
As far as i see my plan... I can use only Temp diff vs duty cycle data to create everything else needed like period and impulses. |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Mon Aug 16, 2010 7:41 am |
|
|
I didn't understand from your first post, that you want to reproduce the empirical observed servo motor behaviour with a PID. I think, I doesn't work, because a PID is a linear controller, but the shown characteristic is non-linear. I also don't exactly understand, why you want to reproduce the non-linear behaviour. But if you want, don't use a standard PID code.
It's an empirical approach and hasn't much to do with control theory. |
|
|
MiniMe
Joined: 17 Nov 2009 Posts: 50
|
|
Posted: Mon Aug 16, 2010 10:04 am |
|
|
FvM, Thank you !
... again, You have saved big amount of me time on solving this problem the wrong way. I totally agree with you on "PID is linear controller" thesis, because all my tests shown outcomes, aimed this way. |
|
|
MiniMe
Joined: 17 Nov 2009 Posts: 50
|
|
Posted: Fri Aug 20, 2010 4:23 am |
|
|
The output of PID depends mainly on time, so does feedback. So far as I know measurements (information collecting) was done when device was disconnected from object. It means that feedback had no link with PID output, feedback was set manually by sensor (potentiometer).
My thought it is ... feedback was non-linear (feedback vs time). So... manual feedback created non linear process model.
To find PID constants I need to replicate non-linear, manually set (with potentiometer) feedback.
The problem is I do not have this feedback vs time information.
I've added some illustration images which might make things simpler... 4 images are with linear time vs feedback and 5. is non linear. Spikes in PID output were due scaling problems and no limits.
Thank you in advance! |
|
|
|