MATLAB và ứng dụng trong điều khiển nguyễn đức thành

426 7 0
MATLAB và ứng dụng trong điều khiển  nguyễn đức thành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NGUYÊN ĐỨC THÀNH MATLAB ỉ THU VIEN DAI HOC NHA TRANG 1000017454 NHÀ XUẨT BẢN ĐẠI HỌC QU،C GI tKÙềKỷ ٠ H ình 6.31 Giao diện huấn luyện mạng Sau bâ"m vào Train Network ٠v ٢ àinina with TRAINC mmm Chương 416 Đồ thị cho thấy thuật toán học châm dứt sau chu kỳ Muốn kiểm tra ta bấm Sim ulate chọn Sim ulation Data Inputs p bấm Sim ulate N etwork, cửa sô Network !Data Manager, ô Outputs ta bấm chuột vào dòng AndN et_Outputs bấm View, xuất cửa sổ cho thây việc học thành cơng íP‫؛‬ 0 01) ٠ ·• • ٠ ١ : ·:.،r ١٠· .-٠ ١ ١ ١ r Á ·‫·؟‬ ■ f c | 'M a n lg e r ‫ | ؟‬l f Q n c _ _ J ٠r e l - 'í Muốn nhìn trọng số phân cực ta bấm Weights cửa sô Network: A ndN et nhận kết [2 1] -3 Bấm Manage đế trở lại cửa số Network !Data Manager, ta Exports mạng Workspace băng nút Exports-Select AU- Export ExportsSelect AU- Save để cất vào đĩa dạng m at Muôn chọn sô mục ta bâm C trl kết hợp với chuột Bằng nút Im port ta nạp mạng hay liệu từ workspace hay đĩa vào GUI Phần cho thây khả huấn luyện perceptron để phân lớp hay mô chức đó, mục sau khảo sát mạng phức tạp 6.8 MẠNG TUYẾN TÍNH Mạng tuyến tính tương tự perceptron dùng hàm truyền tuyến tính a=pureíin(Wp+b) Muốn tạo mạng tuyến tính ta dùng lệnh newlin Ví dụ 6.10 Tạo mạng hai ngõ vào, nơrôn net= newlin( [-1 1; -1 w = net.lW{1,1} w= 0 b= net.b{1} b= Đ iề u k h iể n th ô n g m inh 417 net.lW{1٠l} == [2 3]: w= net.b{1}=[-4]; b= -4 Ta tạo m ạng thỏa mãn yêu cầu với liệu vào lện h neivlind p = [1 3]; % liệu vào T= [2.0 4.1 5.9]; % liệu net = newlind(P,T);% tạo mạng theo yêu cầu y = sim(net,P)% kiểm tra y= 2.0500 4.0000 5.9500 Các thơng số mạng tính theo thuật tốn cực tiểu trung bình phương sai số LMS (Least Mean Square) đích đầu thực Q mse = ;‫ ؛‬X (t(k) - a(k)/ Q Bài toán cực tiểu giải nhờ thuật toán lặp Widrow-Hoff W(k + 1) = W(k) + 2ae(k)p^(k) b(k 4- 1) = b(k) + 2ae(k) a gọi vận tốc học, phải nhỏ nghịch đảo trị riêng lớn ma trận pp٢ Lệnh learnh tính thay đổi w b bước Lệnh train dùng huấn luyện mạng Ví dụ 6.11 Huấn luyện mạng tuyến tính p = [21 -2-1 ;2 -2 1j: % tập liệu vào t = [01 01); % tập đích mong muốn net = newlin( [-2 2; -2 2],1); % tạo mạng net.trainParam.goal= 0.1; % sai sô' tối đa [net, tr] = train(net,p,t): TRAINB, Epoch 0/100, MSE 0.5/0.1 Chương 418 TRAINB Epoch 25/100 MSE 0.181122/0.1 TRAINB Epoch 50/100 MSE 0.111233/0.1 TRAINB Epoch 64/100, MSE 0.0999066/0.1 TRAINB, Performance goal met weights = net.iw{1.1} % đọc thông số mạng weights = -0.0615 ٠-0.2194 bias = net.b(1) bias = [0.5899] A = sim(net p) % kiểm tra thấy chưa đạt A= 0.0282 0.9672 0.2741 0.4320 -0.2741 0.5680 err = t - slm(net.P) err = -0.0282 0.0328 6.9 MẠNG NUÔI TIẾN TổNG QUÁT VÀ LAN TRUYỀN NGƯỢC Mạng prceptron hàm truyền tuyến tính khơng thể giải toán phức tạp phi tuyến, ta phải dùng mạng nhiều lớp hàm truyền phi tuyến Thông thường dùng mạng ba lớp gồm lớp tín hiệu vào, lớp có hàm truyền phi tuyến gọi lớp ân, lớp cuối dưa tín hiệu có hàm truyền tuyến tính Vào Lớp ẩn r Lóp - N r - ١ a ٠١ = y 4x1 ١ '4 x r ZT LW 2., X1 3x4 y v t/ X 1 —٠3 a ١ = tansig (IW ١ ١p ١ + b ١) X a‫ = ؟‬purelin (LW ‫؛‬, ١a ١ + b^) H ìn h 6.32 M n g n u ô i tiế n p h i tu y ế n h a i lớ p J Đ iều k h iến thòii^ m inh 419 Muốn tạo mạng nuòi tiến ta dùng lệnh n e w ff\ có bốn đối số vào, (lầu tiôn ma trận R / cho biết tầm biến vảo, mảng cho biết kích thước ló.p, đến m ảng cho b iết tên hám truyền dùng dải, cuối tên hàm dùng để huấn luyẹn mạng Ví dụ (Í.12 Tạo m ạng hai lớp, hai đẳu vào có tầ m [-1 2| [0 5|, lớp có ba nơrơn, lớp cớ nơrơn, hàm truyền lớp đầu tcíìì-sìgìuoỉd, lớp tun tính , hàm huấn luyện trc iiìig d , thông sô mạng kh i động theo th u ậ t toán đ ặt trước net=newff([-1 2, 5] [3,1],{'tansigVpurelin‘} 'traingd'); net = ١ ١ Neural Network object; architecture: numinputs: numLayers: biasConnect: [1; 1] inputConnect; [1: 0] layerConnect: [0 0; 0] outputConnect; [0 1] targetConnect: [0 1] numOutputs: (read-only) numTargets; (read-only) numInputDelays: (read-only) numLayerDelays: (read-only) ‫؟؛‬ubobject structures: inputs (1x1 cell) of inputs layers: (2x1 cell} of layers outputs; {1x2 cell} containing output targets: {1x2 cell} containing target biases: (2x1 cell} containing biases inputWeights; (2x1 cell} containing input weight layerWeights: {2x2 cell} containing layer weight functions: adaptFcn: 'trains' initFcn: 'initlay' performFcn: 'mse' trainFcn 'traingd' pammeters Chương 420 adaptParam: passes initParam: (none) performParam: (none) trainParam: epochs, goal, Ir .max_fail, min.grad, show, time weight and bias values: IW: {2x1 cell} containing input weight matrix LW: {2x2 cell} containing layer weight matrix b: {2x1 cell} containing bias vectors other: userdata: (user stuff) P = [1;21; a = sim(net.p) a= 0.1011 p = [1 2;2 1]; a = sim(net.p) a= -0.1011 0.2308 0.4955 Việc huấn luyện m ạng dùng thủ tục lan tru yề n ngược đê cập n h ậ t thông số m ạng, điểm th u ậ t toán L M S , việc cập n h ậ t tiế n h àn h ngược từ lớp lùi lại đến lớp trước, có nhiều lện h M A T L A B huấn luyện m ạng theo th u ậ t toán lan tru yền ngược train gd: Basic gradient descent train gdìn : G d ie n t descent w ith m om entum train gdx: A daptive learning rate train rp: R esilie n t backpropagation traincgf: Fletcher-Reeves conjugate grad ien t traincgp: P olak-R ib iere conjugate g radient traincgb: Pow ell-B eale conjugate grad ien t trainscg: Scaled conjugate gradient trainbfg: B F G S quasi-Newton trainoss: One step secant tr a in lm : L even berg -M arq u ardt train br: Bayesian regularization Đ iề u k h i ê n t h ô n g m in h 421 Ví d ụ 6.13 H u ân luyện mạng nuôi tiế n p = [-1 -1 2;0 5]; t = [-1 -1 1]; net=newff(minmax(p)٠[3 ٠1],{'tansig'١'purelin'},'traingd'); net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.epochs = 300; net.trainParam.goal = 1e-5; [net,tr]=train(net,p,t); TRAINGD Epoch 0/300 MSE 1.59423/1 e-05 Gradient 2.76799/1 e-10 TRAINGD, Epoch 50/300 MSE 0.00236382/1 e-05 Gradient 0.0495292/1 e-10 TRAINGD Epoch 100/300 MSE 0.000435947/1 e-05١Gradient 0.0161202/1 e-10 TRAINGD Epoch 150/300, MSE 8.68462e-05/1e-05, Gradient 0.00769588/1 e 10 TRAINGD Epoch 200/300, MSE 1.45042e-05/1e-05١Gradient 0.00325667/1 e-10 TRAINGD, Epoch 211/300, MSE 9.64816e-06/1e-05١Gradient 0.00266775/1 e-10 TRAINGD, Performance goal met a = sim(net.p) a= -1.0010 -0.9989 1.0018 0.9985 6.10 MẠNG NƠRÒN VÀ ĐlỂU KHIEN M n g nơrơn có thê dùng đê mơ h ìn h đối tượng phi tuyến tạo điều kh iển phi tuyến T h iế t k ế điều k h iế n dùng m ạng nơrôn gồm hai giai đoạn: huấn luyện m ạng để mơ h ìn h đối tượng phi tun vả huấn luyện điều k h iến đế đ ạt chi tiêu điổu kh iên Trong S iỉĩìu ỉin k - N eural N etw o rk B lockset có sẵn ba diều khiên: M odel Reference co n tro ller N N P re d ic tiv e C o n tro ller N A R M A L C on troller Bộ điều kh iển theo mơ h ìn h chuẩn m ạng nơrơn có thông sô huân luyện để sai lệch mô h ìn h chuẩn mơ hình tạo từ nhạn định đối tượng đ ạt chí tiơu chất lượng Chương 422 H ình 6.33 Điểu khicn theo mõ /linh chucìn dùníị mang nơrịn Xét ví dụ điều khiến tay máy kháu có phương trình vi phân phi tuyến: = - 10 sin،I> cìt'^ —— + II dt dơ dáp ứng giống mỏ liìn h tuyến tín h bậc hai d 'y , — ÌỊ- = - y , - dr < ١■ ' + / df Chương trìn h mỏ |)hỏng có tên i i i r e f r o ì ) n t ( i r i i i gọi tion g dòng lệnh sò mơ cửa số Simiiliiih■ Đ iề u k h i ể n t h ô n g m in h 423 M o íl R ٠ ٠ e í« n ‫؛‬:» Co'">٠٠oii ٠ ٠ i 'À Fổ ^v rB‫ ■؟‬١ ặdíl'.، V Víew ù ،L·.· |:٥ "y _ _ _ _ _ _ _ # Simulãtion ‫؛؛‬ imui.ãuon ũ Fo ‫؛‬mâỊ ^oιmaỉ ‘۵ !’‫؟؟‬١ jsJL٤=j٠i j ĩửob ÍC،0 ‫؛‬$ Help Heỉp ٥ : ‫؛‬٠ ® ٠ ١ ■ ١ · ►I ■ ١>f3Vttự ffĩrô % ĩ~ ^ r ode45 H ình 6.34 Điều khiển dùng mạng nơrôn ١^ J Neural Network Controller ^ J Neural Network Plant N.odel H ìn h 6.35 Cấu trúc mạng Bấm kép vào khối M odel Reference Control mở cửa số hình 6.35 Bâm vào nút P la n t Id en tifica tio n tạo mơ hình nơrơn đơi tượng hình 6.36 Dùng nút G en erate T in in g D a ta (Н.6.36) tạo liệu huấn luyện điều khiển Sau thời gian liệu tạo ra, bạn bâm vào A c ce p t d a ta hay R efu se d a ta Nếu chấp nhận, ta sang giai đoạn huấn luyện mơ nh (H.6.36) Sau huấn luyện mơ hình, chuyển hình 6.35 ta bấm nút G en erate tra in in g d a ta để tạo liệu huấn luyện điều khiến Sau bấm T in C o n tro ller huấn luyện điều khiển Bấm O K để đưa thông số mạng nơrôn vào S iin ulỉnk, sang giai đoạn mô 425 Đ iể u k h i ể n t h ố n g m in h ,:n n i ^ s p e - l i r ỵĩểpệộmịỳHtiíi.^ / ٠., ٠ ‫ ; ﺀئﺀؤﺀﺀ ﺀ‬/ ‫غﺀ ;ﺀا‬، ) ‫ر‬ ‫ب‬٠‫ «ﺀﺑﺐ‬٦ ĩ■'■ ■■:;'/٠ ‫ر‬ ‫'اب‬.‫ي‬: i , - V ;‫ي‬ ; ‫ ا‬.‫ل‬:‫ي‬ ‫ا‬ ' ‫ „؟ ز‬Model ReJerehoe Controi/^f? ‫ ا ﺀ ; ; 'ب د‬،‫; ﺑ ﺮ‬ ‫ ;ئ‬:‫ ذ‬٠' ‫ﺀف‬ ٠ N‫؛؟‬woĩk Á٠c٠١itec٠t«e ‫س‬ 13 Size ٠‫ ؛‬Hidden Lay» ‫ا‬ Tipí;/í5 íri٠f^Si١:٠‫؛‬vaỉ {$er;] r i r ‫؛‬n‫؛‬tn٠ Dâ‫؛‬،- ' Oulpu،« I - ‫ا‬ ị Minimum ‫ ا‬0‫لﺀا‬٧‫' ك‬١‫ﻟﻢ‬٠‫ﻻﻟﺔ‬0 (‫ ة‬00‫ ا‬I 01 r Referenc Model, ImportDa^ ': 10 ٠‫س‬ ‫;غ‬-‫?؛'ا؛‬.-‫ ■ع‬,Pert.™ ‫ا"ﻫﺲ‬ ; B ìo m t I I ‫ﺀﻳﻞ‬٠ ‫اغ‬P.٥a٢ aeleJS c ٥٠١t(٠ fe٠ ĩ f ể p Segmerìti U dể e n litic a tia n ‫؛‬Tj٠ I r:w''/4f٥j' :/v/4íỡicí> lden lfe٥ ,iart1‫{؟‬١Iỉ ‫د‬ a ‫ﻧﻢ‬:': p U‫؛‬eCureri٠ V/٠٠eigl٠،‫؛‬r Use Cun١ulaíive Training ‫ﻟ‬ - - ‫ﺴ‬ j - ‫ﺣﻪ‬ Genl^eTfainingData I ‫ﺴ‬ ‫ﺗﻊ‬٠‫ '■ اا‬: ễ ٠ ‫ةذ‬٩‫ا‬- ‫ا‬ 07 ‫ ؛‬Tíâĩr١ing Epool١‫ ؛‬Ị - ; Cô ĩfair٠١g S٥nf‫)؟‬les f i r N'1iriirnurnReieiefxeV٠li,،e Ị ‫ﺪ‬ ‫ت‬ ‫ ﻫ ﺪ ﻣﺎ‬í No ‫زؤاﺀ‬ ٠‫د‬F ۶‫؛‬1.3 ‫ ذ‬٠n ٦‫؛‬l 0‫ى‬ ‫ى‬.‫ةمﺀ‬ ‫ ةﺳﺪل‬: N o ٠Dd a^-ed — - ĩía Mdxifrtum Reierence ١٠‫ص ^اﻛﺜﻢ‬ ‫ ح‬٠ ‫ة! ى ﻻ‬ ‫ذ‬ No, Debyed Con.Ể ٢ r،\)ff٠ iaii٠o ĩ?ain‫؛‬nq‫زا‬,‫ب‬٠ ‫ذ‬ Mdxirnurri Ini.eivdVậi {5®c) - Mo ٠٥íay٠d R٠‫ »؛‬٣ ٠‫ع‬ ‫ا‬ %: ' 0‫أﺀم‬ ١ !ỉ ‫ ﺀ‬٢'٥ ệệ;l ‫ﻟ ﻨ ﻌ ﻔ‬ ‫' ﻓ ﺬ‬ ‫ث‬ ‫ل‬ ‫ﺀ‬ ‫ﺀ‬ ‫ﺖ‬ ẳm ầm ằằ& i: i5٠ a I ‫ذا»د ا‬٠١5da',‫؛‬

Ngày đăng: 17/02/2021, 15:16

Tài liệu cùng người dùng

Tài liệu liên quan