Está en la página 1de 5

“Año del Bicentenario del Perú: 200 años de Independencia”

“Universidad Nacional de Cajamarca”

Escuela académico-profesional de Ingeniería de Sistemas

DOCENTE: Romero Zegarra, Fidel Oswaldo

ALUMNO: Mendoza Cotrina, Jhamil Saúl

CURSO: Sistemas inteligentes

CICLO: IX - Quinto año académico

TEMA: Tarea modificación controlador difuso


**Modificar** los valores linguisticos considerando solo tres conju
ntos difusos y cambiar las funciones de memebresía. Evaluar el comp
ortamiento del controlador

#1. DEFINIR UNIVERSO DISCURSO


x=np.linspace(-30,30,100)#Error de posicion
y=np.linspace(-15,15,100)#voltaje de error

#2. Establecer funciones de memebresia


A1=[sigmf,[-20,-10,-5]]#Error negativo grande
A2=[sigmf,[-10,-5,0]]#Error Negativo Pequeño
A3=[sigmf,[-5,0,5]]#Error Cero

B1=[sigmf,[-12,-6,-3]]#Voltaje Negativo Pequeño


B2=[sigmf,[-6,-3,0]]#Voltaje Negativo Pequeño
B3=[sigmf,[-3,0,3]]#Voltaje Cero

#Reglas de Control 'Si x es A entonces y es B'


A=[A1,A2,A3]
B=[B1,B2,B3]

t_actual=0
t_final=1
dt=0.001

pos_actual=0
pos_deseada=5
vmotor=0

t=[t_actual]*2
pos=[pos_actual]*2

while True:
pos_actual=simular(vmotor,pos,dt)
e=pos_deseada-pos_actual

Bp=fuzz(e,y,A,B)

vmotor=defuzz(y,Bp,'centroid')

t.append(t_actual)
pos.append(pos_actual)
t_actual+=dt

if t_actual>=t_final: break
print('Error',e)

plt.plot(t,pos)
plt.show()

También podría gustarte