Tải bản đầy đủ (.docx) (32 trang)

Báo cáo thí nghiệm môn thiết kế hệ thống Điều Khiển Số

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 (280.46 KB, 32 trang )

Họ và tên sinh viên: Nguyễn Đức Quân
Mssv: 20111990 Lớp : ĐK&TĐH 2 - k56
BÁO CÁO THÍ NGHIỆM
Môn: Thiết kế hệ thống số
Bài 1: Tìm mô hình gián đoạn của ĐCMC
Sơ đồ cấu trúc của ĐCMC kích từ độc lập
Các tham số của động cơ:
- Điện trở phần ứng: =250mΩ.
- Điện cảm phần ứng: =4mH.
- Từ thông danh định: =0,04Vs.
- Mômen quán tính: J=0,012kgm2.
- Hằng số động cơ: ke=236,8, km=38,2.
1. Xác định hàm truyền đạt trên miền ảnh z thích hợp để thiết kế vòng trong cùng
ĐK dòng phần ứng
Hàm truyền của đối tượng :

Hàm truyền trên miền Z:

Trong đó:



Do :
Trong đó:
Giz = (1-)( + - )
Thay số vào ta được:
Với Ttm1=0.1ms


Với Ttm2=0.01ms



2. Sử dụng lệnh c2d của MATLAB để tìm hàm truyền đạt trên miền ảnh Z theo các
phương pháp ZOH, FOH và Tustin
Thực hiện trên matlab :
>> Ra=250e-3;La=4e-3;Ta=La/Ra;Tt=100e-6;Ttm1=0.1e-3;Ttm2=0.01e-3;
>> Gi=tf([1],[Tt 1])*(1/Ra)*tf([1],[Ta 1])
Transfer function:
4

1.6e-006 s^2 + 0.0161 s + 1
>> step(Gi)
>> Giz3=c2d(Gi,Ttm1,'zoh')

Transfer function:
0.009176 z + 0.006577

z^2 - 1.362 z + 0.3656

Sampling time: 0.0001
>> Giz4=c2d(Gi,Ttm1,'foh')

Transfer function:
0.003298 z^2 + 0.01046 z + 0.001998

z^2 - 1.362 z + 0.3656

Sampling time: 0.0001
>> Giz5=c2d(Gi,Ttm1,'tustin')

Transfer function:

0.004154 z^2 + 0.008307 z + 0.004154

z^2 - 1.327 z + 0.3313

Sampling time: 0.0001
>> Giz6=c2d(Gi,Ttm2,'zoh')

Transfer function:
0.0001209 z + 0.0001169

z^2 - 1.904 z + 0.9043

Sampling time: 1e-005
>> Giz7=c2d(Gi,Ttm2,'foh')

Transfer function:
4.064e-005 z^2 + 0.0001585 z + 3.865e-005

z^2 - 1.904 z + 0.9043

Sampling time: 1e-005
>> Giz8=c2d(Gi,Ttm2,'tustin')

Transfer function:
5.951e-005 z^2 + 0.000119 z + 5.951e-005

z^2 - 1.904 z + 0.9042
Sampling time: 1e-005
3. Mô phỏng và khảo sát
Thực hiện trên matlab :

>> Giz1=tf([0.009274 0.006479],[1 -1.361649 0.365587],Ttm1)
Transfer function:
0.009274 z + 0.006479

z^2 - 1.362 z + 0.3656
Sampling time: 0.0001
>> Giz2=tf([0.0001358 0.0001022],[1 -1.9042126 0.9042721],Ttm2)
Transfer function:
0.0001358 z + 0.0001022

z^2 - 1.904 z + 0.9043
Sampling time: 1e-005
>> hold on;
>> step(Giz1)
>> step(Giz2)
>> step(Giz3)
>> step(Giz4)
>> step(Giz5)
>> step(Giz6)
>> step(Giz7)
>> step(Giz8)
Nhận xét:
- Khi T
=0.1ms kết quả mô phỏng cả 3 phương pháp ZOH, FOH, Tustin đều giống nhau và gần
giống với kết quả biến đổi bằng tính tay. Hệ đi đến ổn định sau 1 khoảng thời gian nhưng
thời gian quá độ vẫn lớn.
- Khi T = 0.01ms ta thấy Giz2 có sự khác biệt rõ rệt giữa các phương pháp.
4. xây dựng mô hình trạng thái ĐCMC trên miền thời gian liên tục.
Hàm truyền đạt của động cơ 1 chiều có dạng:
Đặt Gđc có dạng:

Chuyển mô hình hàm truyền sang dạng vi phân, ta có:
Chọn các biến điều khiển và biến trạng thái như sau:
Viết dưới dạng ma trận ta có mô hình trạng thái liên tục:
Với: ;;;
=>
Chọn và , ta có:
Với ;
Ta có:
( ) ( )
{ }
1
1
t L s


= −Φ I A
. Ta đi tính
( )

theo các bước sau:
( ) ( )
1
1
2
0 1
2
1
0
2 2
2 2

2
1
1
1
o
a
s
s
a
s s
a a
a a
s
a
s s
s
a a
a a
a

 
+

 
 
 
 
− = ⇒ − =
 
+

 
+ +

 
 
 
 
I A I A
1
2
2
0 2 1
1
1 1
2
2
0 2 1
1 1
2 2
2 2
2 2
2 22
1
0 2 1 0 2 1
1 1
2 2
2 2 2 2
2
0 2 1
2

1
2
0
4
2
4
2
4 4
2 2 2 2
4
cos
2
4
o
a
t
a
a a a
a
a a
s s
a
a a a
a a
L L
a a
a a a a a as s
a a
s s
a a

a a a a
a a a
a
e t
a
a
− −

 

 
 
+ +
 
 

   
= +
   
   
   
− −+ +
   
 ÷  ÷
+ + + +
   
 ÷  ÷
 
 ÷  ÷
   

 
   
 
 

 ÷
= +
 ÷
 
( )
1
2
2
0 2 1
2
2
2
2 1
4
sin 1
2
a
t
a
a a a
e t t
a
a a

 

 

 
 ÷
 ÷
 

 
 
(*)
Tương tự như (*), ta có:
( ) ( )
{ }
1
1 2
1
3 4
L L
t L s
L L


 
= − =
 
 
Φ I A
Trong đó các hệ số như sau:
( )
1 1

2 2
2 2
0 2 1 0 2 12 2
1
1
2
2 2
0 2 1
4 4
cos sin 1
2 2
4
a a
t t
a a
a a a a a a
a
L e t e t t
a a
a a a
− −
 
   
− −
 
 ÷  ÷
= +
 ÷  ÷
 


   
 
( )
( )
1
2
1
2
2
0 2 1
2
2
2
2
2
0 2 1
2
0 2 1
2
0
3
2
2
0 2 1
4
2
sin 1
2
4
4

2
sin 1
2
4
a
t
a
a
t
a
a a a
a
L e t t
a
a a a
a a a
a
L e t t
a
a a a


 

 ÷
=
 ÷

 
 



 ÷
=
 ÷

 
( )
1 1
2 2
2 2
0 2 1 0 2 12 2
1
4
2
2 2
0 2 1
4 4
cos sin 1
2 2
4
a a
t t
a a
a a a a a a
a
L e t e t t
a a
a a a
− −

 
   
− −
 
 ÷  ÷
= −
 ÷  ÷
 

   
 
Như vậy ta thu được mô hình trạng thái gián đoạn của động cơ một chiều:
( ) ( )
1k k k
T
k k
T T
x
+
 = +


=


qΦ q H u
c q
Mô hình trạng thái liên tục:
1
0 1 0

48641 62 5066.4
A
u
x q

   
= +

   
− −

   

=

q q
&
Mô hình trạng thái gián đoạn:
Ttm3=0.1s
[ ]
1
0.0424 0 0.1086
1.5488 0.0444 0.1613
1 0
k k k
k k
x
+
 −
   

= +

   
− −
   


=

q q u
q
Ttm4=0.01s
[ ]
1
0.3349 0.0027 0.1390
133.3760 0.5063 13.8923
1 0
k k k
k k
x
+
 −
   
= +

   
− −
   



=

q q u
q
Hàm truyền đạt của động cơ 1 chiều có dạng:


Đặt Gđc có dạng:


Thực hiện trên matlab:
>> Ke=236.8;J=0.012;phi=0.04;Km=38.2; Ttm3=0.1;Ttm4=0.01;
>> b0=Km*phi;a0=Ke*Km*phi*phi;a1=2*pi*Ra*J;a2=2*pi*Ra*Ta*J;
>> [A,B,C,D]=tf2ss([b0],[a2 a1 a0])
Kết quả:
A =
1.0e+004 *
-0.0062 -4.7989
0.0001 0
B =
1
0
C =
1.0e+003 *
0 5.0664
D = 0
>> [Ak1,Bk1]=c2d(A,B,Ttm3)
Kết quả:
Ak1 =
-0.0438 -2.9549

0.0001 -0.0399
Bk1 =
1.0e-004 *
0.6157
0.2167
>> H1=ss(Ak1,Bk1,C,D,Ttm3)
a = x1 x2
x1 -0.04378 -2.955
x2 6.157e-005 -0.03994
b =
u1
x1 6.157e-005
x2 2.167e-005
c =
x1 x2
y1 0 5066
d =
u1
y1 0
>>step(H1)
>>[Ak2,Bk2]=c2d(A,B,Ttm4)
Ak2 =
-0.4987 -133.8774
0.0028 -0.3244
Bk2 =
0.0028
0.0000
>>H2=ss(Ak2,Bk2,C,D,Ttm4)
a =
x1 x2

x1 -0.4987 -133.9
x2 0.00279 -0.3244
b =
u1
x1 0.00279
x2 2.76e-005
c =
x1 x2
y1 0 5066
d =
u1
y1 0
>>step(H2)
Bài 2: Tổng hợp vòng điểu chỉnh dòng phần ứng (điều khiển mômen
quay)
Đối tượng Giz5 (tính theo phương pháp Tustin, chu kì trích mẫu Ttm1=0.1e -3s)

Phương pháp Dead-Beat: L(
1
z

) bậc 1: L(z
-1
) = l
0
+ l
1
.z
-1
Phương pháp cân bằng mô hình đa thức bận 2: Gw3=x

1
.z
-1
+ x
2
.z
-2
+ x
3
.z
-3
2.1 Thiết kế bộ điều khiển theo phương pháp Dead – Beat
2.1.1 Thực hiện trên MATLAB
>> b0=0.004154;b1=0.008307;b2=0.004154;
>> a0=1;a1=-1.327;a2=0.3313;
>> l0=a0/((a0-a1)*(b0+b1+b2))
l0 =
25.8645
>> l1=-a1/((a0-a1)*(b0+b1+b2))
l1 =
34.3221
>> Lz=filt([l0 l1],[1],0.1e-3)

Transfer function:
25.86 + 34.32 z^-1

Sampling time: 0.0001
>> Az=filt([a0 a1 a2],[1],0.1e-3)

Transfer function:

1 - 1.327 z^-1 + 0.3313 z^-2

Sampling time: 0.0001
>> Bz=filt([b0 b1 b2],[1],0.1e-3)

Transfer function:
0.004154 + 0.008307 z^-1 + 0.004154 z^-2

Sampling time: 0.0001
>> Gz5=Bz/Az

Transfer function:
0.004154 + 0.008307 z^-1 + 0.004154 z^-2

1 - 1.327 z^-1 + 0.3313 z^-2

Sampling time: 0.0001
>> Gr1=(Lz*Az)/(1-Lz*Bz)

Transfer function:
25.86 - 36.98 z^-2 + 11.37 z^-3

0.8926 - 0.3574 z^-1 - 0.3926 z^-2 - 0.1426 z^-3

Sampling time: 0.0001
>> Gk1=(Gr1*Gz5)/(1+Gr1*Gz5)

Transfer function:

0.0959 + 0.02611 z^-1 - 0.3319 z^-2 - 0.0518 z^-3 + 0.3928 z^-4


+ 0.03087 z^-5 - 0.1756 z^-6 - 0.01074 z^-7

+ 0.02106 z^-8 + 0.005587 z^-9 - 0.002231 z^-10


0.8926 - 2.726 z^-1 + 2.719 z^-2 - 0.7518 z^-3 - 0.1607 z^-4

- 0.0396 z^-5 + 0.08227 z^-6 - 0.01565 z^-7

- 1.639e-018 z^-8 + 1.066e-018 z^-9 - 3.278e-019 z^-10

Sampling time: 0.0001
>> Step(Gk1)
>> Step(Gk1,100e-3)
>> pole(Gk1)
ans =
0
0
0
0
0
0
0
0
0
0
1.0000
0.9935
0.9935

-0.2998 + 0.2643i
-0.2998 - 0.2643i
0.3335 + 0.0000i
0.3335 - 0.0000i
0.0000 + 0.0000i
0.0000 - 0.0000i
-0.0000
2.1.2 Mô phỏng khảo sát
Mô phỏng simulink cho bộ điều khiển thiết kế bằng phương pháp Dead-Beat

Kết quả mô phỏng simulink với bộ điều khiển thiết kế bằng phương pháp Dead-Beat
Nhận xét : kiểm tra step của Gk1 cho thấy sau 3 chu kì trích mẫu thì hệ xác lập.
Sau khi kiểm tra Gk1 trong 1000 chu kì trích mẫu thì ta thấy hệ vẫn ổn định
Kiểm tra điểm cực của Gk1 ta thấy hệ ổn định các điểm cực nằm trong vòng tròn đơn vị
Qua mô phỏng ta cũng thấy đc hệ ổn định, xác lập sau 3 chu kì trích mẫu.
2.2 Thiết kế bộ điều khiển theo phương pháp cân bằng mô hình
Cân bằng mô hình đa thức bậc 2:
Gw3=x
1
.z
-1
+ x
2
.z
-2
+ x
3
.z
-3
Điều kiện : x

1
+ x
2 +
x
3
= 1
Chọn x
1
= 0.5; x
2
= 0.3 ; x
3
= 0.2
2.2.1 Thực hiện trên MATLAB
>> Gw3=filt([0 0.5 0.3 0.2],1,Ttm1)

Transfer function:
0.5 z^-1 + 0.3 z^-2 + 0.2 z^-3

Sampling time: 0.0001
>> Gr2=Gw3/((1-Gw3)*Gz5)

Transfer function:

0.5 z^-1 - 0.3635 z^-2 - 0.03245 z^-3 - 0.166 z^-4 + 0.06626 z^-5

0.004154 + 0.00623 z^-1 - 0.001246 z^-2 - 0.0054 z^-3

- 0.002908 z^-4 - 0.0008308 z^-5



Sampling time: 0.0001
>> Gk2=feedback((Gr2*Gz5),1)

Transfer function:

0.002077 z^-1 + 0.002644 z^-2 - 0.001077 z^-3 - 0.002469 z^-4

- 0.001239 z^-5 - 0.0001392 z^-6 + 0.0002752 z^-7

0.004154 + 0.002795 z^-1 - 0.005493 z^-2 - 0.00276 z^-3

+ 0.001376 z^-4 - 4.337e-019 z^-5 - 5.421e-020 z^-7

Sampling time: 0.0001
>> Step(Gk2)
>> Step(Gk2,100e-3)
>> pole(Gk2)
ans =
0
0
0
0
0
0
0
0.9935
-0.9999 + 0.0155i
-0.9999 - 0.0155i
0.3335

0.0000
-0.0000 + 0.0000i
-0.0000 - 0.0000i
2.2.2.Mô phỏng khảo sát
Mô phỏng simulink cho bộ điều khiển thiết kế bằng phương pháp cân bằng mô hình
Kết quả mô phỏng simulink với bộ điều khiển thiết kế bằng
phương pháp cân bằng mô hình
Nhận xét : Kiểm tra step của Gk2 cho thấy sau 3 chu kì trích mẫu thì hệ xác lập.
Sau khi kiểm tra Gk2 trong 1000 chu kì trích mẫu thì ta thấy hệ vẫn ổn định
Kiểm tra điểm cực của Gk1 ta thấy hệ ổn định các điểm cực nằm trong vòng
tròn đơn vị.
Qua mô phỏng ta cũng thấy đc hệ ổn định và xác lập sau 3 chu kì trích mẫu.
Bài 3 : Tổng hợp vòng điều chỉnh tốc độ quay
Đối tượng tốc độ ở bài này được tính bằng :

( ài2)
1 1
. . .
2
k b
Gn G Km
J s
ψ
π
=
Gk
(bài 2)
được tính xấp xỉ thành 1 khâu quán tính tích phân bậc nhất:

( ài2)

1
2 1
k b
t
G
T s
=
+
(với T
t
= 100
s
µ
)
Thay số vào ta tính được : Gn(s)
Chuyển sang miền ảnh với số mũ âm, Ttm1=0.1e-3(s)
Thực hiện trên matlab :
>> Gns=tf(1,[2*100e-6 1])*38.2*0.04*tf(1,[2*pi*0.012 0])

Transfer function:
1.528

1.508e-005 s^2 + 0.0754 s

>> Gnz=c2d(Gns,Ttm1,'tustin')

Transfer function:
0.0002027 z^2 + 0.0004053 z + 0.0002027

z^2 - 1.6 z + 0.6


Sampling time: 0.0001
Ta có gán hệ số như sau:
>> b0 = 0.0002027; b1 = 0.0004053; b2 = 0.0002027; a0 =1; a1= - 1.6; a2=0.6;
1. Tổng hợp bộ điều chỉnh PI theo tiêu chuẩn tích phân bình phương:
- Bộ điều khiển :
Grn(z)= = (chọn P
1
= -1)
- Đối tượng điều khiển :
- Sai lệch điều chỉnh dưới dạng sai phân :

1 1 2 2 1 3 2 1 1 0 1
2 2 1 0 2 1 1 3 1 2 2 4 1 3
w ( 1) ( ) ( ) ( 1 )
( ) ( ) ( )
k k k k k k
k k k
e w a w a a w a e a r b
e a a r b r b e rb a e r b
− − − −
− − −
= + − + − + − − − +
− − + + − − −
Ta lấy w
k
=1 với mọi K

0
k=0 →

k=1 →
k=2 →
k=3 →
Tiêu chuẩn tích phân bình phương:
Mô phỏng khảo sát
Sử dụng Optimization toolbox của Matlab:
Ta có mô hình hàm truyền của đối tượng được tính theo phương pháp gián đoạn hóa từ
mục 1 như sau:

Lập file function1.m lưu ở folder đã liên kết với Matlab có nội dung như sau:
function F = Function(x)
b0 = 0.0002027; b1 = 0.0004053; b2 = 0.0002027; a0 =1; a1= - 1.6; a2=0.6;
F=1+(1-x(1)*b1)^2+(1+(a1*b1-2*b1-b2)*x(1)+b1^2*x(1)^2-b1*x(2))^2+(-(a1-
1+x(1)*b1)*(1+(a1*b1-2*b1-b2)*x(1)+b1^2*x(1)^2-b1*x(2))-(a2-
a1+x(1)*b2+x(2)*b1)*(1-x(1)*b1)-(x(2)*b2-a2))^2;
Cửa sổ lệnh Matlab thực hiện các lệnh tìm tối ưu như sau:
>> options=optimset('fminunc');
>> options=optimset(options,'Display','iter','LargeScale','off');
>> x0=[1 -800];
>> [x,fval]=fminunc('function',x0,options)
Directional
Iteration Func-count f(x) Step-size derivative
1 2 9.15461 1 -0.000712
2 9 1.68117 24079.5 -9.68e-006
3 15 1.68049 0.229084 -0.00277
4 21 1.67848 1.01305 -1.05e-008

Optimization terminated successfully:
Current search direction is a descent direction, and magnitude of
directional derivative in search direction less than 2*options.TolFun

x =
621.5951 -583.2179
fval =
1.6785
Kiểm tra lại bộ điều khiển bằng Matlab:
Nhân xét: Độ qua điều chỉnh lớn 20%
Thời gian xác lập ngắn
Cần thấy đổi bộ điều khiển PI để hệ thống đạt chất lượng tốt hơn xong sau khi thử nhiều
số liệu để mô phỏng em vẫn thấy độ quá điều chỉnh lớn 20% và thời gian xác lập ngắn.
Sơ đồ Simulink với tác động của nhiễu đầu vào và nhiễu đầu ra :
Nhận xét: Mặc dù có tác động của nhiễu đầu vào và nhiễu đầu ra nhưng bộ điều khiển
vẫn đưa hệ thống về giá trị xác lập mới
2. Thiết kế bộ điều chỉnh PI theo phương pháp gán điểm cực:
Hàm truyền đối tượng:
Bộ điều khiển: G
R
(z) =
0 1
.
1
r z r
z
+

=
R(z)
( )P z
Đa thức đặc tính của hàm truyền chủ đạo:
N(z)=P(z).A(z)+R(z)B(z)


Giả sử điểm cực của đối tượng chủ đạo là thì ta có:
Chọn z
1
=0.8, z
2
=0.85
Thực hiện trên matlab:
>> Gns=tf(1,[2*100e-6 1])*38.2*0.04*tf(1,[2*pi*0.012 0])

Transfer function:
1.528

1.508e-005 s^2 + 0.0754 s

>> Gnz=c2d(Gns,Ttm1,'tustin')

Transfer function:
0.0002027 z^2 + 0.0004053 z + 0.0002027

z^2 - 1.6 z + 0.6

Sampling time: 0.0001
>> b0 = 0.0002027; b1 = 0.0004053; b2 = 0.0002027; a0 =1; a1= - 1.6; a2=0.6;
>> A=[b0 0 0 0;b1 b0 1 1;b2 b1 a1 -1.65;0 b2 a2 0.68]
A =
0.0002 0 0 0
0.0004 0.0002 1.0000 1.0000
0.0002 0.0004 -1.6000 -1.6500
0 0.0002 0.6000 0.6800
>> B=[0;0.05;0.08;0]

B =

×