Báo cáo Bài tập lớn hệ thống điều khiển số Yêu cầu : -Thiết kế bộ điều khiển cho đối tượng trên miền thời thời gian thực cho đối tượng là động cơ 1 chiều công suất 100 W -Lập trình bộ đi
Trang 1Báo cáo
Bài tập lớn hệ thống điều khiển số
Yêu cầu :
-Thiết kế bộ điều khiển cho đối tượng trên miền thời thời gian thực cho đối tượng là động cơ 1 chiều công suất 100 W
-Lập trình bộ điều khiển cho khối Sfunction trong Simulink
GV hướng dẫn: TS Vũ Thị Thúy Nga
Trang 2Mục lục :
Báo cáo 1
Bài tập lớn hệ thống điều khiển số 1
1 Mô hình động cơ một chiều kích từ độc lập 3
1.1.Cấu trúc 3
1.2.Sơ đồ điều khiển cascade 3
2 Thiết kế bộ điều khiển 4
2.1 Thiết kế bộ điều khiển dòng điện 4
2.2 Thiết kế bộ điều khiển tốc độ 5
2.3.Thiết kế bộ điều khiển trên miền thời gian xấp xỉ liên tục 7
2.4 Mô phỏng trên Simulink 8
3 So sánh chu kì trích mẫu của bộ điều khiển với Fixed-step size của hệ thốn.11 4.Tài liệu tham khảo 13
2
Trang 31 Mô hình động cơ một chiều kích từ độc lập
1.1.Cấu trúc
Hình 1.Sơ đồ cấu trúc ĐCMC Thông số động cơ :
Công suất định mức : Pdm= 100 W Momen quán tính J =
5.5*10^-4 kg.m2
Hằng số động cơ : ke =11.2*10^-3; km = 0.11 Từ thông danh định Ψ = 0.013Vs
Điện cảm phần ứng : LA = 0.0033 H
Điện trở phần ứng : RA = 2.1 Ω
Hằng số thời gian phần ứng : TA = LA/ RA
Hằng số thời gian chỉnh lưu : Tt = 100μs
Chu kì trích mẫu Ttm = 0,1ms
Trang 41.2.Sơ đồ điều khiển cascade
Hình 2 Sơ đồ điều khiển cascade
4
Trang 52 Thiết kế bộ điều khiển
2.1 Thiết kế bộ điều khiển dòng điện
Hình 3.Sơ đồ điều khiển dòng điện
Coi sức điện động e Alà nhiễu, hàm truyền của đối tượng dòng phần ứng là:
G (s)= 1/ Ra
(1+sTt ) (1+sTa)
Nhưng với yêu cầu thiết kế bộ điều khiển số cho đối tượng liên tục :
Hình 4 Sơ đồ cấu trúc bộ điều khiển số Nên đối tượng ta cần thiết kế ở đây sẽ có dạng :
Gi (s )=ZOH∗G (s )=
1−e−ST
s ∗1/ Ra
(1+ sTt ) (1+ sTa)
Ở đây:
e−sT
≈ 1+(−sT )+ s
2
T2
2
Trang 6
Do T rất nhỏ nên ta có thể xấp xỉ
/ ( )
(1 )(1 )
T Ra
Gi s
sTt sTa
Ta thiết kế cho đối tượng trên theo tiêu chuẩn tối ưu mô đun với hàm chuẩn là
2 2
1 ( )
MC
F s
t s t s
Nếu chọn bộ điều khiển PI
( ) Ti
Ri s Kp
s
Khi đó ta sẽ có được các thông số của bộ điều khiển như sau
*
2* *
Ra Ta
Kp
T Tt
và 2* *
Ra Ti
T Tt
Tính toán ta được Kp=0.1650 ; Ti=105
6
Trang 72.2 Thiết kế bộ điều khiển tốc độ
Ta có sơ đồ cấu trúc vòng điều khiển tốc độ
Hình 5.Sơ đồ điều khiển tốc độ
Ta có thể xấp xỉ khâu Gi(s) dưới dạng:
1 ( )
Gi s
sTt
Khí đó đối tượng tốc độ của ta có dạng
M
t
G (s) G (s).k
2 Js s(2Ts 1) 2 J
Ta thiết kệ bộ điều khiển cho đối tượng trên theo tiêu chuẩn tối ưu đối xứng với hàm chuẩn :
3 3 2 2
1 4 ( )
DX
t s
F s
t s t s t s
Chọn bộ điều khiển PI có dạng w( )
Ti
R s Kp
s
Với các thông số sau
2k M T t
Kp
J
; Ti=8Tt
Tính toán ta được Kp=1.6561e-04; Ti= 8.0000e-04
Trang 82.3.Thiết kế bộ điều khiển trên miền thời gian xấp xỉ liên tục
Thiết kế bộ PI
t
p
0 i
1 u(t) K (e(t) e( )d )
T Sauk hi xấp xỉ vs chu kì trích mẫu T ta được
uk=uk-1+Kp(ek-ek-1 +(T/Ti)*ek-1)= uk-1 + ekKp+ ek-1(T*Kp/Ti-Kp)
Đặt k1=Kp;k2= T*Kp/Ti - Kp ta được
uk = uk-1 +k1ek +k2 ek-1
2.4 Mô phỏng trên Simulink
Sau khi thiết kế và chỉnh định thông số ta được:
n Scope
-K-Km*phi
289.5194 s 1/2piJ
47.6190 1.5714e-07s +0.0017s+12 ZOH*Gi(s)
1600
Hold
0 Mt
PID_Rw Rw
PID_Ri Ri
Hình 6 : Sơ đồ mạch vòng điều chỉnh
8
Trang 9Hình 7 : Đáp ứng tốc độ với n*=1600 vòng/phút Nhận xét :Tốc độ của đối tượng đáp ứng được yêu cầu ,bám giá trị đặt và có thời gian xác lập nhỏ,độ quá điều chỉnh thỏa mãn yêu cầu
Code cho khối S-function level 2
function PID_Rw(block)
setup(block);
function setup(block)
block.NumDialogPrms = 2;
%% Register number of input and output ports
block.NumInputPorts = 1;
block.NumOutputPorts = 1;
%% Setup functional port properties to dynamically
%% inherited.
block.SetPreCompInpPortInfoToDynamic;
block.SetPreCompOutPortInfoToDynamic;
% Override input port properties
block.InputPort(1).Dimensions = 1;
block.InputPort(1).DatatypeID = 0; % double
block.InputPort(1).Complexity = 'Real' ;
block.InputPort(1).DirectFeedthrough = true;
% Override output port properties
block.OutputPort(1).Dimensions = 1;
block.OutputPort(1).DatatypeID = 0; % double
block.OutputPort(1).Complexity = 'Real' ;
%% Set block sample time to [0.1 0]
block.SampleTimes = [1e-4 0];
%% Set the block simStateCompliance to default (i.e., same as a built-in block)
Trang 10block.SimStateCompliance = 'DefaultSimState' ;
%% Register methods
block.RegBlockMethod( 'PostPropagationSetup' , @DoPostPropSetup);
%block.RegBlockMethod('Start', @Start);
block.RegBlockMethod( 'Outputs' , @Output);
block.RegBlockMethod( 'Update' , @Update);
%block.RegBlockMethod('CheckParameters', @CheckPrms);
block.RegBlockMethod( 'InitializeConditions' , @InitConditions);
function DoPostPropSetup(block)
%% Setup Dwork
block.NumDworks = 3;
block.Dwork(1).Name = 'x0' ;
block.Dwork(1).Dimensions = 1;
block.Dwork(1).DatatypeID = 0;
block.Dwork(1).Complexity = 'Real' ;
block.Dwork(1).UsedAsDiscState = true;
block.Dwork(2).Name = 'x1' ;
block.Dwork(2).Dimensions = 1;
block.Dwork(2).DatatypeID = 0; % double
block.Dwork(2).Complexity = 'Real' ; % real
block.Dwork(2).UsedAsDiscState = true;
block.Dwork(3).Name = 'x2' ;
block.Dwork(3).Dimensions = 1;
block.Dwork(3).DatatypeID = 0;
block.Dwork(3).Complexity = 'Real' ;
block.Dwork(3).UsedAsDiscState = true;
function InitConditions(block)
block.Dwork(1).Data = 0;
block.Dwork(2).Data = 0;
block.Dwork(3).Data =0;
%function Start(block)
%block.Dwork(1).Data = 0;
%block.Dwork(2).Data = 0;
%block.OutputPort(1).Data = 0;
%function CheckPrms(block)
%block.Dwork(1).Data = 0;
%block.Dwork(2).Data = 0;
%block.OutputPort(1).Data = 1;
function Output(block)
k1 = block.DialogPrm(1).Data;
k2 = block.DialogPrm(2).Data;
block.OutputPort(1).Data =block.Dwork(3).Data + (k1)*block.Dwork(1).Data + (k2)*block.Dwork(2).Data;
%block.OutputPort(1).Data=block.Dwork(3).Data;
%endfunction
function Update(block)
block.Dwork(2).Data = block.Dwork(1).Data;
block.Dwork(1).Data = block.InputPort(1).Data;
block.Dwork(3).Data=block.OutputPort(1).Data;
10
Trang 11%function Terminate(block)
Trang 123 So sánh chu kì trích mẫu của bộ điều khiển với Fixed-step size của hệ thống
Hình 8: Sơ đồ cấu trúc bộ điều khiển số Trong 2 bộ điều khiển ta dùng cách nhập chu kì trích mẫu cho bộ điều khiển
%% Set block sample time to [0.01 0]
block.SampleTimes = [1e-4 0];
Khi đó bộ điều khiển có chu kì trích mẫu là Ts=0.1ms
Ta cái đặt chu kì trích mẫu cho hệ thống thông qua khối Configuration
Paramaters /chọn Fixed-Step / Fixed-Step size
Hình 9: Khối Configuration Paramaters
12
Trang 13Khi ta nhập Fixed-Step size có giá trị khác với Ts của bộ điều khiển ,hệ thống sẽ
báo lỗi
Hình 10:Lỗi khi nhập chu kì trích mẫu không phù hợp Kết luận:Chu kì trích mẫu của hệ thống phải phù hợp với chu kì trích mẫu của
bộ điều khiển
Ở đây chúng ta chọng Tht=Ts
Trang 144.Tài liệu tham khảo
[1]Electrical Engineering-Automatic - Hon-Prof.Prof Dr.-Ing.habil Nguyễn Phùng Quang – 19 August 2013
[2]Tài liệu hướng dẫn thực hành Hệ thống điều khiển số, Bộ môn
ĐKTĐ-ĐHBKHN
14