Tải bản đầy đủ (.pdf) (19 trang)

Dùng máy tính khảo sát quá trính quá độ của hệ thống điều khiển tự động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (725.61 KB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
I N ĐI N
BỘ MÔN TỰ ĐỘNG HOÁ CÔNG NGHI P
====o0o====

BÀI TẬP LỚN

ĐỀ TÀI:
MÔ HÌNH HÓA H THỐNG LIÊN TỤC

v ê hướ

dẫ :

TS. Đỗ

ạ h Cườ

S h v ê thực h ệ :

Hà Nội, 03-2015


Trường Đại Học Bách Khoa Hà Nội

LỜI CẢM ƠN
Trước t ê em x
ử lờ cám ơ châ thà h sâu sắc tớ các thầy cô áo trong
trườ Đạ học Bách Khoa à ộ ó chu và các thầy cô áo tro v ệ Đ ệ , bộ
mô Tự độ hóa cô
h ệp ó r ê đã tậ tì h


dạy, truyề đạt cho ch
em
hữ k ế thức, k h h ệm quý báu tro suốt thờ a qua.
Đặc b ệt em x
ử lờ c m ơ đế thầy Đỗ ạ h Cườ , thầy đã tậ tình giúp
đỡ, trực t ếp chỉ b o, hướ dẫ ch
em tro suốt quá trì h học. Tro thờ a làm
v ệc vớ thầy, ch
em khô
ừ t ếp thu thêm h ều k ế thức bổ ích mà cò học
tập được t h thầ làm v ệc, thá độ h êm t c, h ệu qu , đây là hữ đ ều rất cầ th ết
cho ch
em tro quá trì h học tập và cô tác sau này.
Sau cù , em x kí h ch c quý Thầy Cô tro v ệ thật dồ dào sức khỏe, ềm
t để t ếp tục thực h ệ sứ mệ h cao đẹp của mì h là truyề đạt k ế thức cho thế hệ ma
sau.
à ộ,

2

ày 3 thá

3 ăm 2015


Trường Đại Học Bách Khoa Hà Nội

MỤC LỤC

Trang

ục ục...............................................................................................................................3
Đề bà ...................................................................................................................................4
1.
ây dự hàm truyề
Th ết lập phươ trì h sa phâ ..............................................5
2. Code chươ trì h mô phỏ
C ...............................................................................
3.
ao d ệ chươ trì h................................................................................................12
4.
kết qu đườ co quá độ.....................................................................................13
5.
ô phỏ trê
atlab.................................................................................................1
6. Các chỉ t êu chất lượ của hệ thố ..........................................................................15
7.
hậ x t......................................................................................................................16
8. Tà l ệu tham kh o.......................................................................................................17

3


Trường Đại Học Bách Khoa Hà Nội

ĐỀ BÀI Đ

:

Nội dung: Dùng máy tính khảo sát quá trính quá độ của hệ thống đi u khiển
tự động.

Yêu cầu:
1. ập phươ trì h sa phâ của hệ thố .
2. Chọ thờ a cắt mẫu.
3. V ết chươ trì h tí h toá mô phỏ hệ vớ tí h ệu vào dạ bước h y, ồm:
- Số bứơc tí h: tố th ểu 1000 bước.
- Vẽ đồ hoạ đặc tí h quá độ từ dữ l ệu đã tí h.
- Chươ trì h mô phỏ cho ph p hập và mô phỏ vớ các á trị tham số
tuỳ ý.
- ra mà hì h các chỉ t êu đá h á:
• á trị cực đạ của tí h ệu ra: y[k]max
• Độ quá đ ều chỉ h: δmax (%)
• á trị ổ đị h của tí h ệu ra: y[k]ôđ
• Thờ a đạt á trị y[k]max
• Thờ a đạt á trị y[k]ôđ
• 100 á trị tí h toá : y[10* ] (các á trị cách hau 10 bước tí h)
4. Kh o sát lạ hệ b
S mul k và so sá h vớ kết qu tí h toá .

4


Trường Đại Học Bách Khoa Hà Nội

1. XẬY DỰNG HÀM TRUYỀN-THIẾT LẬP PHƯƠNG TRÌNH
SAI PHÂN
àm truyề kí của hệ thố

là:

( )

(

)(

( )

(

Thay

(

)

)(

)

)

vào hàm W(s) ta có:
( )
(

)(

)

(


( )

(

B ế đổ về dạ :

Tro

(

)

đó:

)

(

)
( )
( )

)

(

(

(
 Az Y(z) + BzY(z) + CY(z) =

2

(

)
(

) (

)(

)

) (
)
(
)
) (
)
2
2
K1T [z U(z) + 2zU(z) + U(z)]

Dùng tính chất dịch hàm gốc c biế đổ Z ta tìm được phươ trì h sa phâ
tươ ứng:
 AY[k+2] + BY[k+1] + CY[k] = K1K2T2 (U[k+2] + 2 U[k+1] + U[k])
Vì tín hiệu vào là tín hiệu bước nh y U(t) = 1(t) nên ta có:
U[k+2] = U[k+1] = U[k] = 1
K1T2


 AY[k+2] + BY[k+1] + CY[k] = 4
 Y[k+2] = (4

K1T2 – BY[k+1] – CY[k]) /A
5

)


Trường Đại Học Bách Khoa Hà Nội

Từ đó ta có cô thức tính các giá trị đáp ứ y(t) hư sau:
y[0] = y[1] = 0;
y[k+2] = (4K1T2 – By[k+1] – Cy[k]) /A;
k=0, 1, 2…999; , B, C là các h ng số đã tí h ở trên.

2.CODE CHƯƠNG TRÌNH MÔ PHỎNG – C#
using
using
using
using
using
using
using
using
using
using
using
using


System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Drawing.Drawing2D;
System.Linq;
System.Text;
System.Threading;
System.Windows.Forms;
System.IO;
System.IO.Ports;

namespace Mohinhhoamophong
{
public partial class Form1 : Form
{
private Graphics graph;
private int x0, y0, xMax, yMax;
O, xMax, yMax
private int delta_x = 30;
private int delta_y = 30;
lệch trục tọa độ khi vẽ
private bool OnDinh = true;
private float K1, K2, K3, T1, T2, T;
vào
private float Tmin;
private float ymax, yod, x_ymax, Tod, Tmax, xicma;
đầu ra cần tính toán
private int x_Tod;

độ của Tod;
private float unit_x, unit_y;
để vẽ đồ thị
private float A, B, C;
public Form1()

6

// tọa độ gốc
// độ
//thông số đầu
//Thông số
// Xác định tọa
// Độ chia


Trường Đại Học Bách Khoa Hà Nội
{
InitializeComponent();
graph = DrawArea.CreateGraphics();
xMax = DrawArea.Width;
yMax = DrawArea.Height;
x0 = 0;
y0 = DrawArea.Height;
label16.Text = "δ(%)";
}

private void button1_Click_1(object sender, EventArgs e)
{
int sopt = 1000;

graph.Clear(Color.White);
float[] y = new float[sopt];
PointF[] pnt = new PointF[sopt];
Pen blackPen = new Pen(Color.Black, 1);
Pen redPen = new Pen(Color.Red, 1);
Pen greenPen = new Pen(Color.Green, 3);

listBox1.Items.Clear(); // phải xóa rỗng listbox mỗi lần cập nhật
lại đồ thị
// Kiểm tra nhập thông số hợp lệ hay không
if (float.TryParse(textBoxK1.Text, out K1) &&
float.TryParse(textBoxK2.Text, out K2)&& float.TryParse(textBoxT2.Text, out
T2) && float.TryParse(textBoxT1.Text, out T1) &&
float.TryParse(textBoxT.Text, out T)&& float.TryParse(textBoxK3.Text, out
K3))
{
if (T1 < T2) { Tmin = T1 / 19; }
else { Tmin = T2 / 19; }
if (T > Tmin)
{ MessageBox.Show("Chu kì trích mẫu T quá lớn xin nhập lại!
sao cho giá trị Tmin/T<=20"); } // chu kỳ trích mẫu
else
{
A = 4 * T1 * T2 + 2 * T * (T1 + T2) + (1 + K1 * K2 * K3)
* T * T;
B = (-8 * T1 * T2 + (2 + 2 * K1 * K2 * K3) * T * T);
C = 4 * T1 * T2 - 2 * T * (T1 + T2) + T * T * (1 + K1 *
K2 * K3);
float a0 = (1 + K1 * K2 * K3);
float a1 = (T1 + T2);

float a2 = (T1 * T2);
//Kiem tra tinh on dinh he thong theo tieu chuan Hurwits
if ((a1 > 0) && (a2 > 0)) { OnDinh = true; }
else OnDinh = false;
y[0] = 0; y[1] = 0;
ymax = y[1];
float ymin = 0;

7


Trường Đại Học Bách Khoa Hà Nội

for (int i = 0; i < (sopt - 2); i++)
{
y[i + 2] = (4 * K1 * K2 * T * T - B * y[i + 1] - C *
y[i]) / A;
if (ymax < y[i]) { ymax = y[i]; x_ymax = i; }
//
Tìm vị trí và giá trị của ymax
if (ymin > y[i]) { ymin = y[i]; }
}
if (ymin < 0) { y0 = DrawArea.Height / 2; }
// ymin dùng để vẽ trục tọa độ khi có giá trị y âm!!! =>
có thể hệ thống ko ổn định
else { y0 = DrawArea.Height; }
//=== Tính toán lại độ chia để đồ thị nằm chọn trong
"gọn" trong picturebox
unit_x = (DrawArea.Width - 3 * delta_x) / (T * 1000);
unit_y = (y0 - 3 * delta_y) / ymax;

for (int j = 0; j <= (sopt - 1); j++)
{
// Cập nhật các điểm đồ thị ->pnt
float toado_x = +j * T;
float toado_y = y[j];
pnt[j].X = (float)(delta_x + toado_x * unit_x);
//nhân với độ chia để full màn hình
pnt[j].Y = (float)(y0 - toado_y * unit_y - delta_y);
if (j % 10 == 0)
{
//Lấy 4 chữ số sau dấu phẩy
int tmp = (int)(y[j] * Math.Pow(10, 4));
float _item = (float)(tmp / Math.Pow(10, 4));
String _itemstr = "y(" + j.ToString() + ") = " +
_item.ToString();
listBox1.Items.Add(_itemstr); // Cứ 10 phần tử
thì thêm y[] vào listbox
}
// listBox1.DataSource = y;
// listBox1.Items.Add(y[0]);

add cả mảng y
add từng phần tử

}
VeTrucToaDo();

// Vẽ

graph.DrawLines(greenPen, pnt);


// Vẽ đồ

trục tọa độ
thị
// Vẽ vạch chia hoành độ
Font f = new Font("Tahoma", 12);
Brush b = new SolidBrush(Color.Red);
float chi_so = 0;
for (int i = 0; i < 10; i++)
{
chi_so += 100;
graph.DrawLine(blackPen, delta_x + chi_so * T *
unit_x, y0 - delta_y - 3, delta_x + chi_so * T * unit_x, y0 - delta_y + 3);
graph.DrawString(chi_so.ToString(), f, b, delta_x +
(chi_so - 15) * T * unit_x, y0 - 20);
}

8


Trường Đại Học Bách Khoa Hà Nội
if (OnDinh)
{
//==============Tính thời gian hệ thống bắt đầu ổn
định
int k = 999;
do
{
Tod = k * T; // Thời gian ổn định

--k;
x_Tod = k;
}
while ((Math.Abs((y[k] - y[999]) / y[999]) <= 0.05)
&& (k >= x_ymax));
k = 999;
do
{ --k; }
while (Math.Abs((y[k] - (1 / K2)) / (1 / K2)) <=
0.01);
yod = 0;
for (int i = k; i < 1000; i++)
{
yod += y[i];
}
yod = yod / (999 - k + 1);
xicma = Math.Abs(ymax - yod) * 100 / yod;
Tmax = x_ymax * T;
// Đưa ra các thông số đầu ra
textBoxHT.Text = "Ổn định";
textBoxTmax.Text = Math.Round(Tmax, 4).ToString();
textBoxxicma.Text = Math.Round(xicma, 4).ToString();
textBoxYmax.Text=Math.Round(ymax,4).ToString();

// Vẽ gióng tọa độ của ymax
float toa_do_x = delta_x;
float toa_do_y = y0 - ymax * unit_y - delta_y;
do
{
graph.DrawLine(blackPen, toa_do_x, y0 - ymax *

unit_y - delta_y, toa_do_x + 3, y0 - ymax * unit_y - delta_y); //giong ngang
toa_do_x += 6;
} while (toa_do_x <= delta_x + x_ymax * T * unit_x);
do
{
graph.DrawLine(blackPen, delta_x + x_ymax * T *
unit_x, toa_do_y, delta_x + x_ymax * T * unit_x, toa_do_y + 3); //doc
toa_do_y += 6;
} while (toa_do_y <= y0 - ymax * unit_y - delta_y);
graph.DrawString("Ymax=" + ymax.ToString(), f, b,
delta_x + x_ymax * T * unit_x, y0 - ymax * unit_y - 2 * delta_y);
// Vẽ gióng yod
toa_do_x = delta_x;
do

9


Trường Đại Học Bách Khoa Hà Nội
{
graph.DrawLine(blackPen, toa_do_x, y0 - delta_y yod * unit_y, toa_do_x + 3, y0 - delta_y - yod * unit_y);
graph.DrawLine(blackPen, toa_do_x, y0 - delta_y yod * unit_y * 1.05F, toa_do_x + 3, y0 - delta_y - yod * unit_y * 1.05F);
graph.DrawLine(blackPen, toa_do_x, y0 - delta_y yod * unit_y * 0.95F, toa_do_x + 3, y0 - delta_y - yod * unit_y * 0.95F);
toa_do_x += 6;
} while (toa_do_x <= (xMax - 2 * delta_x));
graph.DrawString("Yod=" + yod.ToString(), f, b, xMax
- 7 * delta_x, y0 - delta_y - yod * unit_y * 1.1F);
//Vẽ gióng Tod
toa_do_y = y0 - delta_y - y[x_Tod] * unit_y;
do

{
graph.DrawLine(blackPen, delta_x + x_Tod * T *
unit_x, toa_do_y, delta_x + x_Tod * T * unit_x, toa_do_y + 3);
toa_do_y += 6;
} while (toa_do_y <= (y0 - delta_y));
graph.DrawString("Tod=" + x_Tod.ToString(), f, b,
delta_x + x_Tod * T * unit_x + 10, y0 - 2 * delta_y);
chi_so = ymax / 5;
int _tmp = (int)(chi_so * Math.Pow(10, 1));
chi_so = (float)(_tmp / Math.Pow(10, 1));
float tmp2 = chi_so;
for (int i = 0; i <= 15; i++)
if ((chi_so > 0) && (chi_so < ymax))
{
graph.DrawLine(blackPen, delta_x - 3, yMax chi_so * unit_y - delta_y, delta_x + 3, yMax - chi_so * unit_y - delta_y);
_tmp = (int)(chi_so * Math.Pow(10, 1));
chi_so = (float)(_tmp / Math.Pow(10, 1));
graph.DrawString(chi_so.ToString(), f, b,
delta_x - 30, yMax - chi_so * unit_y - delta_y - 10);
chi_so += tmp2;
}
}
else
{
textBoxHT.Text = "Không ổn định";
textBoxTmax.Text = "N/A";
textBoxxicma.Text = "N/A";
textBoxYmax.Text = "N/A";
}
}

}
else
MessageBox.Show("Xin chỉ nhập dữ liệu dạng số!");
}
//============================================//
private void VeTrucToaDo()
{
Pen p = new Pen(Color.Black, 2);

10


Trường Đại Học Bách Khoa Hà Nội
graph.DrawLine(p, delta_x, y0 - delta_y, xMax - 2, y0 delta_y);//truc hoanh
graph.DrawLine(p, delta_x, 4, delta_x, yMax - delta_y);//truc
tung
MuiTen(graph, new Pen(Color.Black), new PointF((float)(xMax 2.5), (float)(y0 - delta_y)), new PointF((float)(xMax - 2), (float)(y0 delta_x))); //mui ten Ox
MuiTen(graph, new Pen(Color.Black), new PointF((float)delta_y,
(float)0), new PointF((float)delta_y, (float)(-2.5)));
//mui ten Oy
VeOXY();
}
//============================================//
private void VeOXY()
{
Font f = new Font("Tahoma", 12);
Brush b = new SolidBrush(Color.Black);
graph.DrawString("O", f, b, x0, y0 - delta_y);
graph.DrawString("T", f, b, xMax - 20, y0 - 18);
graph.DrawString("Y", f, b, x0 + 3, 5);

}
//============================================//
public static void MuiTen(Graphics graphics, Pen p, PointF diemDau,
PointF diemCuoi)
{
Pen myPen = new Pen(Color.Black);
myPen.Width = 5;
myPen.EndCap = LineCap.ArrowAnchor;
PointF endPoint = new PointF((diemDau.X + diemCuoi.X) / 2,
(diemDau.Y + diemCuoi.Y) / 2);
graphics.DrawLine(myPen, diemDau, endPoint);
}

}
}// END OF PROGRAM

11


Trường Đại Học Bách Khoa Hà Nội

3. GIAO DI N CHƯƠNG TRÌNH:

Khung bên trái, phầ “CÀ ĐẶT THAM SỐ” là để nhập các tham số K1,
K2,K3,T1, T2 và chu kỳ trích mẫu T.
Sau khi nhập xong nhấ “
” để vẽ đồ thị và tính toán các chỉ tiêu
chất lượng và in ra các gịá trị của y[k]

12



Trường Đại Học Bách Khoa Hà Nội

4. IN KẾT QUẢ ĐƯỜNG CONG QUÁ ĐỘ
Chọ bộ thô số: K1=0.1; K2=10;K3=100; T1=0.04; T2=0.02; T=0.001
ao d ệ chươ trì h sau kh mô phỏ :

Đồ thị đặc tí h quá độ của hệ thố

Trục x thể h ệ
Trục y thể h ệ

:

á trị t(s) (thờ a ).
á trị của y(t) theo t.
13


Trường Đại Học Bách Khoa Hà Nội

5. MÔ PHỎNG TRÊN MATLAB
Sơ đồ s mul k:

ệ h vẽ đồ thị:
>> figure(1)
>> plot(ScopeData.time,ScopeData.signals.values)
>> grid on


Đườ

co

quá độ thu được qua

atlab:

14


Trường Đại Học Bách Khoa Hà Nội

hậ x t:
Đồ thị thu được b
chươ trì h mô phỏ có dạ
ố vớ đồ thị mô
phỏ bở
atlab. hư vậy, ếu bỏ qua sa số khô thể trá h khỏ tro quá
trì h mô phỏ , ch
ta có thể k ểm chứ được phươ pháp tìm phươ trì h
sa phâ của hệ thố , và tí h toá của chươ trì h mô phỏ là đ .

6. CÁC CHỈ TIÊU CHẤT LƯỢNG CỦA H THỐNG
Các chỉ t êu chất lượ của hệ thố được tí h toá tự độ tro
ao d ệ
chí h của chươ trì h, phụ thuộc vào bộ tham số đầu vào
ếu hệ thố ổ đị h, textbox “ ệ thố ” sẽ đưa ra thô báo “Ổ đị h”,
đồ thờ các chỉ t êu chất lượ được đưa ra các ô tươ ứ .
ếu hệ thố khô ổ đị h, textbox “ ệ thố ” sẽ đưa ra thô báo

“Khô ổ đị h”, các ô chỉ t êu đưa ra thô báo “ / ”
(Tí h ổ đị h của hệ thố được đá h á theo t êu chuẩ urw tz)
Ví dụ: Vớ bộ thô số đầu vào hư phầ trê , hệ thố là ổ đị h vớ các
chỉ t êu hư sau:

15


Trường Đại Học Bách Khoa Hà Nội

7. NHẬN XÉT
Vớ bộ thô số T1, T2, K1, K2, K3 ,T phù hợp, hệ thố sẽ ổ đị h. Các thô
số trê đều ph khác 0.
Đườ co xuất phát từ ốc tọa độ, vọt lê tớ á trị Ymax tạ thờ đ ểm
Tmax, dao độ xu qua h á trị Yod. á trị vượt quá tố đa so vớ Yod là h
(%).
Đế thờ a Tod, hệ ổ đị h, chỉ dao độ tro phạm v 5% xu qua h á
trị Yod.

16


Trường Đại Học Bách Khoa Hà Nội

8. TÀI LI U THAM KHẢO
1. uyễ Cô
ề ,
uyễ hạm Thục
h, Mô hình hóa hệ thống và mô
phỏng,

B Khoa học và Kỹ thuật, 200
2.Các sách,tà l ệu C và tìm h ểu tham kh o trê
ter et.

17


Trường Đại Học Bách Khoa Hà Nội

NHẬN XÉT CỦA GIẢNG VIÊN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

18


Trường Đại Học Bách Khoa Hà Nội

………………………………………………………………………………………………
………………………………………………………………………………………………

19




×