1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập môn mô hình hóa mô phỏng HUST

11 56 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 99,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập phương trình sai phân của hệ thống Phương trình máy tính có dạng sai phân.. Vì vậy để mô phỏng hệ điều khiển tự động ĐKTĐ trên máy tính người ta phải tìm cách viết được phương trình

Trang 1

MỤC LỤC

Trang 2

1. Sơ đồ cấu trúc của hệ điều khiển tự động:

Tham số của hệ :

U(t)=1(t)

K1=10; K2=0.1 ;

Bước cắt mẫu chọn : T=0.1

2. Lập phương trình sai phân của hệ thống

Phương trình máy tính có dạng sai phân Vì vậy để mô phỏng hệ điều khiển tự động (ĐKTĐ) trên máy tính người ta phải tìm cách viết được phương trình sai phân của hệ Ở đây nhóm sử dụng cách tìm phương trình sai phân bằng phương pháp toán tử

Thay ta được:

Hàm truyền trên biến đổi thành:

Trang 3

Trong đó:

A=

B=

C=

Ta có hàm sai phân như sau :

Dùng tính chất dịch hàm gốc của biến đổi Z ta tìm được phương trình sai phân tương ứng phương trình trên:

Tín hiệu đầu vào là xung đơn vị nên:

Vậy ta có:

Cuối cùng ta tìm được phương trình sai phân của hệ điều khiển tự động là:

3. Chọn thời gian cắt mẫu

Để đảm bảo khả năng khôi phục lại tín hiệu liên tục từ dãy tín hiệu gián đoạn thì tần số lấy mẫu ít nhất fm phải lớn hơn hoặc bằng 2.fmax trong đó fmax là tần số tín hiệu vào cao nhất Thỏa mãn điều kiên fm ≥ 2.fmax thì có thể khôi phục lại tín hiệu mà không bị méo

Trang 4

Đối với hệ thống điều khiển thì theo kinh nghiệm nên chọn bước cắt mẫu sao cho : trong đó Tmin là hằng số thời gian nhỏ nhất trong hàm truyền của hệ thống

Đối với hệ đã cho thì hằng số thời gian nhỏ nhất là : Tmin = nên thời gian trích mẫu được chọn cần thỏa mãn : 0.0625 ≤ T ≤ 0.25 Ở đây do hệ là hệ tích

phân quán tính bậc nhất nên ta chọn chu kỳ trích mẫu là: T= 0.1s

4. Chương trình mô phỏng bằng Pascal

Từ phương trình sai phân ta viết chương trình máy tính để tìm đáp ứng

ra của hệ y(t) khi tín hiệu vào là hàm nhảy cấp 1(t) Sau đây là chương trình Pascal mô hình hóa hệ ĐKTĐ đã cho Chương trình cho ra kết quả là tín hiệu

ra y(k) dưới dạng số , cứ cách 10 số in ra một số liệu Chương trình cũng cho

ra kết quả dưới dạng đường cong quá độ của hệ ĐKTĐ và tính các đặc tính quá

độ : Ymax, Y ôđ, бmax, Tmax, Tôđ

Program MO_HINH_HOA;

uses crt,graph;

var

a,b,c,max,k1,k2,t,tm,tod,Xicma:real;

gd,gm,km,ky,i,k:integer;

y:array[0 1000] of real;

st:string;

BEGIN

Clrscr;

write('Nhap k1 =');readln(k1);

write('Nhap k2 =');readln(k2);

Trang 5

write('Nhap chu ky trich mau T =');readln(t); y[0]:=0;y[1]:=0;y[2]:=0;

a:=4+8*t+k1*k2*t*t;

b:=2*k1*k2*t*t-8;

c:=4-8*t+k1*k2*t*t;

for k:=0 to 997 do

y[k+2]:=(-b*y[k+1]-c*y[k]+4*k1*t*t)/a; writeln('100 gia tri cach nhau');

for k:=0 to 100 do

begin

write(' y[',k*10:3,']=',y[k*10]:8:5);

if(k mod 4)=0 then writeln;

if k=80 then readln;

end;

{tim gia tri ymax}

Max:=y[1];

km:=0;

for k:=1 to 1000 do

if y[k]>max then

Begin

Max:=y[k];

km:=k;

end;

{tim khoang thoi gian on dinh Tod}

for k:=1 to 1000 do

if abs((y[k]-(1/k2))/(1/k2))<=0.05 then begin

tod:=k*t;

break;

end;

Trang 6

{in cac gia tri ra man hinh}

Writeln('thoi gian on dinh la Tod:',tod:8:4);

Xicma:=(max-1/k2)*100/(1/k2);

Writeln('gia tri cuc dai la ymax=',max:8:4);

Writeln('do qua dieu chinh xicma=',xicma:8:4,'%');

Writeln('thoi gian dat cuc dai la tm=',km*t:8:4);

{ve hinh}

Write('hay cho he so gian truc y:ky=');readln(ky);

gd:=detect;

initgraph(gd,gm,'C:\Program Files\TP\BGI');

setbkcolor(white);

setcolor(blue);

outtextxy(53,5,'Y');

outtextxy(600,360,'t(s)');

{ve cac truc toa do}

outtextxy(240,390,'KHAO SAT QTQD HE THONG');

str(max:8:4,st);

outtextxy(20,410,'GIA TRI CUC DAI LA: Ymax='+st);

str(km*t:8:4,st);

outtextxy(320,410,'THOI GIAN DE CUC DAI: Tmax='+st); str(xicma:4:2,st);

outtextxy(20,430,'DO QUA DIEU CHINH LA: xicma %='+st); str(Tod:8:4,st);

outtextxy(320,430,'THOI GIAN ON DINH LA: Tod='+st); setcolor(5);

line(50,350,620,350); {ve truc toa do}

line(50,5,50,350);

line(50,5,47,15); { ve mui ten truc y}

line(50,5,53,15);

Trang 7

line(620,350,615,347); {ve mui ten truc t}

line(620,350,615,353);

for k:=1 to 7 do { khac do truc t}

begin

str(100*(k-1)*t:2:1,st);

outtextxy(k*100-60,357,st);

line(k*100-50,347,k*100-50,353);

end;

for k:=0 to 7 do { khac do truc y}

begin

str(k/(5*k2):4:2,st);

outtextxy(5,345-round(ky*k/(5*k2)),st);

line(47,350-round(ky*k/(5*k2)),53,350-round(ky*k/(5*k2)));

end;

str(max:6:4,st);

outtextxy(round(tm/t)-60,340-round(ky*max),'Ymax='+st);

str(1/k2:2:1,st);

outtextxy(560,335-round(ky/k2),'Yod='+st);

moveto(50,350);

setlinestyle(Dottedln,0,1);

line(50,350-round(1.05*ky/k2),620,350-round(1.05*ky/k2));{ duong sai so } line(50,350-round(0.95*ky/k2),620,350-round(0.95*ky/k2));

setlinestyle(Solidln,0,1);

line(50,350-round(ky/k2),620,350-round(ky/k2)); { duong on dinh }

{ ve do thi }

For k:=1 to 1000 do

Begin

If graphResult<>grOK then

Halt(1);

setlinestyle(Solidln,$C3,ThickWidth);

Trang 8

lineto(k+50,350-round(ky*y[k]));

end;

repeat until keypressed;

closegraph;

END

Trang 9

- Sau khi chạy chương trình ta được kết quả :

Trang 10

-Đặc tính quá độ của hệ thống do chương trình mô phỏng trên Pascal vẽ :

5. Khảo sát lại hệ bằng Simulink

- Ta có sơ đồ khối của hệ thống trong Simulink :

- Kết quả đáp ứng quá độ của hệ thống do Matlab vẽ :

Trang 11

Nhận xét: hai đường cong do Pascal và Matlab giống nhau Điều đó chứng tỏ

thuật toán đã dùng là đúng đắn

Chú ý :

- Khi chạy fie mô phỏng Pascal cần kiểm tra file Graph.TPU đã có trong thư mục TP\BGI của Pascal hay chưa Nếu chưa có cần bổ sung

- Trước khi chạy cần chuyển thư mục làm việc của Pascal về thư mục BGI

- Nên nhập hệ số giãn trục ky =15

Ngày đăng: 16/11/2021, 14:02

TỪ KHÓA LIÊN QUAN

w