Professional Documents
Culture Documents
1) Dùng files đính kèm trong email này cho P+I control.
2) Setpoint is set to 35, Kd =1.0, Ki=1.0, lowplimit = 20, highplimit = 70,Cycle time = 10.
3) Main.c:
Edit Do_pid_control() like this: thêm temperature = 34;
Thầy
Chào các em,
Vì thời gian có hạn, thầy gửi các em files PID control đầy đủ để các em chỉ test chớ
không cần modify. Các em test để biết cách làm việc của PID và thầy sẽ chỉ sơ
firmware thầy viết cho các loại control này.
Buổi làm việc sắp tới, các em dùng những files này để test PI nếu chưa test PI, và PD
nếu chưa test PD. Em nào chưa test On-Off control và P control thì có thể không cần
demo, nhảy qua làm PI cho thầy. Nhóm nào chưa hoàn tất board mạch thì có thể dùng
project của thầy hay của bạn để test PI control.
Khi test PI, thầy muốn thấy các em thay đổi 2 trị số của nhiệt độ (temperature=34 và
temperature=36) và demo cho thầy coi %output tăng lên 100% hoặc giàm xuống 0%.
1) Dùng files đính kèm trong email này cho P+I+D control hiện tại và tương lai.
2) If test PI:
a) Setpoint is set to 35, Kp =1, Ki=1, Kd=0, lowplimit=20,
highplimit=70,Cycle time= 10.
b) Main.c: Edit main.c like this: thêm temperature = 34;
void Do_pid_control (void)
{
count1sec++; // if count1sec==20 => 1 sec timing
if (count1sec>=20) { // if 1 second is set: read ADC
count1sec = 0;
cyclecount++; //
Duty_cycle_control(); // turn off relays
Temperature_read(); // will return temperature
temperature = 34; // added for testing
// %output=72%
Integral_calculation(); // see file.c
if (cyclecount>=cycletime) { // for every 20 seconds
cyclecount=0;
Duty_cycle_calculation(); // in file.c
}
phase=0; // Do nothing
} // if 1 sec is set
}
c) Kiểm tra 1: Output sẽ bắt đầu từ 70% (34C) tăng 10% mỗi 10 seconds
(cycle time) cho tới 100%.
d) Edit main.c like this:
void Do_pid_control (void)
{ . . . . . . . . . . . . . . . . . . . . .
Temperature_read(); // will return temperature
temperature = 36; // added for testing
// %output=67.5%
Integral_calculation(); // see file.c
. . . . . . . . . . . . . . . . . . . . .
}
e) Kiểm tra 2: Output sẽ bắt đầu từ 70% (34C) giảm 10% mỗi 10 seconds
(cycletime) cho tới 0%.
3) If test PD:
a) Setpoint is set to 35, Kp =1, Ki=0, Kd=1, lowplimit=20,
highplimit=70,Cycle time=20.
b) Kiểm tra 1:
b.1: Để máy sấy tóc off. Đợi nhiệt độ ổn định. Thí dụ 30C.
Ở 30C, output sẽ là 80%. Đợi qua 1 chu kỳ (cycle time) và verify
output is still 80%?
b.2: Khi Cycle time=1/20, turn on máy sấy tóc và điều chỉnh sao cho
nhiệt độ lên 40C vào cuối cycle time (trước 20 seconds), vì D part sẽ được
tính vào đầu chu kỳ mới.
Ở chu kỳ mới:
Với trị số 40C => Proportional (40C) = 60%
Derivative = 40C-30C = 10%
Output = 60%-10% = 50%.
b.3: Khi Cycle time=1/20, turn off máy sấy tóc và theo dỏi nhiệt độ
cho đến đầu chu kỳ sau. Nhiệt độ sẽ giảm xuống T value. Verify new
percent output.
Ở chu kỳ mới:
Output = Proportional at T + (40-T);
Thí dụ T=30C => Proportional (30C) =70%
Derivative = 40-30= 10%
Output = 70% + 10% = 80%
Sau này, các em có thể dùng files này cho PID control. Chỉ cần đổi Kp, Ki, Kd, cycle time,
low limit và high limit cho thích hợp với môi trường.