emre2blue
Newbie
Offline
Posts: 9
Thank You
-Given: 5
-Receive: 13
|
|
« on: January 22, 2008, 10:27:07 10:27 » |
|
Hi I made this project for my 3. class univ project. It uses MAXIM 16 bit ADC, ultra-Low Offset up to 2,5uV Opamp, PIC16F877 And K-Type thermocouple. It drives a 100w 220v bulb lamp via BT136 triac. Two line LCD is to show configrations and temperatures. And it uses push buttons to increase or decrease the temperature of the bulb lamp http://rapidshare.de/files/38375273/Project.II.rar.html
|
|
|
Logged
|
|
|
|
lutfuakcil
Inactive
Offline
Posts: 5
Thank You
-Given: 5
-Receive: 1
|
|
« Reply #1 on: January 22, 2008, 08:08:25 20:08 » |
|
PID is very common, but it causes overshoot on the process, some controllers uses fuzzy logic + PID algorithm, but i don't have any idea how they are combined ?....:-(
|
|
|
Logged
|
|
|
|
emre2blue
Newbie
Offline
Posts: 9
Thank You
-Given: 5
-Receive: 13
|
|
« Reply #2 on: January 23, 2008, 10:15:23 10:15 » |
|
I don't know either. I guess FuzzyLogic for heating is come off from PID. and it is a little bit more understandable.
|
|
|
Logged
|
|
|
|
macitmucit
Guest
|
|
« Reply #3 on: January 23, 2008, 05:54:25 17:54 » |
|
did you try it with Lm35 sensor .?
|
|
|
Logged
|
|
|
|
emre2blue
Newbie
Offline
Posts: 9
Thank You
-Given: 5
-Receive: 13
|
|
« Reply #4 on: January 24, 2008, 09:54:24 09:54 » |
|
Yes I've used LM35 to read K-Type thermoCouple Connection Temperature (Room temperature) Celc is LM35 Celc1 is from ThermoCouple ( via MAX1133 16bit ADC )
value1=0; for(i=0;i<16;i++) value1 = value1 + read_adc(ADC_READ_ONLY);
value1 = value1 >> 4; // (value1 / 1024) * 5000 mV / (10 mV / C)
celc = value1 * 0.488283; //[Volt]
celc2 = celc+celc1;
|
|
|
Logged
|
|
|
|
mayler
Junior Member
Offline
Posts: 68
Thank You
-Given: 14
-Receive: 13
Roger that!
|
|
« Reply #5 on: January 27, 2008, 03:23:37 03:23 » |
|
I am making a similar project, but it's more critical. I am working with a R type thermocouple ( 6 µV / C ) and I am using an instrumentation amplifier, A/D converter, cold junction compensator and reference voltage. I don't like to put the signal directly in AD, because the instrumentation amplifier has more resources as better CMRR. I need absolute precision in this case. I am making a enchanced PID control with adaptative values for improved response. I suggest that you dont use phase control, because of excessive noise... Make a zero-cross control for better results.
|
|
|
Logged
|
Computer Engineer. Digital IC Designer - Cadence certified.
|
|
|
klivi1
Guest
|
|
« Reply #6 on: January 28, 2008, 08:23:39 08:23 » |
|
PID is very common, but it causes overshoot on the process, some controllers uses fuzzy logic + PID algorithm, but i don't have any idea how they are combined ?....:-(
Hi, I think the PID algorithm is widely used and stable, if you use good parameters. (I mean no oversoot, and quick setting time). Combining with fuzzy logic would mean lot of complications and hard to implement in micro. klivi
|
|
|
Logged
|
|
|
|
mayler
Junior Member
Offline
Posts: 68
Thank You
-Given: 14
-Receive: 13
Roger that!
|
|
« Reply #7 on: January 29, 2008, 12:28:41 00:28 » |
|
If you use adaptative values for constants and use bang bang control, the PID will have an excellent precision... Only need to find the correct parameters for Kp, Kd and Ki. There are many methods, Ziegler–Nichols method is the most common method for finding the constants (auto-tuning can be implemented by it).
|
|
|
Logged
|
Computer Engineer. Digital IC Designer - Cadence certified.
|
|
|
strolch
Guest
|
|
« Reply #8 on: January 29, 2008, 02:38:59 14:38 » |
|
Hello, i atached my PID-Regulator. I think i have copy it from the CSS-Forum and modified it to PICC18. It works fine. If you use the dsPIC, there is one delivered by the C30.
union LNG { long l; unsigned long ul; int i[2]; unsigned int ui[2]; char b[4]; unsigned char ub[4]; };
union LNG
u_error, // PID error value u_ypid, // PID error value u_integral; // PID integral value
void U_CalcPID(void) { long limit_i; //limiter for Intergral u_integral.l += u_error.l; // modify the integral value. u_ypid.l = (long)u_error.i[0]*(long)U_KP + u_integral.l*(long)U_KI; // Calculate the PID compensator. if(u_ypid.ub[3] & 0x80) // If PID result is negative { if((u_ypid.ub[3] < 0xff) || !(u_ypid.ub[2] & 0x80)) u_ypid.ul = 0xff800000; // Limit result to 24-bit value }
else // If PID result is positive { if(u_ypid.ub[3] || (u_ypid.ub[2] > 0x7f)) u_ypid.ul = 0x007fffff; // Limit result to 24-bit value } u_ypid.b[0] = u_ypid.b[1]; // Shift PID result right to u_ypid.b[1] = u_ypid.b[2]; // get upper 16 bits.
u_stat.saturated = 0; // Clear saturation flag and see
if(u_ypid.i[0] == 32767) // if present duty cycle output { // exceeds limits. u_ypid.i[0] = 32767; u_stat.saturated = 1; } if(u_ypid.i[0] < 0) { u_ypid.i[0] = 0; u_stat.saturated = 1; } limit_i=8388607; if(U_KI>0) limit_i/=U_KI; limit_i+=1000;
u_stat.isaturated = 0; // Clear saturation flag and see if(u_integral.l > limit_i) // if present duty cycle output { // exceeds limits. u_integral.l = limit_i; u_stat.isaturated = 1; } limit_i*=(-1); if(u_integral.l < limit_i) { u_integral.l = limit_i; u_stat.isaturated = 1; } }
|
|
|
Logged
|
|
|
|
dreamwithin
Guest
|
|
« Reply #9 on: February 05, 2008, 02:35:33 02:35 » |
|
I'm writing a program for thin film coating contral, the thickness were captured every second, can I use your PID algorithm for that.
|
|
|
Logged
|
|
|
|
|
oldvan
Senior Member
Offline
Posts: 372
Thank You
-Given: 154
-Receive: 107
If the van is a Rockin'...
|
|
« Reply #11 on: March 20, 2009, 02:55:04 14:55 » |
|
On a recent project, I found the MAX6675 "12-bit Cold-Junction-Compensated K-Thermocouple to-Digital Converter (0°C to +1024°C)" to be inccredibly helpful. It includes everything I needed for a K thermocouple in an 8-pin surface-mount package. Allowed me to be terribly lazy. I attached it to a 16F877A, along with a 12-key keypad, a 4X16 LCD and a few other things to form a controller for the furnace in my garage. I didn't need PID for my project, so have no insights to add there.
|
|
|
Logged
|
Give a man a fish and you feed him for a day. Teach a man to fish and he will sit around in a boat drinking beer all day.
|
|
|
USB123
Inactive
Offline
Posts: 3
Thank You
-Given: 33
-Receive: 10
|
|
« Reply #12 on: April 20, 2009, 02:26:43 02:26 » |
|
Can someone upload it again. It was deleted already.
|
|
|
Logged
|
|
|
|
lillbear
Senior Member
Offline
Posts: 276
Thank You
-Given: 223
-Receive: 182
|
|
« Reply #13 on: April 20, 2009, 07:03:25 07:03 » |
|
Gone...maybe reload on ifile?
yours
|
|
|
Logged
|
|
|
|
ahmetefegumus
Inactive
Offline
Posts: 4
Thank You
-Given: 0
-Receive: 1
|
|
« Reply #14 on: May 05, 2009, 08:56:33 08:56 » |
|
muse2001 ; could you uploud agan this file at rapidshare? The link is died.
|
|
|
Logged
|
|
|
|
sadman
Hero Member
Offline
Posts: 711
Thank You
-Given: 1840
-Receive: 2911
Sow The Seeds of Love
|
|
« Reply #15 on: December 09, 2009, 11:08:06 11:08 » |
|
Hi I made this project for my 3. class univ project. It uses MAXIM 16 bit ADC, ultra-Low Offset up to 2,5uV Opamp, PIC16F877 And K-Type thermocouple. It drives a 100w 220v bulb lamp via BT136 triac. Two line LCD is to show configrations and temperatures. And it uses push buttons to increase or decrease the temperature of the bulb lamp http://rapidshare.de/files/38375273/Project.II.rar.htmlcan you please reupload it regards sadman
|
|
|
Logged
|
|
|
|
arash_tah
Active Member
Offline
Posts: 110
Thank You
-Given: 18
-Receive: 6
|
|
« Reply #16 on: December 11, 2009, 04:06:28 16:06 » |
|
Hi emre2blue can u share your file again? The link doesnt work.
|
|
|
Logged
|
|
|
|
vbcoder
Senior Member
Offline
Posts: 284
Thank You
-Given: 95
-Receive: 322
Nothing is True, Everything is Permitted.
|
|
« Reply #17 on: December 11, 2009, 04:25:16 16:25 » |
|
The Fuzzy PID is a PID controller where its Kp, Ki and Kd values are tuned based on Error and change of the error. This enhances the transient response and minimizes the overshoot since the values mentioned are not constants over the process control when using the fuzzy PID technique. I only didn't find any aided tools for fuzzy logic code generation or patterns using PIC Microcontrollers. Yes you can create your fuzzy rules and engine easily but it requires lots of time. Nice project and idea
|
|
|
Logged
|
Education is a progressive discovery of our own ignorance
|
|
|
ismail505
Junior Member
Offline
Posts: 44
Thank You
-Given: 1
-Receive: 64
|
|
« Reply #18 on: February 09, 2010, 06:14:18 06:14 » |
|
Can anybody reupload this project, please...
|
|
|
Logged
|
A man is like a fraction whose numerator is what he is and whose denominator is what he thinks of himself...
|
|
|
ashu.spect
Newbie
Offline
Posts: 26
Thank You
-Given: 9
-Receive: 3
|
|
« Reply #19 on: February 09, 2010, 06:29:03 06:29 » |
|
emre2blue can you plzz upload the PID project on RS
Thanks in Advance
Ashu
|
|
|
Logged
|
|
|
|
jlian168
Junior Member
Offline
Posts: 59
Thank You
-Given: 0
-Receive: 4
|
|
« Reply #20 on: February 10, 2010, 01:11:35 01:11 » |
|
Dear all: Does anyone has the project,Please upload to RS link again.
Thank you very much.
|
|
|
Logged
|
|
|
|
|