Tài liệu System Identification Toolbox tiếng việt

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.

pdf22 trang | Chia sẻ: ngtr9097 | Lượt xem: 2094 | Lượt tải: 3download
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