Kết luận chương 3

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mạng nơ ron trong nhận dạng và điều khiển (Trang 87 - 94)

Trong phần này, phương pháp LM dựa trên thuật toán lan truyển ngược được sử dụng để huấn luyện mạng nơ-ron cho đối tượng. Sau khi huấn luyện mạng nơ- ron, thu được bộ tham số tối ưu của mạng. Quan hệ vào ra của mạng là phi tuyến,

58

do đó nếu dùng mô hình mạng này để thiết kế bộ điều khiển dự báo sẽ gặp khó khăn. Cho nên, mạng nơ-ron đã được tuyến tính hóa xung quanh điểm làm việc hiện tại, hàm mục tiêu có dạng bậc hai, một công thức tổng quát tìm nghiệm tối ưu đã được xây dựng. Để kiểm chứng, chương trình mô phỏng và tính toán tín hiệu điều khiển tối ưu đã được viết. Kết quả thu được thể hiện tính đúng đắn của thuật toán và khả thi trong thực tế.

59

KẾT LUẬN- KIẾN NGHỊ

Luận văn “Ứng dụng mạng nơ-ron trong nhận dạng và điều khiển” đã ra những kết luận và kiến nghị như sau:

• Kết luận:

+Đã nghiên cứu các phương pháp điều khiển dựa trên cơ sở mạng nơ-ron.

+ Đã tìm hiểu và nghiên cứu phương pháp điều khiển dự báo MPC dựa trên mạng nơ-ron.

+Đã tiến hành mô phỏng và kiểm chứng cho cánh tay máy trong Matlab.

+Đã viết chương trình, nhận dạng dùng mạng nơ-ron, tuyến tính hóa mạng nơ-ron và tìm tín hiệu điều khiển tối ưu cho MPC.

• Kiến nghị:

+ Tiếp tục nghiên cứu bài toán MPC sử dụng mạng nơ-ron có đầu vào ràng buộc và sử dụng mô hình phi tuyến.

+Luận văn còn một số hạn chế: mới dừng lại ở mô phỏng cho hệ thống một vào một ra.

60

TÀI LIỆU THAM KHẢO

[1] Martin T. Hagan, Howard B. Demuth, Mark H. Beale, Orlando De

Jesus, "Neural Network Design," Ebook.

[2] Nguyễn Doãn Phước, “Tối ưu hóa trong điều khiển và điều khiển tối ưu”, Nhà xuất bản Bách Khoa Hà Nội, ngày 28 tháng 09 năm 2016.

[3] Nguyễn Hoài Nam, “Bài giảng Điều khiển mờ và mạng nơ-ron”.

[4] Trần Việt Dũng, Trần Xuân Hiên, Nguyễn Xuân Thảo, ‘’Toán học cao

cấp”, tập 2, Giải tích, Nhà xuất bản Giáo dục, năm 2005.

[5] Nørgård, Peter Magnus; Sørensen, Paul Haase; Poulsen, Niels Kjølstad; Ravn, Ole; Hansen, Lars Kai, “Intelligent predictive Control of Nonlienar Processes Using”. Proceedings of the 1996 IEEE International Symposium on Intelligent Control.

[6] Nguyễn Mạnh Tiến, “Điều khiển Robot công nghiệp”, Nhà xuất bản

Khoa học và Kỹ thuật, tháng 5 năm 2007.

[7] GS.TS.Nguyễn Doãn Phước, “Lý thuyết điều khiển tuyến tính”, Nhà

xuất bản Khoa học và Kỹ thuật, năm 2009.

[8] https://atyschool.vn/sinh-hoc-8-noron-te-bao-than-kinh/.

61

PHỤ LỤC Chương trình code điều khiển

• Chương trình tạo tín hiệu đàu vào mẫu:

tmin = .1; tmax = 1; umin = -10; umax = 10;

Ts = 0.01; % Sampling time

t_desired = 50000; % number of samples

data_length = 0;

t_data = 0; % store time

ref_data = rand*umax; % store reference input

while data_length < t_desired

a = tmin + rand*(tmax-tmin); b = umin + rand*(umax-umin); t = [data_length+Ts data_length+a]; t_data = [t_data t]; ref_data = [ref_data b b]; data_length = data_length + a; end reference_input = [t_data;ref_data]'; plot(t_data,ref_data) grid on xlabel('Giây') ylabel('p')

• Chương trình tạo mạng và huấn luyện mạng nơ-ron cho đối tượng NNp:

net=narxnet(1:2,1:2,6); %view(net); net.trainFcn='trainlm'; net.performFcn='mse'; net.trainParam.goal=1e-5; net.trainParam.epochs=1000; %net.trainParam.min_grad=1e- 10; net.trainParam.time=inf; % net.trainParam.sigma=5e-5; % net.trainParam.lambda=5e-10; 62 download by : skknchat@gmail.com

net.trainParam.max_fail=10000; T1 = t1(:,1); x=num2cell(R1'); t=num2cell(T1'); [xs,xi,ai,ts]=preparets(net,x,{},t); [net,tr]=train(net,xs,ts,xi,ai); y=net(xs,xi,ai); y=cell2mat(y); figure(1) n=length(xs); ti=1:n; y1=cell2mat(ts); subplot(2,1,1) plot(ti,y,'r-.',ti,y1,'b') legend('y','t') grid on subplot(2,1,2) plot(ti,y-y1,'r') grid on

legend('Sai so') figure(2) semilogx(tr.perf) grid on title('MSE') • Chương trình sử dụng MPC load chinh_net; yd = 0.7*[1 1]'; v0 = [0 0 0 0]';

%v0=[y(t-1) y(t-2) u(t-1) u(t-2)]'

t = 0; yra = 0; u = 0; ro = .05; Tm = 0.01; yt = 0; y0 = [0;0]; global utemp; de = zeros(2,1); yt = 0; sp = 0; for k = Tm:4500 63 download by : skknchat@gmail.com

if k > 1500 yd = -0.5*[1 1]'; end if k > 3000 yd = 0.4*[1 1]'; end sp = [sp yd(1)]; t=[t k]; % yd = md + 0.02*de;

%Tinh toan thong so cua mo hinh mang Noron dung de du bao

n1 = net.iw{1,1}*v0([3 4],:) + net.iw{1,2}*v0([1 2],:) + net.b{1};

%dau vao net 1

a1 = tanh(n1); %dau ra lop 1

a2 = net.lw{2,1}*a1+net.b{2}; %dau ra lop 2

%Xap xi y(t) = A1*y(t-1) + A2*y(t-2) + B1*u(t-1) + B2*u(t-2) + e(t');

%Ky hieu t' khac t cho thay no khac voi t, no la thoi diem dang xet, con t la bien thoi gian;

A1=net.iw{1,2}(:,1)'*diag(1-(tanh(n1)).^2)*(net.lw{2,1})'; A2=net.iw{1,2}(:,2)'*diag(1-(tanh(n1)).^2)*(net.lw{2,1})'; B1=net.iw{1,1}(:,1)'*diag(1-(tanh(n1)).^2)*(net.lw{2,1})'; B2=net.iw{1,1}(:,2)'*diag(1-(tanh(n1)).^2)*(net.lw{2,1})';

et = a2 - A1*v0(1) - A2*v0(2) - B1*v0(3) - B2*v0(4); %et o day chinh la nh e(t') o chu thich tren

A = [B1^2+(A1*B1+B2)^2+2*ro B1*(A1*B1+B2) 0; B1*(A1*B1+B2) B1^2+2*ro -ro; 0 -ro ro];

K1 = 2*B1*(et+A1*yt+A2*v0(1)+B2*v0(3)) + 2*((A1+1)*et+ (A1^2+A2)*yt+A1*A2*v0(1)+A1*B2*v0(3))*(A1*B1+B2)- 2*yd(2)*(A1*B1+B2)-2*yd(1)*B1-2*ro*v0(3);

K2 = 2*(A1+1)*et + (A1^2+A2)*yt+A1*A2*v0(1) + A1*B2*v0(3)*B1 - 2*yd(2)*B1;

B = [K1;K2;0];

%Cuc tieu hoa ham muc tieu dang toan phuong

ut=-inv(A)*B;

64

u=[u ut(1)];

utemp=ut(1);

[ttemp,ytemp] = ode45(@(ttemp,ytemp) canhtaymay(ttemp,ytemp),[0 0.01],y0);

y0 = ytemp(end,:)';

yt=ytemp(end,1);

yra=[yra yt];

%Cap nhat vecto trang thai ban dau cho vong lap sau

v01 = [yt v0(1) ut(1) v0(3)]';

%yt = y(t) v0(1)=y(t-1) ut(1)=u(t) v0(3)=u(t-1)

v0 = v01;

end

n = length(u); ts = 0:Tm:(n-1)*Tm; figure(1)

plot(ts,u); legend('u'); grid on; xlabel('Giây')

ylabel('u') figure(2)

plot(ts,yra,'b',ts,sp,'r-.'); legend('y','r'); grid on; xlabel('Giây')

ylabel('y')

65

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mạng nơ ron trong nhận dạng và điều khiển (Trang 87 - 94)