• No se han encontrado resultados

Reguladores Proporcional (P) e Proporcional-Integral (PI)

tativo Predictivo baseado en modelo inverso . . . 148 10.3 Script para os exemplos de simulaci ´on co regulador PID . . . 154 10.4 Axuste emp´ırico de regulador PID. M ´etodo Relay Feedback . . . 155 10.5 Regulador PID Gain Scheduling . . . 157 10.5.1 Base de datos . . . 160 10.6 Regulador PID autoaxustable . . . 161 10.6.1 Algoritmo RLS . . . 164 10.7 Controlador adaptativo preditivo baseado en modelo inverso . . . 165 10.7.1 Funci ´ons necesarias para o funcionamento do preditor neuronal . . . 170 10.7.1.1 CalculosTrain.m . . . 170 10.7.1.2 d1logsig m.m . . . 171 10.7.1.3 d1purelin m.m . . . 171 10.7.1.4 dlogsig m.m . . . 172 10.7.1.5 dpurelin m.m . . . 172 10.7.1.6 ErrorChecking.m . . . 173 10.7.1.7 ilogsig m.m . . . 177 10.7.1.8 ipurelin m.m . . . 177 10.7.1.9 kfoldcross.m . . . 178 10.7.1.10 logsig m.m . . . 179 10.7.1.11 MiniBatches.m . . . 180 10.7.1.12 netinit.m . . . 180 10.7.1.13 nnopt2b.m . . . 182 10.7.1.14 nnsimul.m . . . 185 10.7.1.15 purelin m.m . . . 186 10.7.1.16 sbllm OnLINE.m . . . 187 10.7.1.17 Sensitivities2.m . . . 197 10.7.1.18 setfunctions.m . . . 198

10.7.1.19 setsbllmdefaults.m . . . 199 10.8 Script que engloba as tres t ´ecnicas de control . . . 201

Cap´ıtulo 9

Documentaci ´on de partida

ASIGNACIÓN DE TRABAJO FIN DE GRADO

En virtud de la solicitud efectuada por: En virtud da solicitude efectuada por:

APELLIDOS, NOMBRE: Romero Montero,Alejandro

APELIDOS E NOME:

DNI: Fecha de Solicitud: FEB2015

DNI: Fecha de Solicitude:

Alumno de esta escuela en la titulación de Grado en Ingeniería en Electrónica Industrial y Automática, se le comunica que la Comisión de Proyectos ha decidido asignarle el siguiente Trabajo Fin de Grado:

O alumno de esta escola na titulación de Grado en Enxeñería en Electrónica Industrial e Automática, comunícaselle que a Comisión de Proxectos ha decidido asignarlle o seguinte Traballo Fin de Grado:

Título T.F.G:Análisis comparativo de técnicas de control sobre planta de laboratorio de control de

nivel

Número TFG: 770G01A96

TUTOR:(Titor) Fontenla Romero,Oscar

COTUTOR/CODIRECTOR: Vicente Suárez Peñaranda

La descripción y objetivos del Trabajo son los que figuran en el reverso de este documento:

A descrición e obxectivos do proxecto son os que figuran no reverso deste documento.

Ferrol a Miercoles, 17 de Junio del 2015

Retirei o meu Traballo Fin de Grado o dia _____ de ______ do ano ___________

Alcance:

- Estudio de las diferentes técnicas de control que se emplearán en el análisis comparativo, contemplando al menos las siguientes:

* PID ? Gain Scheduling * PID Adaptativo

* Control adaptativo basado en modelo inverso

- NOTA: Se proporcionará el material para la implementación.

- Simulación de las diferentes técnicas sobre funciones de transferencia significativas, con el objetivo de verificar su comportamiento.

- Implementación de los controles sobre la planta real.

- Pruebas y validación de la propuesta sobre la planta de laboratorio.

- Estudio comparativo del rendimiento de las diferentes alternativas contempladas. - Análisis de resultados y extracción de conclusiones.

9.2.

Software para o control da tarxeta NI USB-6008 con Matlab

Util´ızanse basicamente 4 funci ´ons para o control da tarxeta, as cales serven para configu- rar, ler, escribir e desconfigurar. Pres ´entanse a continuaci ´on as funci ´ons mencionadas.

9.2.1. DAQ Start.m

Esta funci ´on serve para configurar a tarxeta, desta forma dispo ˜nerase dunha canle de en- trada (AI0) e d ´uas de sa´ıda (AO0 e AO1). Todas as canles se configuran da mesma forma porque, malia que a tarxeta s ´o pode xerar sinais de 0 a 5 V, disp ´on dun circu´ıto acondicionador para amplificar o sinal de 0 a 10 V. Desta forma, a tarxeta traballar ´a con sinais,tanto de entrada como de sa´ıda, de 0 a 10 V e o programa recibir ´a e enviar ´a sinais do 0 ao 100 %.

function []=DAQ Start()

% This function configures the DAQ input and output

global AI

global AO

Device=daqhwinfo('nidaq'); % Find the desired device

ID=Device.InstalledBoardIds{1}; % Select the correct device from a list

AI=analoginput('nidaq',ID); % Inicialized of the input channel

AO=analogoutput('nidaq',ID); % Inicialized of the output channel

Input channel=addchannel(AI,0); % Configure input channel (AI0)

Input channel.InputRange=[10 10]; % Voltage input range

Input channel.UnitsRange=[100 100]; % Internal input range

Input channel.Units=' %'; % Internal units for input

Output channel=addchannel(AO,[0 1]); % Configure output channel [AO0 AO1]

Output channel.OutputRange=[0 5]; % Voltage output range

Output channel.UnitsRange=[0 100]; % Internal output range

Output channel.Units=' %'; % Internal units for output

end

9.2.2. DAQ Read.m

Con esta funci ´on pode lerse o dato presente na canle de entrada, estando este sempre no rango de 0 a 100 %.O emprego da mesma ser´ıa da forma: “Input 0 = DAQ Read ()”.

function [Input data]=DAQ Read()

global AI

Input data=getsample(AI);

end

9.2.3. DAQ Write.m

Esta funci ´on serve para o env´ıo dos datos ´a tarxeta de adquisici ´on. Estes datos deber ´an estar sempre no rango de 0 a 100 % e o emprego da funci ´on ser´ıa da forma que segue: “DAQ Write (Output 0, Output 1)”.

function []=DAQ Write(Output data 0,Output data 1)

% This function write de desired value in the configured DAQ output

global AO

% Ensure that the value is inside the operation range

if Output data 0>100 Output data 0=100;

elseif Output data 0<0 Output data 0=0;

end

if Output data 1>100 Output data 1=100;

elseif Output data 1<0 Output data 1=0;

end

putsample(AO,[Output data 0 Output data 1]);

end

9.2.4. DAQ Stop.m

Coa derradeira das funci ´ons o que se fai ´e liberar as canles de entrada e sa´ıda da DAQ, as´ı como o reseteo dos sinais xerados a 0 V.

function [] = DAQ Stop()

% This function is used to finaliced the uses of the DAQ

global AI

global AO

stop(AI); delete(AI);

% Clear the output channel

putsample(AO,[0 0]); % Ensure the output channel is resetted

stop(AO); delete(AO);

Cap´ıtulo 10

C ´odigo fonte Matlab

No presente anexo rec ´ollense os diferentes scripts utilizados para realizar este traballo. Incl ´uense tanto os c ´odigos finais correspondentes a cada unha das t ´ecnicas de control estu- dadas, como os scripts utilizados para a toma de contacto coa planta (reguladores P e PI), os exemplos de simulaci ´on ou o empregado para o axuste emp´ırico do regulador PID.

Nas figuras 10.0.4.1 e 10.0.4.2 pres ´entanse uns diagramas de fluxo que permiten ver de forma clara o esquema xeral de funcionamento de cada un dos controladores dese ˜nados.

Figura 10.0.4.2 –Detalle do bloque ‘CONTROLADOR’

10.1.

Reguladores Proporcional (P) e Proporcional-Integral (PI)

No seguinte c ´odigo at ´opanse recollidos os reguladores proporcional e proporcional-integral feitos nun primeiro momento durante a fase de toma de contacto coa planta.

%% Reguladores Proporcional e ProporcionalIntegral %% INICIALIZACI´ON E CONFIGURACI´ON

% Inicializar DAQ

DAQ Start; n=180;

% Consigna e constante proporcional regulador

SP=70; k=1;

% Inicializaci´on dos valores de sa´ıda

Output 0=0; % Control Bomba

Output 1=0; % V´alvula

% Inicializaci´on dos vectores para gardar datos

OUTPUT 0=zeros(1,n); INPUT=zeros(1,n); EP=zeros(1,n);

pause on % Habilitar as pausas

figure

for i=1:n

%% LECTURA

%% CONTROL ep=(SPInput) % S´o proporcional % Output 0=ep*k % ProporcionalIntegral if i==1 Output 0=ep*k; else

Output 0=epEP(i1)*0.97+OUTPUT 0(i1);

end

%% ESCRITURA

DAQ Write(Output 0,Output 1) % Xerar as sa´ıdas %% OUTROS

OUTPUT 0(i)=Output 0; INPUT(i)=Input; EP(i)=ep;

% Tempo de mostaxe de aproximadamente 1 segundo

pause(1)

% Visualizaci´on de datos

plot(1:n,INPUT,'k',1:n,EP,'r',1:n,SP,'b:')

legend('NIVEL PLANTA','ERRO','Consigna','Location','BestOutside') xlabel('Tempo(s)');

ylabel('Nivel ( %)');

% Paro a trav´es de teclado

key=get(gcf,'currentcharacter') if key=='q' break end end; %% DESCONFIGURACI´ON

pause off % Desactivar pausas

10.2.

Script para os exemplos de simulaci ´on co PID Adaptativo