Khi tăng K i : làm chậm đáp ứng quá độ thời gian xác lập tăng , độ vọt lố tăng , sai số xáclập giảm .Do hệ số khuếch đại của khâu PI bằng vô cùng tại tần số bằng 0 nên khâu Pi có thể làm
Trang 1BÀI 1
ĐIỀU KHIỂN CÁC PHẦN TỬ KHÍ NÉN
I Phân biệt các loại cảm biến :
- Cảm biến quang sẽ lên mức 1 khi đưa bất cứ vật nào che đầu cảm biến
- Càm biến điện dung sẽ lên mức 1 khi đưa một vật bất kì lại thật gần cảm biến
- Cảm biến điện cảm : chỉ lên mức 1 khi đưa vật bằng kim loại lại gần
II Chương trình LADDER và STL của các thí nghiệm tiến hành và yêu cầu của giáo viên hướng dẫn :
Thí nghiệm 1C: Điều khiển Valve 2 vị trí có 2 cuộn dây
Trang 2Thí nghiệm 1D: Điều khiển Valve 2 vị trí có 2 cuộn dây sau 2s thay đổi trạng thái.
LD 000.04
OR 100.00 AND NOT TIM 000
OUT 100.00
LD 100.00
TM 000 #0020
Trang 3Thí nghiệm 1E: Điều khiển 2 Xilanh I, J lần lượt đẩy ra đẩy vào với chu kì 4s, khi nhấn
SW3 thì dừng
OR 100.04 AND NOT 000.06
Trang 4OUT 100.04
LD 100.04 AND NOT TIM 001 TIM 000 #0040
LD TIM 000 TIM 001 #0040 LDN TIM 000 OUT 100.02
LD TIM 000 OUT 100.00
LD TIM 001 OUT 100.01 END(01)
YÊU CẦU CỦA GIÁO VIÊN:
• Ban đầu 3 van cùng đẩy ra
• Sau đó van 1 và van 2 được kéo vào, van 3 vẫn ở trạng thái đẩy ra
• Sau đó van 1 và van 2 vẫn ở trạng thái kéo vào, van 3 được kéo vào
• Sau đó 3 van được đẩy ra
• Sau đó van 2 và van 3 được kéo vào, van 1 vẫn ở trạng thái đẩy ra
• Kế tiếp van 2 và van 3 vẫn ở trạng thái kéo vào, van 1 được kéo vào
Trang 5• Sơ đồ dạng STL:
LD 000.04
Trang 7• 2 thùng đầu mỗi thùng 5 trái táo sau đó dừng 10s
• 2 thùng tiếp theo mỗi thùng 3 trái táo sau đó dừng 5s
• Thùng cuối chứa 2 trái táo sau đó dừng luôn cả hệ thống
THỰC HIỆN : Ta chia chương trình thành 4 khối :
• Khối 0: khởi động và dừng chương trình
• Khối 1 : đếm 2 thùng 5 trái
• Khối 2 : đếm 2 thùng 3 trái
• Khối 3 : đếm 1 thùng 2 trái
Trang 8Khi bấm Start , khối 1 thực hiện , sau khi khối 1 đã thực hiện xong,cấm khối 1, cho phép timer đếm 10s Sau 10s khối 2 thực hiện , sau khi thực hiện xong cấm khối 2, cho phép timer đếm 5s Sau 5s khối 3 thực hiện, sau khi thực hiện xong sẽ dừng luôn hệ thống.
Trang 9BÀI 3:
ĐIỀU KHIỂN LÒ NHIỆT BẰNG CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN CỔ ĐIỂN
I Điều khiển PID :
Đoạn đọc tín hiệu nhiệt độ :
DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);
Đoạn tính và xuất tín hiệu điều khiển:
Error = Temp - 62.5*Input;
ek2 = ek1;
Trang 10uk = MaxValueOut;
} if(uk<MinValueOut) {
uk = MinValueOut;
} Output = (float)uk;
II Điều khiển ON-OFF :
Đoạn đọc tín hiệu nhiệt độ:
// read input data
DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);
Đoạn tính và xuất tín hiệu điều khiển :
// write output data
if ((Temp-Input*62.5)<(Db) ; {
Output = 5;
Pwr = 100 ;
pw = 100 ; }
if ((Input*62.5-Temp)>(Db)) {
Output = 0;
Pwr = 0 ;
pw = 0 ; }
ptAOConfig.chan = gwChannelOutput ; Output =(float)Pwr*5/100;
ptAOVoltageOut.OutputValue = Output;
DRV_AOVoltageOut(DriverHandle,(LPT_AOVoltageOut)&ptAOVoltageOut);
Trang 11YÊU CẦU CỦA GIÁO VIÊN :
• Đoạn code phần tính tín hiệu điều khiển ON-OFF có chỗ bị sai,hãy sửa lại đoạn code trênsao cho đúng
• Tại sao lại có độ vot lố lớn khi chạy chương trình.Để giảm độ vọt lố trên ta phải làm nhưthế nào?(Phần điều khiển ON-OFF)
• Đoạn code sau dùng để làm gì?
/*if (((Temp-Input*62.5)<(Temp/2)) & ((Temp-Input*62.5)>0))
Ta sửa đoạn code trên thành:
• Có độ vọt lố lớn khi thực hiện là vì lò nhiệt có khâu quán tính lớn.Do đó khi ta đã tắt lò thìnhiệt độ vẫn tiếp tục tăng một thời gian nữa rồi mới giảm nên gây ra độ vọt lố lớn.Để giảiquyết vấn này ta cho bật lò trễ hoặc tắc lò sớm
• Đoạn code trên dùng để giảm công suất cấp cho lò nhiệt khi chênh lệch giữ nhiệt độ đặt vànhiệt độ đo ở vào khoảng 0 đến 0.5*nhiệt độ đặt Điều này nhằm để giảm độ vọt lố khiđiều khiển
III NHẬN XÉT :
• Ở điều khiển ON-OFF khi độ rộng vùng chết càng nhỏ thì sai số xác lập càng nhỏ
Trang 12• Bộ điều khiển PID cho sai số nhỏ hơn so với bộ điều khiển ON-OFF.Chất lượng bộ điềukhiển PID tốt hơn nhiều so với ON-OFF
BÀI 4
ĐIỀU KHIỂN TỐC ĐỘ VÀ VỊ TRÍ ĐỘNG
CƠ DC
I ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ
1 YÊU CẦU CỦA THẦY :
Chỉnh sửa giải thật của thầy sao cho lần đầu tiên nhấn nút setting thì các giá trị hiện lên ôPID setting là : Kp = 0.0004,Ki = 0.0015,Kd = 0.000001, sample time (T0=200), setspeed=1500
Trang 13Sau khi cập nhật giá trị mới vào PID setting thì lần ấn nút setting tiếp theo các giá trị trong PIDsetting sẽ hiển thị giá trị lần cập nhật gần nhất.
PHƯƠNG ÁN CHỈNH SỬA : Ở những dòng khai báo biến đầu tiên ta đặt giá trị ban đầu
cho các biến Kp,Ki,Kd, T0, SetSpeed
Khi cập nhật giá trị mới mong muốn và ấn accept thì các giá trị mới sẽ được gán vào các biến Kp,Ki,Kd, T0, SetSpeed do đó lần nhấn setting tiếp theo các giá trị hiện thị lên PID setting là các giá trị của lần cập nhật này:
Trang 14T0 = (int)m_eSampleTime;
SetSpeed = (long)m_eSetspeed;
OnOK();
}
Nhận xét ảnh hưởng của các thành phần Kp , K i , K d của bộ điều khiển PID :
Khi tăng Kp : sai số xác lập càng nhỏ, thời gian xác lập tăng, độ vọt lố càng cao Khi tăng
Kp thì các cực của hệ thống nói chung có xu hướng di chuyển ra xa trục thực.Nếu tăng Kp quá giátrị hệ số khuếch đại giới hạn thì hệ thống sẽ trở nn mất ổn định (dao động).Do đó nếu không thể cĩsai số hệ thống bằng 0 cũng khơng thể tăng Kp lên vô cùng
Khi tăng K i : làm chậm đáp ứng quá độ thời gian xác lập tăng , độ vọt lố tăng , sai số xáclập giảm Do hệ số khuếch đại của khâu PI bằng vô cùng tại tần số bằng 0 nên khâu Pi có thể làmcho sai số của tín hiệu vào là hàm nấc của hệ thống không có khâu vi phân lý tưởng bằng 0.Ngoàira,do khâu PI là một bộ lọc thông thấp nên nó còn có tác dụng triệt tiêu nhiễu tần số cao tác độngvào hệ thống
Khi tăng K d : đáp ứng của hệ thống càng nhanh ,thời gian lên ngắn,nhưng thời gian xác lậptăng , độ vọt lố tăng và sai số xác lập tăng
2 THÍ NGHIỆM VỚI K P THAY ĐỔI K I =0.015,K D =10 -6 :
Trang 15Trường hợp Kp=0.002:
3 THÍ NGHIỆM VỚI K I THAY ĐỔI K P =0.0004, K D =E -6 :
Trang 17II ĐIỀU KHIỂN VỊ TRÍ ĐỘNG CƠ :
Trang 182 NHẬN XÉT ẢNH HƯỞNG CỦA CÁC THÀNH PHẦN K P , K I , K D CỦA BỘ ĐIỀU KHIỂN PID
Khi tăng Kp : sai số xác lập càng nhỏ, thời gian xác lập tăng, độ vọt lố càng cao.Nếu tăng
Kp quá thì hệ thống sẽ trở nên mất ổn định (dao động).Do đã nếu khơng cĩ sai số hệ thống bằng 0thì cũng khơng thể tăng Kp đến vơ cực
Khi tăng Ki : làm chậm đáp ứng quá độ thời gian xác lập tăng , độ vọt lố tăng , sai số xáclập giảm Do hệ số khuếch đại của khâu PI bằng vơ cùng tại tần số bằng 0 nên khâu Pi cĩ thể làmcho sai số của tín hiệu vào là hàm nấc của hệ thống khơng cĩ khâu vi phân lý tưởng bằng 0.Ngoàira,do khâu PI là một bộ lọc thông thấp nên nó còn có tác dụng triệt tiêu nhiễu tần số cao tácđộng vào hệ thống
Khi tăng Kd : đáp ứng của hệ thống càng nhanh ,thời gian lên ngắn,nhưng thời gian xác lậptăng , độ vọt lố tăng và sai số xác lập tăng
Trang 19BÀI 5
ĐIỀU KHIỂN THÍCH NGHI TỐC ĐỘ
ĐỘNG CƠ DCYÊU CẦU CỦA THẦY :
•Tìm hiểu w(k),e1(k),e2(k),u(k),y(k) thể hiện trong giải thuật PID thích nghi như thế nào?
•Hệ số thích nghi βbiểu hiện như thế nào?
•So sánh PID thường và PID thích nghi
THỰC HIỆN:
double CBAI4Dlg::PID(double currentspeed)
{
static double u[2];
static double e[3];
if(Output>2.4 & Output<2.6) e2 = 2.5;
if(Output>=2.6) e2 = 2.6-(2897.7- SetSpeed)/1135.4-Output; // 50ms (2.5V->5V)
//sai lech dau vao tinh theo ap if(Output<=2.4) e[2] = 2.4-(2695.0-(SetSpeed - currentspeed- 25))/1133.8; // 50ms (0V->2.5V)
Trang 20if(Output>2.4 & Output<2.6) e[2] = 2.5;
if(Output>=2.6) e[2] = 2.6-(2897.7-(SetSpeed currentspeed))/1135.4; // 50ms (2.5V->5V)
-//sai lech tinh theo ap giua toc do dat va tin hieu dieu khien
for(i1 =0;i1<3; i1++)
//an[k+1] = an[k] +beta*e2[k]*e1[k-n]
a[i1][1] = a[i1][0] + beta*e[2-i1]*e2;
u[1] = u[0] + a[0][1]*e[2] + a[1][1]*e[1] + a[2][1]*e[0];
Nh n xét ậ : Bộ điều khiển thích nghi luôn có thời gian xác lập rất nhanh so với bộ điều
khiển PID thường Thời gian lên và thời gian xác lập của bộ điều khiển thích nghi luôn bé hơn ½thời gian lên và xác lập của bộ điều khiển PID thường Đồng thời bộ điều khiển thích nghi luôncho sai số xác lập bằng 0 do các hệ số Kp,Kd,Ki sẽ được tự chỉnh định sao sai số ngỏ ra bằng 0.Tuy nhiên trong một số trường hợp thì bộ điều khiển thích nghi có độvọt lố khá lớn, gấp độ so với
độ vọt lố của bộ điều khiển PID thông thường Hệ số thích nghi β phản ánh tốc độ thích nghi của
bộ điều khiển, nếu ta để β quá lớn thì thời gian thích nghi lớn, thậm chí không thích nghiđược.Do đó, hệ số β phải là một số hợp lý Khả năng điều khiển tín hiệu ngỏ ra bám theo tínhiệu đặt của bộ điều khiển thích nghi là rất tốt Đó chính là lý do tại sao bộ điều khiển thích nghiđược sử dụng trong các trường hợp đòi hỏi độ chính xác cao và thời gian đáp ứng nhỏ
I ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ:
1 ĐOẠN CHƯƠNG TRÌNH ĐỌC XUNG:
PT_DioReadPortByte ptDioReadPortByte0,ptDioReadPortByte1;
Trang 21USHORT DataLo,DataHi;
double Pulse;
double Delta_Pulse;
static double PrevPulse;
// read low byte ptDioReadPortByte0.port = 0;
ptDioReadPortByte0.value = (USHORT far *)&DataLo;
// read high byte ptDioReadPortByte1.port = 1;
ptDioReadPortByte1.value = (USHORT far *)&DataHi;
DRV_DioReadPortByte(DriverHandle, (LPT_DioReadPortByte)&ptDioReadPortByte0);
DRV_DioReadPortByte(DriverHandle, (LPT_DioReadPortByte)&ptDioReadPortByte1);
Pulse = DataHi*256 + DataLo;
Delta_Pulse = Pulse - PrevPulse;
if(!flag) DRV_SelectDevice(m_hWnd,FALSE,&m_DeviceNume, m_DeviceName);
DRV_DeviceOpen(m_DeviceNume,&DriverHandle);
// configures the gain for the specifed analog input channel ptAIConfig.DasGain = DevFeatures.glGainList[gwGain].usGainCde; ptAIConfig.DasChan = gwChannelInput;
Trang 22ptAOConfig.MaxValue = MaxValueOut;
ptAOConfig.MinValue = MinValueOut;
DRV_AOConfig(DriverHandle,(LPT_AOConfig)&ptAOConfig); // output data
ptAOVoltageOut.chan = gwChannelOutput;
ptAOVoltageOut.OutputValue = Output;
DRV_AOVoltageOut(DriverHandle, (LPT_AOVoltageOut)&ptAOVoltageOut);
3 ĐOẠN TÍNH TÍN HIỆU ĐIỀU KHIỂN:
double CBAI4Dlg::PID(double currentspeed)
{
static double u[2];
static double e[3];
e[2] = SetSpeed - currentspeed;
u[1] = u[0] + a0*e[2] + a1*e[1] + a2*e[0];
4 ĐOẠN XUẤT TÍN HIỆU ĐIỀU KHIỂN :
void CBAI4Dlg::OnTimer(UINT nIDEvent)
Trang 23if(m_nTimer) {
Trang 256 THÍ NGHIỆM VỚI TỐC ĐỘ ĐẶT 1000(V/P) :
Bộ
Điều Khiển
Thời gian lên(s)
Thời gian xác lập(s)
Độ vọt lố(%)
Sai số Xác lập(v/p)
Trang 267 THÍ NGHIỆM VỚI TỐC ĐỘ ĐẶT 2000(V/P):
Bộ
Điều Khiển
Thời gian lên(s)
Thời gian xác lập(s)
Độ vọt lố(%)
Sai số Xác lập(v/p)
Trang 278 THÍ NGHIỆM VỚI TỐC ĐỘ ĐẶT -200(V/P):
Bộ
Điều Khiển
Thời gian lên(s)
Thời gian xác lập(s)
Độ vọt lố(%)
Sai số Xác lập(v/p)
Trang 289 THÍ NGHIỆM VỚI TỐC ĐỘ ĐẶT -2000(V/P):
Bộ
Điều Khiển
Thời gian lên(s)
Thời gian xác lập(s)
Độ vọt lố(%)
Sai số Xác lập(v/p)
Trang 2910 Nhận xét : Trong tất cả các trường hợp điều khiển với tốc độ đặt cho trước thì bộ điều
khiển thích nghi luôn có thời gian xác lập rất nhanh so với bộ điều khiển PID thường Thời gian lên và thời gian xác lập của bộ điều khiển thích nghi luôn bé hơn ½ thời gian lên và xác lập của bộ điều khiển PID thường Đồng thời bộ điều khiển thích nghi luôn cho sai số xác lập bằng 0 do các hệ số Kp,Kd,Ki sẽ được tự chỉnh định sao sai số ngỏ ra bằng 0
Tuy nhiên trong một số trường hợp thì bộ điều khiển thích nghi có độ vọt lố khá lớn, gấp độ
so với độ vọt lố của bộ điều khiển PID thông thường
Quan sát hình cuối cùng là kết quả của thí nghiệm thực tế ta thấy được khả năng điều khiển tín hiệu ngỏ ra bám theo tín hiệu đặt của bộ điều khiển thích nghi là rất tốt Đó chính là lý do tại sao bộ điều khiển thích nghi được sử dụng trong các trường hợp đòi hỏi độ chính xác cao và thời gian đáp ứng nhỏ