Nhận dạng đối là một trong những bước đầu tiên và quan trọng để thực hiện quá
trình thiết kế điều khiển cho đối tượng. Sau khi thu thập được dữ liệu vào ra theo thời
gian hoặc là phổ tín hiệu của đối tượng nhiệm vụ của việc nhận dạng đối tượng là tìm
mô hình toán học, hàm truyền đạt thích hợp mô tả gần đúng nhất đối tượng thực. Để
dễ dàng cho quá trình nhận dạng thì trong matlab có toolbox : system identification
toolboxđể giúp chúng ta thực hiện dễ dàng trực quan , nhanh chóng. Tuy nhiên để sử
dụng tốt công cụ này chúng ta cần phải hiểu rõ các phương pháp nhận dạng, phạm vi
sử dụng và ưu nhược điểm của từng phương pháp cộng với khả năng về phân tích hệ
thống thông qua các đặc tính thu được. Để giúp cho quá trình tìm hiểu về toolbox này
ở đây chúng tôi sẽ giới thiệu cho các bạn các bước làm cơ bản để thực hiện quá trình
nhận dạng. Với mong muốn rằng các bạn có thể sử dụng nó để hiểu được trình tự nhận
dạng trong matlab. Và chúng tôi hy vọng rằng sẽ thực hiện tìm hiểu thật cụ thể về
toolbox này trong thời gian tới.
22 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2094 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Tài liệu System Identification Toolbox tiếng việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
A. Đặt vấn đề
Nhận dạng đối là một trong những bước đầu tiên và quan trọng để thực hiện quá
trình thiết kế điều khiển cho đối tượng. Sau khi thu thập được dữ liệu vào ra theo thời
gian hoặc là phổ tín hiệu của đối tượng nhiệm vụ của việc nhận dạng đối tượng là tìm
mô hình toán học, hàm truyền đạt thích hợp mô tả gần đúng nhất đối tượng thực. Để
dễ dàng cho quá trình nhận dạng thì trong matlab có toolbox : system identification
toolbox để giúp chúng ta thực hiện dễ dàng trực quan , nhanh chóng. Tuy nhiên để sử
dụng tốt công cụ này chúng ta cần phải hiểu rõ các phương pháp nhận dạng, phạm vi
sử dụng và ưu nhược điểm của từng phương pháp cộng với khả năng về phân tích hệ
thống thông qua các đặc tính thu được. Để giúp cho quá trình tìm hiểu về toolbox này
ở đây chúng tôi sẽ giới thiệu cho các bạn các bước làm cơ bản để thực hiện quá trình
nhận dạng. Với mong muốn rằng các bạn có thể sử dụng nó để hiểu được trình tự nhận
dạng trong matlab. Và chúng tôi hy vọng rằng sẽ thực hiện tìm hiểu thật cụ thể về
toolbox này trong thời gian tới.
1
B. Các bước thực hiện nhận dạng bằng system identification toolbox
I. Chuẩn bị dữ liệu để nhận dạng :
1. Dữ liệu được nhập trực tiếp từ cửa sổ matlab
ta nhập giá trị vào u1,y1 rồi lưu nó vào trong file .mat
>>u1= [1.2;1.3;…];
>>y1=[3;6;;..];
>>save identdata u1 y1
2. Dữ liệu lưu trong exel
Để đọc dữ liệu từ trong exel ta dùng lệnh xlsread
A=xlsread(‘path\file.xls’,1,’A1:A10’)
A= xlsread(‘path\file.xls’,2)
A=xlsread(‘path\file.xls’)
Trong đó các đặc tính path\file.xls là đường dẫn đến file exel chứa số liệu mình cần lấy ví
dụ :C:\Documents and Settings\phong\My Documents\identdata.xls
1 có nghĩa là sheet 1 trong exel
A1:A10 mình giới hạn số liệu cần lấy để khảo sát từ A1:A10
Để sử dụng có hiệu quả mình phải biết được đặc điểm của dữ liệu lưu trong exel. Ví dụ như
trong exel với tên file và đường dẫn của nó là : C:\Documents and Settings\phong\My
Documents\identdata.xls
nếu A2:B6 sẽ lấy ra ma trận từ cột A2 đến B6
Để lấy dữ liệu tín hiệu vào ra với cột A là tín hiệu vào u1 và cột B
là tín hiệu ra y1 ta dùng đoạn lệnh
>> X=xlsread('C:\Documents and Settings\phong\My
Documents\identdata.xls',1);
>> u1=X(:,1);
>> y1=X(:,2);
Và để dùng để mô phỏng ta phải lưu giá trị u1,y1 vào file
identdata.mat để sử dụng ta dùng lệnh
>> save identdata u1 y1
3. Nếu dữ liệu lưu trong text
2
C = textscan(fid, 'format')
C = textscan(fid, 'format', N)
C = textscan(fid, 'format', param,
value,...)
C = textscan(fid, 'format', N, param,
value,...)
C = textscan(str, ...)
[C, position] = textscan(...)
Fid là tên file cũng như xlsread ta cần có cả đường dẫn của nó. Phần format thì tham khảo
bảng định dạng dữ liệu sau.
3
Có thể tham khảo các hàm sau : dlmread , dlmwrite, csvread, csvwrite
II. Các loại dữ liệu cho việc mô phỏng
Gõ ident vào workpace của matlab
4
1. Time-DomainData dữ liệu trong miền thời gian
Sau đó vào Import data > Time domain
data
Input : biến vào
Output :biến ra
Data name : là tên là tên file chứa dữ liệu vào/ra
(session.mat)
Starting time : nhập 0 nếu muốn khảo sát tại thời gian
gốc
Sampling interval : khoảng thời gian lấy mẫu.
Sau đó kích vào more trên cửa sổ Import data
Sau đó để đặt thêm tên biến đơn vị biến ta click vào More (đặc tính chung của các quá trình
thực hiện vào dữ liệu)
5
InterSample : Lựa chọn phương pháp chuyển từ liên tục sang rời rạc (zoh, foh,bl )
Period : là thời gian khảo sát.ở đây mình chọn là inf
Channel Names
• Input : nhập tên của tín hiệu vào (ở đây là power)
• Output: nhập tên của tín hiệu ra (ở đây là temperat ure)
Physical Units of Variables (Đơn vị vật lý của các tín hiệu vào/ra)
• Input : tương ứng đây sẽ là W
• Output: tương ứng là độ C
2. Frequency-Domain Data dữ liệu trong miền tần số
6
Các dạng của dữ liệu :
a. Freq.Function(Complex)
• Freq.Func.: nhập tên biến chứa dữ liệu hoặc biểu thức của đáp ứng tần số
G ( exp(jw))
• Frequency : nhập tên biến chứa mảng tần số khảo sát; định dạng của nó là vector cột
• Frequency unit : đơn vị tần số (Hz hay rad/s)
b. Amplitudeand Phase Frequency-Response Data
Thì các đặc tính cần cài đặt là biên độ, pha, và tần số ở đây là các biến có giá trị là các
vector.
7
III. Các mô hình nhận dạng
I. Nhân dạng tham số mô hình ARMA ( Autoregressive moving average):
1.1. Lý thuyết:
Mô hình ARMA là mô hình rời rạc, nhận dạng mô hình ARMA là phương pháp nhận dạng tham số K, a
, b cho mô hình rời rạc
1
1
1
1
1 ...( )( )
( ) 1 ...
nb
nb
na
na
b z b zY zG z K
U z a z a z
− −
− −
+ + +
= =
+ + +
(1)
Trên cở sở quan sát, đo tín hiệu vào u(t) và ra y(t) sao cho sai lệch giữa mô hình và đối tượng là nhỏ nhất.
Với những điều kiện mô tả sai lệch khác nhau sẽ có các phương pháp nhận dạng khác nhau.
Các phương pháp này được chia làm 2 loại chính:
- Loại nhận dạng chủ động ( active). Tín hiệu đầu vào u(t) được chọn là tín hiệu ồn trắng có giá trị
mật độ phổ bằng 1, tức là:
mu=0 và Su(w)=1
8
- Loại nhận dạng bị động (passive).
Đặc biệt, khi nb=0 thì mô hình trở thành:
1
1
( ) 1( )
( ) 1 ... nana
Y zG z K
U z a z a z− −
= =
+ + +
(2) và được gọi là mô hình AR (Autoregressive) của đối
tượng.
Khi na=0 thì mô hình trở thành:
1
11 ...( )( )
( ) 1
nb
nbb z b zY zG z K
U z
− −+ + +
= = (3) có tên gọi là mô hình MA (Moving average).
Chuyển (1) sang miền thời gian, ta có mô hình tương đương sang sai phân:
1 1
( )
na nb
n k n k n k n k
k k
y a y K u b u
− −
= =
+ = +∑ ∑
Hoàn toàn tương tự, dạng thời gian của mô hình AR là:
1
na
n k n k n
k
y a y Ku
−
=
+ =∑
của mô hình MA là:
1
( )
nb
n n k n k
k
y K u b u
−
=
= + ∑
Để đơn giản trong quá trình nhận dạng ta có thuật toán:
- Chuyển bài toán nhận dạng bị động sang bài toán nhận dạng chủ động.
- Nhận dạng từng khâu AR và MA trong mô hình ARMA.
1.2. Linear parametric models .
1. Trong System Identification Tool GUI, kiểm tra dữ liệu đã được nhập vào chưa. Nếu sử dụng một
dạng dữ liệu khác ta có thể thay thế một mô hình mẫu tính toán khác. Kiểm tra dữ liệu trong
Working Data.
2. Chọn Estimate > Linear parametric models để mở hộp Linear Parametric Models, nếu hộp này
chưa được mở.
3. Trong hộp Linear Parametric Models chọn By Initial Model từ danh sách Structure.
4. Nhập tên mẫu trong trường Initial model, nhấn Enter. Tên này phải là tên của mẫu trong Model
Board trong System Identification Tool GUI hoặc là biến trong MATLAB Workspace.
5. Thay đổi thuật toán cài đặt, hiển thị trong Linear Parametric Models nếu cần thiết.
6. Chọn Estimate để lọc mẫu.
7. Chuẩn hoá mẫu mới này.
Để tiếp tục lọc mẫu chọn Continue iter.
9
2. Spectral models:
2.1. Lý thuyết:
Giống như h(t), thông qua g(t) ta luôn có được u(t) và do đó g(t) cũng có thể được xem như một mô hình
không tham số của đối tượng.
Việc nhận dạng mô hình không tham số sẽ đồng nghĩa với việc nhận dạng hàm quá độ h(t) hay hàm trọng
lượng g(t). Một trong những phương pháp nhận dạng mô hình không tham số đơn giản là xác định hàm
quá độ h(t) bằng cách kích thích đối tượng với tín hiệu Heaviside tại đầu vào rồi đo tín hiệu đầu ra. Từ
g(t) ta cũng có thể suy ra h(t) do đó bài toán sẽ được coi là giải quyết xong nếu xác định được g(t) hay
ảnh Fourier của nó. Nhận dạng đường đặc tính tần G(jw) cũng như các giá trị {Gn } với Gn=G(jnΩ) cho
một đối tượng tuyến tính cần nhận dạng trên cơ sở quan sát cả 2 tín hiệu vào và ra bao gồm:
- Nhận dạng mật độ phổ tín hiệu bằng kỹ thuật DFT. Đánh giá sai số và các kỹ thuật làm giảm sai
số.
- Xác định hàm trọng lượng, hàm quá độ từ phổ tín hiệu theo thuật toán cực tiểu sai lệch.
2.2 . Nhận dạng trong toolbox Matlab:
Trước khi sử dụng Toolbox nay, cần xuất dữ liệu vào trong GUI như đã nêu trong bước chuẩn bị dữ liệu.
Các bước thực hiện thuật toán nhận dạng mô hình tham số nhờ phân tích tín hiệu phổ trong System
Identification Tool GUI.
1. Trong System Identification Tool GUI, chọn Estimate > Spectral models mở hộp Spectral Model.
2. Trong danh sách Method, chọn thuật toán phân tích tín hiệu phổ cần thiết. Có thể lựa chọn các
dạng:
• etfe (Empirical Transfer Function Estimate).
• spa (SPectral Analysis).
• spafdr (SPectral Analysis
• with Frequency Dependent Resolution).
3. Nhập một số thông số cần thiết cho tính toán thuật toán:
• Trong trường Frequencies, nhập giá trị của vector hoặc tên vector đã được nhập trong cửa sổ
Matlab.Ví dụ: logspace(-1,2,500).
• Sử dụng kết hợp Frequency Spacing và Frequencies để xây dựng tần số của vector.
• Trong danh sách Frequency Spacing chọn Linear hoặc Logarithmic cho không gian tần số.
• Trong trường Frequencies nhập tần số của các điểm ( tần số nằm trong khoảng từ tần số nhỏ nhất
dến tần số lớn nhất của dữ liệu).
4.Trong trường Frequency Resolution, nhập tần số giải. Nếu sử dụng giá trị mặc định, chọn default hoặc
để trống trường đó.
5. Trong trường Model Name, nhập tên tương thích với mẫu phân tích. Tên này chỉ xuất hiện duynhất
trong Model Board.
10
6. Kích Estimate, nhập mẫu từ Model Board trong System Identification Tool GUI.
7. Trên hộp Spectral Model kích close.
8. Muốn hiển thị hình ảnh của nhiễu quá trình, chọn hộp thoại Noise spectrum trong System Identification
Tool GUI.
Để xuất mẫu ra của sổ Matlab ta sử dụng lệnh idfrd hoặc bode.
3. Process models:
Hàm truyền đạt của hệ tuyến tính được mô tả bởi một hoặc nhiều yếu tố:
- Hệ số tĩnh Kp.
- Tpk. Với hệ có nhiều điểm cực, hằng số thời gian là
1Tω ζ= ( ζ tần số hệ thống).
- Tz
- Td deatime thời gian trễ tín hiệu vào và ra.
- Hệ số thời gian tích phân.
Xử lý mô hình mẫu là phương pháp phổ biến cho các hệ thống rời rạc trong công nghiệp, ứng dụng trong
nhiều môi trường khác nhau. Bằng phương pháp này ta còn có thể xác định thời gian trễ của hệ thống,
làm rõ được các thông số vật lý của hệ.
System Identìication Toolbox cung cấp rất nhiều mô hình mẫu, theo thời gian, theo tần số với số điểm cực
khác nhau, có thể thêm khâu tích phân, thêm hoặc bỏ thờì gian trễ, điểm không. Trong toolbox này ta có
các mô hình bậc 1, 2 hoặc 3 với nhiều điểm cực thực hoặc ảo.
Trước khi sử dụng Toolbox cần phải chuẩn bị dữ liệu ( theo các cách đã trình bày). Các bước sử dụng
Toolbox:
1. Trong System Identìfication Toolbox, chọn Estimate > Process models để mở Process models.
11
2. Nếu mô hình có nhiều đầu ra, lựa chọn kênh trong danh sách Input. Danh sách này chỉ xuất hiện
khi mô hình có nhiều đầu vào.
3. Trong Model Transfer Function, phải khai báo các thông số:
• Lựa chọn số điểm cực, tối thiểu là 2, sau đó lựa chọn All real hoặc Underdamped.
• Khai báo số điêm không trong hộp Zero hoặc xoá bỏ khi không tồn tại điểm không.
• Khai báo thời gian trễ trong hộp Delay hoặc xoá bỏ khi không tồn tại.
• Khai báo hằng số tích phân trong hộp Integrator hoặc xoá bỏ.
Vùng thông số sẽ hiện rất nhiều thông số cần khai báo.
4. Trong vùng Initial Guess, lựa chọn Auto-selected các thông số hệ sẽ được tự động tính toán và
lấy gần đúng. Các cột Initial Guess sẽ hiện các thông báo Auto. Nếu ta không tính toán tốt thông
số hệ thống, nên chọn hệ tự động.
12
5. Nếu đã biết thông số của hệ thống, có thể nhập trực tiếp vào Initial Guess. Thuật toán xấp xỉ sẽ
nhận giá trị này như giá trị đầu tiên. Nếu thông số là chính xác, ta cũng nhập vào cột Initial Guess
sau đó lựa chọn hộp Know xác định chính xác giá trị. Nếu giá trị nằm trong một khoảng nào đó,
ta nhập giá trị đó vào hộp Bounds để thuật toán xấp xỉ chính xác hơn.
6. Trong danh sách Disturbance Model, lựa chọn một giá trị.
• None nếu ta bỏ qua mô hình nhiễu.
• Oder1 xấp xỉ mô hình nhiễu như 1 hàm liên tục, hệ ARMA bậc nhất.
• Oder2 xấp xỉ mô hình nhiễu như 1 hàm liên tục, hệ ARMA bậc hai.
7. Tong danh sách Focus, lựa chọn tần số tương đối quan trọng so với các tần số khác. Ta có các lựa
chọn:
• Prediction
• Simulation
13
• Stability
• Filter
Trong cửa sổ command có thể thực hiện lựa chọn này bằng hàm pem. Ví dụ:
pem(data,'P1D','dist','arma2','Focus','Simulation')
8. Trong danh sách Initial state, lựa chọn thuật toán cho trạng thái đầu. Có thể chọn các thuật toán
sau:
• Zero các trạng thái đầu đều là 0.
• Estimate
• Backcast
• U-level est
• Auto
Trong cửa sổ command có thể thực hiện lựa chọn này bằng hàm pem. Ví dụ:
m=pem(data,'P1D','InitialState','zero')
9. Trong danh sách Covariance, chọn Estimate nếu thuật toán của ta không chắc chắn. Nếu ngược
lại ta chọn None.
10. Trong hộp Model Name, nhập tên mẫu hoặc giữ theo mặc định. Tên của mẫu chỉ xuất hiện duy
nhất trên Model Board.
11. Để hiện thị thông tin tính toán trên của số Window, ta lựa chọn hộp Trace. Trong quá trình tính
toán, thông tin được hiển thị trên màn hình:
• Loss command.
• Parameter values
• Search direction
• Fit improvements
12. Chọn Estimate để nhập mẫu vào Model Board trong System Identification Tool GUI.
13. Để ngừng quá trình tính toán và lưu kết quả lại, ta chọn Stop Iterations. Để tiếp tục quá trình ta
chọn Continue iter.
14. Để hiển thị đồ thị của mẫu ta chọn Model Views.
15. Để chuẩn hoá kết quả tính toán, lựa chọn Value—> Initial Guess cài đặt lại các thông số xác định
mô hình mẫu khác, chọn lại Model Name và Estimate.
Có thể lặp lại các công việc trên đến khi xác định được một cách tương đối chính xác mô hình đối tượng.
IV. Ví dụ tham khảo
Ta chọn khâu quán tính bậc 2 G(s) = 56/((1+45s)*(1+4s));
Để thu thập dữ liệu dạng tần số ta làm như sau :
syms s
w1=[0:0.1:10];
G=56/((1+45*s)*(1+50*s));
w=j*[0:0.1:10];
G=subs(G,w);
G=double(G);
14
A=abs(G);
B=angle(G);
Save data1 G w1;
Save data2 A B w1;
Sau đó click vào Import data chọn Ferq.domain data tiếp tục chọn Ferq.Function
(amp/phase) và điền các tham số mô phỏng như hình dưới.
15
Tiếp tục chọn Estimate ==> process model ta có
16
Các tham số mình có thể chọn : pole ,zero,delay integrator intial guess
Sau đó mình click để estimate ta có kết quả nhận dạng như sau
So sánh kết quả nhận dạng :
s=tf('s');
G=56/((1+45*s)*(1+50*s));
G1=56.016/((1+1396.6*s)*(1+0.01*s));
nyquist(G,G1,'r-.');
figure
impulse(G,G1,'r-.');
figure
step(G,G1,'r-.');
17
-10 0 10 20 30 40 50 60
-40
-30
-20
-10
0
10
20
30
40
Nyquist Diagram
Real Axis
Im
ag
in
ar
y
Ax
is
G1
G
0 1000 2000 3000 4000 5000 6000 7000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
Impulse Response
Time (sec)
Am
pli
tu
de
G
G1
18
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
0
10
20
30
40
50
60
Step Response
Time (sec)
Am
pli
tu
de
G1`
G
Kết luận
Do chưa tìm hiểu hết các phương pháp nhận dạng mà ở đây chỉ mang tính hướng dẫn sử
dụng toolbox này của matlab nên chúng tôi chưa có được cái nhìn tổng quan để rút ra
kinh nghiệm nhận dạng cho từng đối tượng và đánh giá được hết các ưu nhược điểm của
các phương pháp nhận dạng.Với sự tiếp xúc chưa được lâu nên chưa gặp phải các vấn đề
để đưa ra hướng giải quyết. Đây cũng là nhược điểm của bài báo cáo này. Chúng tôi sẽ
hoàn thiện nốt các vấn đề còn lại trong thời gian sớm nhất.
19
Chọn Remove means để trừ tín hiệu vào/ra từ dữ liệu vào/ra mục đích là
đưa về gốc
Lúc này time plot sẽ là
20
Chọn Select range
Trong windown bạn nhập dữ liệu thành 2 phần phần thứ nhất là phần dữ liệu của tín hiệu đo và
phần thứ hai là phần dữ liệu của mô hình mẫu.
• ở đây samples là số lần đo .(ở đây chọn 500)
• Data name : nhập vào mô hình ước lượng sau đó cick vào insert
21
Để lưu file nay chọn File > Save session as
Why Identify Models Using Default Settings?
Sau khi chuẩn bị dữ liệu cho quá trình ước lượng (Plotting and Preprocessing Data),bạn có thể
dung Quick Start để có kết quả nhận dạng,và so sánh với một số cấu trúc của mô hình
mẫu. Bạn có thể dùng các mô hình mẫu này để đánh giá một trong các mô hình tuyến tính
đó.Mô hình mẫu cũng có thể giúp bạn biết về bậc và trễ của đối tượng.
22