Bài Tập Dài Mô Hình Hoá Số 2
Nội dung bài báo cáo :
+ Đặt vấn đề và xây dựng bài toán.
+Phân tích yêu cầu bài toán,tóm tắt phương pháp mô hình hóa hệ ngẫu nhiên.
+Phân tích biến ngẫu nhiên.
+ Phân tích thuật giải.
+Xây dựng lưu đồ.
+Xác định điều kiện đầu,điều kiện mô phỏng và điều kiện ngừng mô phỏng.
+Viết chơng trình mô phỏng trên máy tính.
+Thiết kế giao diện.
+Kiểm nghiệm kết quả mô phỏng.
+Bình luận kết quả mô phỏng.
I)Đặt vấn đề và xây dựng bài toán
Trong thực tế
16 trang |
Chia sẻ: huyen82 | Lượt xem: 1754 | Lượt tải: 2
Tóm tắt tài liệu Bài tập dài Mô Hình Hoá số 2, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
,các hệ thống sản xuất luôn chịu tác động của các yếu tố ngẫu nhiên mà thường thì rất khó kiểm soát được chúng , các yếu tố ngẫu nhiên này( như sự thay đổi của môi trường , sự thay đổi của tải…) hầu hết là bất lợi cho hệ thống .Trong phần này ta sẽ đi xây dựng bài toán mô phỏng một sự tác động ngẫu nhiên tới một hệ điều chỉnh truyền động điện thực.
Như ta đã biết , khi một hệ điều chỉnh truyền động làm việc thì không tránh khỏi việc chịu ảnh hưởng của các nhiễu loạn như do sự thăng giáng của nhiệt độ xung quanh,dao động của nguồn điện(tần số,điện áp) và đặc biệt là nhiễu loạn phụ tải (như do cấu tạo không đồng đều của một phôi cần gia công trong máy cắt gọt kim loại …) mà nhiễu loạn này thường là ngẫu nhiên. Giả sử xét ảnh hưởng của nhiễu loạn phụ tải đối với hệ điều chỉnh truyền động sử dụng hệ T-Đ (Thyristor-Động cơ) có 2 vòng điều chỉnh cơ bản (mạch vòng dòng điện và mạch vòng tốc độ ) đều được tổng hợp theo tiêu chuẩn Modul tối ưu do đó hàm điều khiển mạch vòng tốc độ là khâu tỷ lệ , hàm điều khiển mạch vòng dòng điện là khâu tích phân tỷ lệ,do đó cấu trúc của hệ thống khi tổng hợp theo nhiễu loạn (sau khi đã xấp sỉ ) có dạng sau :
FR
Dwd=0
+
Dw
DMc
-
+
Với Dwd là nhiễu loạn theo lượng đặt .
DMc là nhiễu loạn phụ tải.
Ti : Hằng số thời gian của mạch vòng dòng điện .
Tfw : Hằng số thời gian của khâu phản hồi tốc độ.
Khi xét đáp ứng của hệ thống theo nhiễu loạn phụ tải thì ta cho nhiễu
Loạn theo lượng đặt bằng không (Dwd=0) thì khi đó ta được cấu trúc đơn giản sau :
Xét ảnh hưởng của nhiễu loạn tới hệ thống thực chất là xét quan hệ giữa lượng thay đổi tốc độ ứng với lượng thay đổi phụ tải .
Trong sơ đồ trên thì K1 chính là nghịch đảo của quán tính động cơ,K là tích số giữa hệ số phản hồi tốc độ , hệ số phản hồi của mạch vòng dòng điện và khâu tỷ lệ của mạch vòng điều chỉnh tốc độ FR
Vậy nội dung bài toán đặt ra là: Mô phỏng tác động của nhiễu loạn phụ tải với đáp ứng đầu ra là lượng thay đổi tốc độ , với giả thiết rằng nhiễu loạn phụ tải xảy ra theo một chu kỳ xác định trước (0.6s) mà thời gian tồn tại nhiễu loạn này là phân bố ngẫu nhiên theo hàm phân bố đều trong khoảng [0 0.3](s) và biên độ nhiễu loạn cũng tuân theo phân bố ngẫu nhiên theo hàm phân bố đều trong khoảng [0 1](Nm)
Cho Ti=2(ms),Tfw=2(ms),K=400,K1=0.05,Tmẫu=1(ms)
II)Phân tích yêu cầu bài toán và tính toán đưa ra phương trình sai phân.
Theo phân tích trên thì việc mô phỏng phải thoả các yêu cầu sau :
+Thời gian tồn tại nhiễu loạn là ngẫu nhiên.
+Biên độ nhiễu loạn là ngẫu nhiên.
+Sau khi xảy ra nhiễu loạn phụ tải thì sai lệch tốc độ không tự về
không(tồn tại sai lệch tĩnh )
+Khi hết nhiễu loạn thì sai lệch tốc độ dần về không .
(Nêú mạch vòng tốc độ được tổng hợp theo tiêu chuẩn Modul đối xứng thì sau khi xảy ra nhiễu loạn thì sai lệch tốc độ sẽ tự về không (không có sai lệch tĩnh )).
Để mô phỏng bài toán trên thì bước đầu tiên là cần phải tính toán trên quan hệ toán học giữa hai đại lượng nhiễu loạn với lượng thay đổi tốc độ (đưa ra dưới dạng biểu thức ) sau đó thực hiện số hoá dưới dạng phương trình sai phân .
Tính toán ta được:
Từ biểu thức trên ta thấy rằng tại giá trị vô cùng (của thời gian )(ứng với pà0) thì tỷ số trên là khác không ,điều đó có nghĩa là tồn tại sai lệch tĩnh.
Thực hiện số hoá :
Thay
C1=T2+2TT1+4T2
C2=2T2-8T2
C3=T2-2TT1+4T2
Ms=1/[T3(Z+1)3][K1KT3(Z3+3Z2+3Z+1)+2T2(Z3+Z2-Z-1)+
+4T1T(Z3-Z2-Z-1)+8T2(Z3-3Z2+3Z-1)]
=1/[T3(Z+1)3][(K1KT3+2T2+4T1T+8T2)Z3+(3K1KT3+2T2-4T1T
-24T2)Z2+(3K1KT3-2T2-4T1T+24T2)Z+K1KT3-2T2+4T1T-8T2]
Ao= K1KT3-2T2+4T1T-8T2
A1=3K1KT3+2T2-4T1T-24T2
A2=3K1KT3-2T2-4T1T+24T2
A3= K1KT3+2T2+4T1T+8T2
Dw[i]={DMk1(B3+B2+B1+B0)-A2Dw[i-1]-A1Dw[i-2]A0Dw[i-3]}/A3
III)Phân tích biến ngẫu nhiên
*)Thời gian tồn tại nhiễu loạn TNL :
Thời gian tồn tại nhiễu loạn TNL là biến ngẫu nhiên tuân theo luật phân bố đều trong khoảng [0 0.3] (s).
Khoảng phân bố đều trên được tạo ra từ phân bố đều ngẫu nhiên trong khoảng [0 1] nhân với 0.3.
Khi đó thời gian tồn tại nhiễu loạn tối đa là 0.3 (s) và thời gian tồn tại nhiễu loạn nhỏ nhất là 0(s)
Do xét nhiễu loạn theo các chu kỳ xác định nên thời gian không xảy ra nhiễu loạn cũng phân bố ngâũ nhiên và bằngTod= (0.6- TNL).
*)Biên độ nhiễu loạn DMC :tuân theo luật phân bố ngẫu nhiên phân bố đều trong khoảng [0 1] (lớn hơn không do tăng momen tải)
Nếu DMC càng lớn thì lượng sụt tốc độ càng lớn và sai lệch tĩnh càng lớn.
Nếu DM càng nhỏ thì lượng sụt tốc độ càng nhỏ và sai lệch tĩnh càng nhỏ.
IV)Phân tích thuật giải
Từ phương trình sai phân đã được thành lập ở trên ta thực hiện phân tích thuật giải cho bài toán.
Việc trước tiên cần làm là phải xác định các điều kiện đầu,điều kiện cuối (ngừng ) mô phỏng .
Thời gian mô phỏng phải được kiểm soát (ví dụ như có thể được đưa vào từ bàn phím …).Trong chương trình mô phỏng,để thực hiện việc này ta sử dụng điều kiện thoát theo kiểu ngắt trong vòng lặp.
Sử dụng hàm phát số ngẫu nhiên bằng phần mềm mô phỏng.
Thuật giải còn được phân tích kỹ hơn trong chương trình phần mềm mô phỏng.
V)Xác định điều kiện đầu,điều kiện mô phỏng ,điều kiện ngừng mô phỏng
Điều kiện đầu của mỗi quá trình mô phỏng được coi là thời điểm không của hệ thống (hệ thống đã chạy ổn định với lượng đặt tốc độ )
Điều kiện mô phỏng : khô có nhiễu loạn theo lượng đặt tốc độ và hệ thống đang làm việc.
Điều kiện ngừng mô phỏng : hết thời gian mô phỏng (được đặt bởi người sử dụng).
VI)Xây dựng lưu đồ
Lưu đồ của chương trình:
VII)Viết chương trình mô phỏng
Sau đây là phần mã chương trình viết bằng ngôn ngữ Labwindows/CVI:
//Noise.h
#include
#ifdef __cplusplus
extern "C" {
#endif
/* Panels and Controls: */
#define PANEL 1
#define PANEL_GRAPH 2
#define PANEL_NU 3
#define PANEL_CLEAR 4 /* callback function: CLEAR */
#define PANEL_RUN 5 /* callback function: RUN */
#define PANEL_QUIT 6 /* callback function: QUIT */
#define PANEL_DECORATION 7
#define PANEL_DECORATION_2 8
#define PANEL_DECORATION_3 9
#define PANEL_DECORATION_4 10
#define PANEL_DECORATION_5 11
#define PANEL_DECORATION_6 12
#define PANEL_TEXTMSG 13
#define PANEL_DECORATION_7 14
#define PANEL_DECORATION_8 15
#define PANEL_DECORATION_9 16
#define PANEL_DECORATION_10 17
#define PANEL_DECORATION_11 18
#define PANEL_TEXTMSG_2 19
#define PANEL_TEXTMSG_3 20
#define PANEL_DECORATION_12 21
#define PANEL_TEXTMSG_4 22
#define PANEL_DECORATION_14 23
#define PANEL_DECORATION_15 24
#define PANEL_DECORATION_16 25
#define PANEL_DECORATION_17 26
#define PANEL_DECORATION_18 27
#define PANEL_DECORATION_19 28
#define PANEL_TEXTMSG_5 29
#define PANEL_TEXTMSG_6 30
#define PANEL_TEXTMSG_7 31
#define PANEL_TEXTMSG_8 32
#define PANEL_TEXTMSG_9 33
/* Menu Bars, Menus, and Menu Items: */
/* (no menu bars in the resource file) */
/* Callback Prototypes: */
int CVICALLBACK CLEAR(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
int CVICALLBACK QUIT(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
int CVICALLBACK RUN(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
#ifdef __cplusplus
}
#endif
//Noise.c
#include
#include "Noise.h"
int handle,i,j,b=1,z=0,z1=0;
double w[10000];
static int y=0;
double Mc,r;
double Time;
float ti=0.002;
float tf=0.002;
float t=0.001;
float a0,a1,a2,a3;
float k=400;
float k1=0.5;
int TINH(double,int,int);
int main (int argc, char *argv[])
{
handle = LoadPanel (0, "Noise.uir", PANEL);
DisplayPanel (handle);
RunUserInterface();
return (0);
}
int TINH(double Delta,int p,int j){
float t1,t2;
t1=tf+2*ti;
t2=2*tf*ti;
a0=k1*k*t*t*t-2*t*t+4*t1*t-8*t2;
a1=3*k1*k*t*t*t-2*t*t-4*t1*t+24*t2;
a2=3*k1*k*t*t*t+2*t*t-4*t1*t-24*t2;
a3=3*k1*k*t*t*t+2*t*t+4*t1*t+8*t2;
for(i=j;i<p;i++){
if(i<(int)(1000*Time)){
w[i+3]=(k1*t*t*t*10*Mc-a2*w[i+2]-a1*w[i+1]-a0*w[i])/a3;
PlotLine(handle,PANEL_GRAPH,(i),w[i+2],(i+1),w[i+3],VAL_RED);
}
if(i>(int)(1000*Time))
i=p-1;
}
return 0;
}
int CVICALLBACK RUN(int panel,int contrl,int event,void* callbackData,int eventData1,int eventData2)
{
static int x=0;
w[0]=0;
w[1]=0;
w[2]=0;
z1=0;
if(event==EVENT_COMMIT){
GetCtrlVal(handle,PANEL_NU,&Time);
b=1;
while(b){
r=(double)rand()/RAND_MAX;
Mc=-r;
z=(int)(r*300);
z1=z+y;
TINH(Mc,z+y,y);
r=0.6-0.3*r;
Mc=0;
z=(int)r*1000;
y=z+z1;
TINH(Mc,y,z1);
x++;
if(y>(int)(1000*Time))
b=0;
}
}
return 0;
}
int CVICALLBACK CLEAR(int panel,int contrl,int event,void* callbackData,int eventData1,int eventData2)
{
if(event==EVENT_COMMIT){
DeleteGraphPlot(handle,PANEL_GRAPH,-1,1);
y=0;
i=0;
j=0;
}
return 0;
}
int CVICALLBACK QUIT(int panel,int contrl,int event,void* callbackData,int eventData1,int eventData2)
{
if(event==EVENT_COMMIT){
b=0;
QuitUserInterface(0);
}
return (0);
}
VIII)Thiết kế giao diện
Giao diện được thiết kế trên File Noise.uir.
//Noise.uir
IX)Kết quả mô phỏng
Vào thời gian mô phỏng là 1.5(s) ta có kết quả :
Khi vào thời gian mô phỏng là 2(s) ta được :
X)Bình luận kết quả mô phỏng
Kết quả thu được thoả mãn các yêu cầu đặt ra, điều này chứng tỏ việc giải bài toán trên là đúng đắn .
Tuy nhiên bài toán trên đã được đơn giản hoá từ một hệ thống thực trong sản xuất , đó là việc đặt trước chu kỳ xảy ra nhiễu loạn do đó đã phần nào làm mất đi tính khách quan của đối tượng cần mô tả.Ngoài ra nếu hệ thống được tổng hợp theo tiêu chuẩn Modul đối xứng thì không xuất hiện thành phần sai lệch tĩnh (bài toán chỉ xây dựng với hệ được tổng hợp theo tiêu chuẩn tối ưu Modul)
Với cách bố trí giao diện như trên , ta có thể tự do vào thông số là thời gian mô phỏng mà không bị giới hạn.
Khi thực hiện chạy mô phỏng với cùng một thời gian mô phỏng thì đáp
ứng các lần chạy không hoàn toàn giống nhau , điều này chứng tỏ ta đã mô phỏng được một hệ có các tham số có phân bố ngẫu nhiên.
Để bài toán có tính thực tiễn hơn nữa thì ta phải khảo sát tương đối chín xác luật phân bố ngẫu nhiên của các biến ngẫu nhiên.
XI)Tài liệu tham khảo
[1] : Mô hình hoá hệ thống và mô phỏng _PGS.TS Nguyễn Công Hiền.
[2] : Điều chỉnh tự động truyền động điện PGS.TS Bùi Quốc Khánh
PGS.TS Nguyễn Văn Liễn
[3]: Labwindows/CVI _National Instruments-2001
*************************************************
._.
Các file đính kèm theo tài liệu này:
- DAN347.doc