Kết luận chƣơng 3

Một phần của tài liệu thiết kế bộ điều khiển trên cơ sở mạng nơron (Trang 105 - 114)

5. Kết cấu luận văn

3.3.Kết luận chƣơng 3

Bộ điều khiển nơron cho chất lƣợng của hệ thống tốt, đảm bảo tín hiệu đầu ra của đối tƣợng bám theo đầu ra mô hình mẫu với sai lệch nhỏ 5*10-3

. Đặc điểm nổi bật của hệ hống điều khiển này là: Bộ điều khiển nơron và đối tƣợng điều khiển đều là hệ thống phi tuyến, nhƣng khi kết hợp cả bộ điều khiển và đối tƣợng lại thì đây lại là một hệ thống tuyến tính, tại vì đầu ra của hệ thống không khác với đầu ra của mô hình mẫu nhiều lắm.

Hạn chế của phƣơng pháp thiết kế bộ điều khiển nơron theo mô hình mẫu chính là khả năng huấn luyện mạng, nên việc xác định các tham số này không hề đơn giản, đòi hỏi phải huấn luyện mạng nhiều lần và khả năng tính toán, xử lý của máy tính với tốc độ cao.

CHƢƠNG 4

KẾT LUẬN VÀ KIẾN NGHỊ 4.1. Kết luận

Với ý tƣởng của đề tài là đƣa ra một lý luận chung về việc thiết kế bộ điều khiển trên cơ sở mạng nơron cho một số đối tƣợng tuyến tính và phi tuyến. Sau khi thiết kế hoàn chỉnh trong những bài toán nhận dạng và điều khiển một số đối tƣợng tuyến tính và phi tuyến cho kết quả là mô hình toán học thể hiện dƣới dạng nơron với sai lệch giữa đầu ra của đối tƣợng và đầu ra của mạng nơron rất nhỏ, cho nên mạng nơron sau khi huấn luyện có thể đƣợc sử dụng làm mô hình thay thế cho đối tƣợng trong quá trình thiết kế bộ điều khiển cũng nhƣ nghiên cứu đặc tính động học và mô phỏng đối tƣợng.

Trong luận văn này tác giả đã đƣa ra thiết kế đƣợc bộ điều khiển nơron theo mô hình mẫu cho một số đối tƣợng thực nhƣ: hệ thống xử lý nƣớc thải, cánh tay rô bốt một bậc tự do. Chất lƣợng của hệ điều khiển tốt, vì hệ thống làm việc giống nhƣ mô hình mẫu, ở đây mô hình mẫu đƣợc chọn là một hệ thống tuyến tính. Nhƣ vậy ta thấy rằng, do tính chất động học và phi tuyến của bộ điều khiển nơron đã khử đƣợc tính phi tuyến của đối tƣợng để cho hệ thống làm việc nhƣ một hệ tuyến tính, đặc điểm này đối với các phƣơng pháp điều khiển khác thì khó có thể thiết kế đƣợc bộ điều khiển nào cho chất lƣợng đƣợc nhƣ thế.

4.2. Kiến nghị

-Ứng dụng mạng nơron làm mô hình mẫu cho các đối tƣợng điều khiển phi tuyến khác trong quá trình mô phỏng và thiết kế bộ điều khiển.

-Tiếp tục nghiên cứu và ứng dụng mạng nơron để nhận dạng các đối tƣợng phi tuyến có nhiều đầu vào và nhiều đầu ra.

-Ứng dụng mạng nơron để điều khiển thích nghi đối tƣợng động học phi tuyến.

PHỤ LỤC

Một số file đƣợc sử dụng trong luận văn

1. Bhai.m

% --- Call plant from simulink --- model = 'bachai';

in_range = [1 1]; in_delay = [2 2]; layer_size = 1;

% --- Generating a step signal --- [t,p,N] = generator(in_range,[30 30],.01);

inco = [0;0];

output_range = [-inf inf];

% --- Testing plant ---

[t,P,T,N,inco] = sampling(model,output_range,t,p,N,inco); % --- Initializing a neural network model ---

net = newnet(in_range,in_delay,layer_size); % ---Training the net --- net = trainhn(net,P,T,t,N);

2. Generator.m

function [t,p,N] = generator(magnitude_range,interval_range,Ts)

%Generating a random step in amplitude and interval with given number of samples.

%function [t,p,N] = generator(amplitude_range,interval_range,Ts,Ns) % =============== Note ==================

% Magnitude_range Containing minimum and maximum values of signal % Interval_range Containing minimum and maximum intervals of signal % N is the numbers of input samples

% t is the time vector % p is the step signal % Ts is Sampling time

% ================= Main program ===================== % --- Create a random interval ---

interval = rand*(interval_range(2)-interval_range(1))+interval_range(1); % --- Create a random magnitude of signal ---

signal_value = rand*(magnitude_range(2)-magnitude_range(1)) + magnitude_range(1);

while i <= round(interval/Ts) i = i +1; p(i) = signal_value; end t = 0:Ts:(i-1)*Ts; p = row(p); N = i; 3. Sampling.m

function [t,P,T,N,inco] = sampling(model,output_range,t,p,N,inco) %This function is to test a plant with model created in simulink

% ============= The inputs of function =================== % Model is the name of plant model

% Output_range is the range of the output % t is the time vector

% p is the input signal

% N is the number of samples % Inco is iniation conditions

% ============== The outputs of function ================== % t is time vector

% P is reference input for neural model % T is target output for neural model % N is the number of samples after testing

% ================ Main program =================== T = [];

P = [];

options = simset('InitialState',inco); [t,x,y] = sim(model,t,options,[t' p']);

% --- Checking if the output is out of range --- k = 1; i = 1;

while i <= N

if (y(i)>output_range(1)) & (y(i)<output_range(2)) k = k + 1;

i = i + 1; else

i = N + 1; k = 1; end end if k > N T = row(y); P = row(p); t = row(t); inco = x(N,:)'; else N = 0; inco = inco; end T = T; P = P; t = t; N = N; inco = inco; 4. Newnet.m

function neti = newnet(in_range,in_delay,layer_size)

%This function creates a network with delayed inputs, 2 layers and an output % net = dnet(n_in,in_range,in_delay,out_range,in_layer_size)

% =========== Out arguments ============ % net Name of neural network

% =========== In arguments ============= % n_in Number of inputs

% in_range Input range

% in_delay Number of delayed times of inputs % out_range Output range

% in_layer_size size of input layer

% ============ Main program ============ % --- Structure ---

net = network; % Initial a neural network net.numInputs = 2; % Initial number of inputs net.numLayers = 1; % Initial number of layers % --- Connection ---

net.biasConnect = 0; % Initial bias connections net.inputConnect = [1 1]; net.layerConnect = 0; net.outputConnect = 1; net.targetConnect = 1; % --- Ranges --- net.inputs{1}.range = in_range;

% --- Size & transfer function --- net.layers{1}.size = layer_size;

net.layers{1}.transferFcn ='purelin'; net.layers{1}.initFcn='initnw';

% --- Delay ---

net.inputWeights{1,1}.delays = 0:in_delay(1); % Initial input delay net.inputWeights{1,2}.delays = 1:in_delay(2); % Initial input delay % --- Iniation for preparing of training ---

net.initFcn='initlay'; net.performFcn = 'mse'; net.trainFcn = 'trainlm'; net = init(net); neti = net; 5. Trainhn.m

function net = trainhn(net,P,T,t,N) net.trainParam.goal = 1e-32;

net.trainParam.epochs = 7; % Training is stopped if the maximum number of EPOCHS is reached.

net.trainParam.show = 1;

net.trainParam.mu_dec = 0.01 % Mu decrease factor net.trainParam.mu_inc = 10 % Mu increase factor net.trainParam.mu_max = 1e+50 % Maximum Mu

net.trainParam.min_grad = 1e-50 % Minimum performance gradient p = num2cell([P;T]); T = con2seq(T); net = train(net,p,T); y = sim(net,p); y = cell2mat(y); T = cell2mat(T);

figure(2) subplot(2,1,2) plot(t,y-T,'g');

title('Error of model and plant') grid on

subplot(2,1,1) plot(t,T,'k',t,P,'r');

title('Reference input and target output') grid on;

6. Phituyen 4.m

% Cac thoi diem lay mau k=0:1:500;

% Tin hieu vao u(k) u=[cos(2*pi*k/250)];

% Ham f(u(k)): ket xuat dich cua mang

f=[0.6* cos(u*pi)+0.3*cos(3*u*pi)+0.1*cos(5*u*pi)]; % Tao cau truc cho mang noron gom 3 lop

% 8 noron lop vao, 8 noron lop an va mot noron lop ra net=newff([-1 1],[8 8 1],{'tansig' 'logsig' 'purelin'}); % Luyen mang noron

net.trainparam.epochs=10000; % Cac ki ngyen luyen mang net.trainparam.goal=1e-15; % Sai so cho phep

% Luyen mang voi ket xuat dau vao u, ket xuat dich f net=train(net,u,f);

% Dua mang ve thuoc tinh thuc cua no [net,y,e]=adapt(net,u,f);

% Ve do thi figure(1) subplot(221); plot(u,y);

title('Ket xuat thuc'); grid on

subplot(222); plot(u,f);

title('Ket xuat dich'); grid on

subplot(212); plot(u,e);

title('Sai so giua mo hinh mau va doi tuong'); grid on

7. Phituyen 5.m

% Chƣơng trình đƣợc ghi trong file bai5.m –d:/work.

% Đây là chƣơng trình mô phỏng nhận dạng hệ thống theo bài toán 5. %………….. Tạo các biến làm việc………..

% Các thời điểm lấy mẫu k =0: 1: 50

% Tín hiệu vào u(k) có dạng u =sin(2*pi*k/250);

% Hàm f[u(k) hay cũng là kết xuất đích của mạng. f=0.6*sin (u*pi) +0.3* sin (3*u*pi)+ 0.1* sin (5*u* pi); % ấn một phím bất kỳ để tiếp tục

Pause

%……….. Thiết kế mạng nơron………… % NEWFF tạo một mạng nơron truyền thẳng % Tạo một mạng nơron truyền thằng có ba lớp.

% Tạo nhập có 10 nơron tansig, lớp ẩn có 10 nơron tansig, lớp ra có 1 nơron tansig.

% Giới hạn đàu vào nằm trong khoảng (-11)

net =newff (-1 1), (8 8 1) , ( tansig, tansig) (tansig) % ấn một phím bất kỳ để tiếp tục

pause

%………. Luyện mạng nơron………. % TRAIN huấn luyện mạng nơron

% Kỷ nguyên luyện mạng lớn nhất cho phép. % Sai số mục tiêu của mạng

net.trainparam.goal = 0.00001

% Luyện mạng với kết xuất đầu vào u, kết xuất đích là f. net=train (net, u , f) % ấn một phím bất kỳ để tiếp tục pause

% Sau khi kết thúc quá trình luyện mạng ta dùng và đƣa mạng về thuộc tính của nó.

% ADAPT cho phép mạng nơron tự thích nghi (net, y, e) = adapt (net, u, f)

% ấn một phím bất kỳđể tiếp tục pause

% Vẽ đồ thị biểu diễn kết xuất thực, kết xuất đích và sai số của chúng % PLOT vẽ đồ thị.

plot *u,y,u, f, y, e) % ấn một phím bất kỳ để tiếp tục pause

% Tạo lƣới trên đồ thị

grid: % ấn một phím bất kỳ để tiếp tục pause

% Hiển thị mạng sang sơ đồ simulink gensim(net)

TÀI LIỆU THAM KHẢO

[1] Nguyễn Hữu Công. Giáo trình nhận dạng hệ thống điều khiển.

[2] Nguyễn Phùng Quang. Matlab và Simulink dành cho kỹ sư điều khiển tự động. NXB Khoa học và kỹ thuật 2004.

[3] Nguyễn Quang Hoan. Ổn định mạng nơron Hopfield bậc cao và khả năng ứng dụng trong điều khiển Robot. Luận án phó tiến sĩ khoa học kỹ thuật, viện công nghệ thông tin Hà Nội, 1996.

[4] Nguyễn Quang Hoan. Một số mô hình và luật điều khiển mạng nơron dùng trong điều khiển. Hội nghị toàn quốc lần thứ nhất về tự động hoá. Hà Nội, 20-22/4/1994.

[5] Nguyễn Doãn Phƣớc, Phan Xuân Minh. Nhận dạng hệ thống điều khiển. Nhà xuất bản khoa học và kỹ thuật. Hà Nội.

[6] Nguyễn Doãn Phƣớc, Phan Xuân Minh. Hệ phi tuyến. Nhà xuất bản khoa học và kỹ thuật. Hà nội 2000.

[7] Lê Minh Trung. Giáo trình mạng nơron nhân tạo. Nhà xuất bản thống kê.1999.

[8] Phạm Văn Hƣng. Nghiên cứu ứng dụng mạng nơ-ron trong nhận dạng và điều khiển đối tượng động học phi tuyến. Luận văn thạc sỹ kỹ thuật 2010, Trƣờng đại học Kỹ thuật Công nghiệp – Thái nguyên. [9] Nguyễn Bá Việt. Ứng dụng mạng nơ-ron để nhận dạng và điều khiển

hệ thống phi tuyến. Luận văn thạc sỹ kỹ thuật 2007, Trƣờng đại học Kỹ thuật Công nghiệp – Thái nguyên.

[10] Phan Xuân Minh. Nghiên cứu ứng dụng hệ thống điều khiển khớp nối mềm.

[11] Nguyễn Doãn Phƣớc, Phan Xuân Minh. Lý thuyết điều khiển mờ.

NXB Khoa học và kỹ thuật 2002.

[12] Bùi Công Cƣờng, Nguyễn Doãn Phƣớc. Hệ mờ mạng nơron và ứng dụng. NXB Khoa học và kỹ thuật 2006.

Một phần của tài liệu thiết kế bộ điều khiển trên cơ sở mạng nơron (Trang 105 - 114)