Sei sulla pagina 1di 18

TRABAJO DE INTELIGENCIA

ADRIAN LOZANO SAMUEL CAMARILLO

PRESENTADO A: TONI JIMENEZ

UNIVERSIDAD POPULAR DEL CESAR FACULTAD TECNOLGICAS E INGENIERAS INGENIERA DE SISTEMAS 2012

INTRODUCCIN

En esta entrega a presentar se dar a conocer el funcionamiento de un sistema de nivel y control de temperatura, para poder determinar en nivel de liquido en los tanques y la temperatura de enfriamiento en el tanque 1 y calentamiento en el tanque 2. Para esto aplicaremos la lgica fuzzy, realizando un sistema de lgica difusa partiendo de la base del conocimiento y con investigaciones previas de los elementos que utilizaremos para nuestra simulacin. Por eso en esta entrega le mostraremos como es el funcionamiento total de este sistema. Para poder llegar a nuestro objetivo en esta simulacin que es mantener nuestro segundo tanque en un nivel medio y a una temperatura fra el primer tanque y una temperatura caliente en el tanque 2.

OBJETIVOS

OBJETIVO GENERAL Comprender, analizar e implementar un sistema de lgica difusa. Para un sistema de nivel.

OBJETIVOS ESPECFICOS Conocer de manera clara y concisa todo el proceso que implementan los sistemas de lgica difusa. Mantener un nivel de lquido determinado en el segundo tanque regulando el caudal del lquido entrante en el primero. Mantener el liquido del tanque 1 a una temperatura fra Mantener el liquido del tanque 2 a una temperatura caliente

PROBLEMA

Se pretende realizar un sistema de control sobre un sistema formado por dos tanques de lquido interconectado. El tipo de controlador a emplear ser lgica fuzzy. El objetivo es mantener un nivel de lquido determinado en el segundo tanque regulando el caudal del lquido entrante en el primero. la primera propuesta es mantener el nivel del tanque 2 en su zona media, esto es entre 40 y 60 se intentara afinar mas tratando de mantener este nivel entre 45 y 55. FUNCIONAMIENTO DE LA PLANTA El funcionamiento de la planta expuesta es muy simple. Una motobomba introduce lquido en el primer tanque. La cantidad de lquido se puede regular mediante la aplicacin de un voltaje. El lquido del primer tanque, que est ms elevado que el segundo, pasa al segundo tanque a travs de una electrovlvula para evacuar el lquido. En todo momento una de ellas est abierta. La diferencia entre estas dos electrovlvulas es que una de ellas permite evacuar un caudal mayor de lquido que la otra. En cada uno de los tanques existe un sensor que nos indica el nivel de lquido en cada uno de ellos. Estos niveles se tomaran como entrada al sistema. Diseo del sistema:

MODELO DE 3 CONJUNTOS

Variables de entrada: NT1 (Nivel del tanque 1) NT2 (Nivel del tanque 2) T1 (temperatura del tanque 1) T2 (temperatura del tanque 2) Variables de salida: F1 (flujo de entrada del taque 1) F2 (flujo de salida del tanque 2) VM1 (velocidad del motor 1) VM2 (velocidad del motor 2) Universo del discurso NT1: [0 1000] litros. NT2: [0 1000] litros. T1: [0-30] centgrados T2: [30-70] centgrados F1: [0 200] litros/segundo. F2: [0-100] litros/segundo.

Definicin de variables lingsticas NT1:

BAJO [0-250]

MEDIO [250-750]

ALTO [750-1000]

NT2: BAJO [0-250] F1: BAJO MEDIO ALTO MEDIO [250-750] ALTO [750-1000]

[0-50] F2: BAJO [0-25]

[50-150]

[150-200]

MEDIO [25-75]

ALTO [75-100]

T1: BAJO [0-7.5] MEDIO [7.5-22.5] ALTO [22.5-30]

T2: BAJO [30-40] VM1: BAJO [0-250] VM2: BAJO [0-250] MEDIO [250-750] ALTO [750-1000] MEDIO [250-750] ALTO [750-1000] MEDIO [40-60] ALTO [60-70]

Definimos de los conjuntos difusos: NT1:

NT2:

F1:

Definimos nuestras premisas: Si el NT1 es bajo y el NT2 es bajo entonces el F1 es alto y F2 es bajo. Si el NT1 es bajo y el NT2 es medio entonces el F1 es alto y F2 es medio. Si el NT1 es bajo y el NT2 es alto entonces el F1 es alto y F2 es alto. Si el NT1 es medio y el NT2 es bajo entonces el F1 medio y F2 es bajo. Si el NT1 es medio y el NT2 es medio entonces el F1 es medio y F2 es medio. Si el NT1 es medio y el NT2 es alto entonces el F1 es medio y F2 es alto. Si el NT1 es alto y el NT2 es bajo entonces el F1 es bajo y F2 es bajo. Si el NT1 es alto y el NT2 es medio entonces el F1 es bajo y F2 es medio. Si el NT1 es alto y el NT2 es alto entonces el F1 es bajo y F2 es alto.

MODELO DE 5 CONJUNTOS NT1: MUY BAJO [0 999] BAJO [1000 2999] ESTABLE [3000 4999] MEDIO [5000 6999] ALTO [7000 8999] MUY ALTO [9000 10000]

NT2: MUY BAJO [0 999] BAJO [1000 2999] ESTABLE [3000 4999] MEDIO [5000 6999] ALTO [7000 8999] MUY ALTO [9000 10000]

F1: MUY BAJO [025] F2: MUY BAJO [012] BAJO [12-35] MEDIO [35-59] ALTO [59-88] MUY ALTO [88100] BAJO [25-75] MEDIO [75-125] ALTO [125-175] MUY ALTO [175200]

NT1:

NT2:

F1:

F2:

Definimos nuestras premisas: Si NT1 es muy bajo y NT2 es muy bajo entonces F1 es muy alto y F2 es muy bajo Si NT1 es muy bajo y NT2 es bajo entonces F1 es alto F1 es muy alto y F2 es bajo Si NT1 es muy bajo y NT2 es medio entonces F1 es alto F1 es muy alto y F2 es medio Si NT1 es muy bajo y NT2 es alto entonces F1 es medio F1 es muy alto y F2 es alto Si NT1 es muy bajo y NT2 es muy alto entonces F1 es medio F1 es muy alto y F2 es muy alto

Si NT1 es bajo y NT2 es muy bajo entonces F1 es alto y F2 es muy bajo Si NT1 es bajo y NT2 es bajo entonces F1 es alto y F2 es bajo Si NT1 es bajo y NT2 es medio entonces F1 es alto y F2 es medio Si NT1 es bajo y NT2 es alto entonces F1 es alto y F2 es alto Si NT1 es bajo y NT2 es muy alto entonces F1 es alto y F2 es muy alto

Si NT1 es medio y NT2 es muy bajo entonces F1 es medio y F2 es muy bajo Si NT1 es medio y NT2 es bajo entonces F1 es medio y F2 es bajo

Si NT1 es medio y NT2 es medio entonces F1 es medio y F2 es medio Si NT1 es medio y NT2 es alto entonces F1 es medio y F2 es alto Si NT1 es medio y NT2 es muy alto entonces F1 es medio y F2 es muy alto

Si NT1 es alto y NT2 es muy bajo entonces F1 es bajo F2 es muy bajo Si NT1 es alto y NT2 es bajo entonces F1 es bajo F2 es bajo Si NT1 es alto y NT2 es medio entonces F1 es bajo F2 es medio Si NT1 es alto y NT2 es alto entonces F1 es bajo F2 es alto Si NT1 es alto y NT2 es muy alto entonces F1 es bajo F2 es muy alto

Si NT1 es muy alto y NT2 es muy bajo entonces F1 es muy bajo F2 es muy bajo Si NT1 es muy alto y NT2 es bajo entonces F1 es muy bajo F2 es bajo Si NT1 es muy alto y NT2 es medio entonces F1 es muy bajo F2 es medio Si NT1 es muy alto y NT2 es alto entonces F1 es muy bajo F2 es bajo Si NT1 es muy alto y NT2 es muy alto entonces F1 es muy bajo F2 es muy bajo
CODIGO INICIAR:

Public Sub ejecutar_simulacion() Dim tanque_medio As Single tanque_medio = capacidadmax_tanques_3 / 2 If caudal_t1_3 < tanque_medio Then If caudal_t2_3 < mitad Then bajo_bajo3() End If If caudal_t2_3 = mitad Then bajo_medio3() End If If caudal_t2_3 > mitad Then bajo_lleno3() End If End If

If caudal_t1_3 = tanque_medio Then If caudal_t2_3 < mitad Then medio_bajo3() End If If caudal_t2_3 = mitad Then medio_medio3() End If If caudal_t2_3 > mitad Then medio_lleno3() End If End If If caudal_t1_3 > tanque_medio Then If caudal_t2_3 < mitad Then lleno_bajo3() End If If caudal_t2_3 = mitad Then lleno_medio3() End If If caudal_t2_3 > mitad Then lleno_lleno3() End If End If End Sub TEMPERATURA Public Sub temperaturas_motores() If rango_temp_1_3 = "2-5" Then If validador = 0 Then If temperatura_t1_inicial >= 0 Then If temperatura_t1_inicial <= 7.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 1 Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial > 7.5 Then

If temperatura_t1_inicial < 22.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2 Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial >= 22.5 Then If temperatura_t1_inicial <= 30 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2 Form2.Label4.Text = temperatura_t1_inicial End If End If End If If temperatura_t1_inicial >= 2 Then If temperatura_t1_inicial <= 5 Then temperatura_t1_inicial = Aleatorio(2, 5) velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 Form2.Label4.Text = temperatura_t1_inicial validador = 1 End If End If End If If rango_temp_1_3 = "6-9" Then If validador = 0 Then If temperatura_t1_inicial >= 0 Then If temperatura_t1_inicial <= 7.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 1 Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial > 7.5 Then If temperatura_t1_inicial < 22.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30

Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2 Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial >= 22.5 Then If temperatura_t1_inicial <= 30 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2 Form2.Label4.Text = temperatura_t1_inicial End If End If End If If temperatura_t1_inicial >= 6 Then If temperatura_t1_inicial <= 9 Then temperatura_t1_inicial = Aleatorio(6, 9) velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 Form2.Label4.Text = temperatura_t1_inicial validador = 1 End If End If End If If rango_temp_1_3 = "10-13" Then If validador = 0 Then If temperatura_t1_inicial >= 0 Then If temperatura_t1_inicial <= 7.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 1 Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial > 7.5 Then If temperatura_t1_inicial < 22.5 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2

Form2.Label4.Text = temperatura_t1_inicial End If End If If temperatura_t1_inicial >= 22.5 Then If temperatura_t1_inicial <= 30 Then velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 temperatura_t1_inicial = temperatura_t1_inicial - 2 Form2.Label4.Text = temperatura_t1_inicial End If End If End If If temperatura_t1_inicial >= 10 Then If temperatura_t1_inicial <= 13 Then temperatura_t1_inicial = Aleatorio(10, 13) velocidad_m1 = (temperatura_t1_inicial * 1000) / 30 Form2.Label2.Text = velocidad_m1 Form2.Label4.Text = temperatura_t1_inicial validador = 1 End If End If End If CODIGO DE LAS GRAFICAS Y EL TIEMPO Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If numero_conjuntos_3 = 3 Then ejecutar_simulacion() Chart1.Series(0).Points.Clear() Chart1.Series(0).Points.Add(caudal_t1_3) Chart2.Series(0).Points.Clear() Chart2.Series(0).Points.Add(caudal_t2_3) Chart3.Series(0).Points.Add(caudal_t2_3) Chart4.Series(0).Points.Add(temperatura_t1_inicial) Chart5.Series(0).Points.Add(temperatura_t2_inicial)

temperaturas_motores() Label7.Text = caudal_t1_3

Label8.Text = caudal_t2_3 End If TextBox1.Text = TextBox1.Text + 1 End Sub

PANTALLA 1

Potrebbero piacerti anche