1 Nociones Matlab-Simulink
1 Nociones Matlab-Simulink
1 Nociones Matlab-Simulink
FUNDAMENTOS DE CONTROL L1
Clave(6997)
Apellidos y nombres:
Responde las preguntas correctamente tomando en Responde parcialmente las preguntas No responde el
4. Realiza el cuestionario y actividades de cuenta la información proporcionada en el fundamento o las respuestas no son precisas y cuestionario y no realiza
investigación teórico y realiza las actividades de investigación realiza las actividades de investigación las actividades de
correctamente apoyados en la literatura citada inadecuadamente investigación
Las conclusiones generadas son
Reflexiona sobre las actividades, demuestra
únicamente un recuento de lo realizado No genera conclusiones y
5. Genera conclusiones o evaluación pensamiento crı́tico en el desarrollo guı́a y aporta con
en la guı́a sin generar ninguna observaciones
recomendaciones sobre las actividades
observación
ATRIBUTOS DEL EGRESADO A LOS QUE CONTRIBUYE LA GUÍA DE CLASE NIVEL
Calificación
A1. Identificar, formular y resolver problemas de ingenierı́a aplicando los principios de las ciencias básicas e ingenierı́a. Intermerdio
A2. Aplicar, analizar y sintetizar procesos de diseño de ingenierı́a que resulten en proyectos que cumplen las necesidades especificadas. Avanzado
A3. Desarrollar y conducir experimentación adecuada; analizar e interpretar datos y utilizar el jucio ingenieril para establecer conclusiones. Avanzado
CONTROL DE MODIFICACIONES
Rev Descripción Elaborado por Revisado por Fecha
0 Primera versión Ing. Benjamı́n Ramı́rez Dr. Paul Rolando Maya Or- 08/02/2018
Hernández tiz
' $
Clave(6997) Página 1 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
I. Objetivos generales L1
1. Al finalizar la práctica el estudiante utilizará los comandos básicos de MATLAB para el manejo de funciones de trans-
ferencia, para graficar funciones ası́ como para el análisis de sistemas de control.
2. Iniciar al alumno en el manejo y uso de “SIMULINK ” como una herramienta de MATLAB y que sirva para el análisis
de sistemas dinámicos.
II. Recursos
1. Computadora Dual Core 1.6 Ghz, 4GB RAM.
2. Software MATLAB versión 2007a.
Apellidos y nombres:
IV.1. Actividad 1
IV.1.1. Introducción
Matlab es una herramienta de simulación y cálculo matemático de tipo numérico (básicamente matricial) que puede
utilizarse para resolver modelos que representan sistemas dinámicos. La capacidad de cálculo de Matlab se basa en sus
múltiples funciones (comandos). En esta práctica se mostrará la utilidad de algunas de ellas. Al abrir Matlab hay tres
pantallas aparece una pantalla con tres ventanas: La primera ventana de la izquierda, es la ventana de arranque (launch
pad ) en donde se localizan todos los directorios y demos. La segunda ventana a la izquierda, donde se lleva un registro de
los comandos que se han ejecutado, ası́ como de las variables y parámetros utilizados, ventana de historia de comandos
(command history). La tercera ventana a la derecha, la ventana de comandos ( command window ) se considera la ventana
principal y es precisamente donde se declaran las variables y comandos de un programa y donde se ubica el sı́mbolo ”))”,
como se muestra en la Figura 1.
El indicador o Prompt representado por el sı́mbolo ”))” en la ventana de comandos indica que MATLAB está en espera
de que se introduzca un comando, una variable o la asignación de un parámetro. Para salir de MATLAB cuando sea perti-
nente use los comandos quit o exit.
L1
Las variables generadas durante una sesión se van almacenando en el ”espacio de trabajo” del propio programa. Si se
saliera de éste sin salvarlas previamente las variables se perderı́an. Para guardarlas se utiliza el comando ”save + nombre-
archivo”. Por ejemplo:
)) save prac00
MATLAB automáticamente agrega la extensión *.mat. Para recuperar los resultados de una sesión anterior se teclea el
comando:
)) load prac00
y coloca su contenido en el ”espacio de trabajo”. Para consultar el contenido del ”espacio de trabajo” se teclea el
comando:
)) who (”whos” proporciona información adicional a cada variable)
)) clear variable 1
Si sólo se teclea )) clear se borrarı́an todas las variables existentes. Para consultar los archivos que están contenidos en
el ”directorio de trabajo” desde el cual se inicia la sesión de MATLAB ( c:>matlab trabajo ) se usa el comando:
)) dir
& %
' $
Clave(6997) Página 3 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
IV.2. Actividad 2 L1
IV.2.1. IV.2 Estructura de los Datos en MatLab
INGRESO DE DATOS
La forma de ingresar los datos, puede ser de alguno de los tipos siguientes: Un escalar, un vector o una matriz.
DEFINICIÓN DE UN ESCALAR
Un sólo dato, por ejemplo
A = 8.7
DEFINICIÓN DE UN VECTOR
Si una matriz tiene una sola renglón (escribiendo los caracteres separados por comas o espacios) o una sola columna
(escribiendo los caracteres separados por punto y coma), entonces se ingresó un vector; conocidos como un vector renglón
o un vector columna.
B = 12.56 36.47
MATRIZ
El tamaño de una matriz se especifica por el número de renglones y de columnas; ası́, es una matriz de 3 × 3. Un dato de
una matriz se puede identificar por los subı́ndices; ası́ W13 representa el dato 90 de la matriz W , si una matriz contiene m
renglones y n columnas, entonces contiene un total de m × n valores; ası́ W , es una matriz de tamaño 3 × 3.
1 34 90
W = 59 12 67
22 −9 37
ESTILO
MATLAB es sensible a la diferencia entre mayúsculas y minúsculas, ası́ que los nombres ”Dato, DATO y dato” representan
tres variables distintas.
EJEMPLO
H = −2, 0, −3, 4, −3, −4, 5, 0, 0, 2, 1, 1, 1, 3, 4, −0.2 ;
Que también se puede escribir como:
H = [−2, 0, −3, 4, −3, −4, ...
5, 0, 0, 2, 1, 1, 1, 3, 4, −0.2]
MATLAB también permite usar una matriz que ya se definió:
EJEMPLO
B = 1.5, 4.1
& %
' $
Clave(6997) Página 4 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
L1
D = −4, B
este comando arroja
D = −4, 1.5, 4.1
También podemos modificar los valores de una matriz o agregar valores adicionales usando una referencia a un lugar
especı́fico.
EJEMPLO
D(3) = 6 ;Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como:
D = −4, 1.5, 6
n=1:10 ,Este operador es especialmente útil para generar los ı́ndices de tiempo de una señal en tiempo discreto.
También se usa el operador dos puntos para separar tres números, el operador de dos puntos generará valores entre el
primer número y el tercero, usando el segundo número como incremento:
t=0.0:0.5:6.0 , Este operador es especialmente útil para generar los ı́ndices de tiempo continuo o un dominio de una
función analógica
& %
' $
Clave(6997) Página 5 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
La suma de un escalar a un vector o matriz sólo añade el escalar a cada elemento del vector o matriz la resta se define
de manera similar: a − b
Los vectores y matrices se suman (o restan) como lo hacemos en matemáticas, esto es, los dos vectores o matrices deben
tener la misma forma para sumarse o restarse a menos que uno de ellos sea un matriz de 1 ∗ 1, un escalar, como lo vimos
antes : b + c, c − b
Los vectores y las matrices se multiplican de acuerdo a las reglas del álgebra matricial: b ∗ c
Este resultado ilustra un error común en Matlab. Las matrices deben ser conformables para ser multiplicadas utilizando
el operador ∗. La premultiplicación de un vector renglón de 1 × 3 como c por un vector renglón de 1 × 3 como b no está
definida. Sin embargo si c se transpusiera a un vector columna 3 × 1, se definirı́a la multiplicación. La transposición se
efectúa con el operador ’(apostrofe). c0 , b ∗ c0 este es el producto bcT .
Las operaciones elemento por elemento, u operaciones de arreglos, no sólo se aplican a operaciones entre dos matrices
del mismo tamaño, si no también a operaciones entre un escalar y un no escalar.
3. G = A./5
Las vectores resultantes C y G tendrán el mismo tamaño que A.
A fin de ilustrar las operaciones de arreglos para vectores, considere los dos siguientes vectores renglón:
B = −6, 3, −2, 4, 6
Calculemos el producto de arreglos de A y B usando las siguientes instrucciones:
B = A. ∗ B
El comando de división de arreglos,
B = A./B
Asimismo la exponenciación de arreglos también es una operación elemento por elemento, ejemplos;
Z = A.2 M = A.B
También podemos usar una base escalar con un exponente vector como;
P = 3.A
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se aplican a matrices con renglones y columnas, como
lo podrás constatar declarando la matriz d ejecutando las operaciones indicadas:
d = [1 : 6; −1 : −1 : −6], → f = d. ∗ 6 → w = d.2
& %
' $
Clave(6997) Página 6 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
Comando Función L1
roots Cálculo de las raı́ces de un polinomio
poly Vonstruye un polinomio con las raı́ces especificadas
polyval Evalúa un polinomio
polyvalm Evalúa un polinomio con una matriz como argumento
residue Desarrollo de fracciones parciales (residuos)
polyfit Ajuste de un polinomio a unos datos
polyder Derivada de un polinomio
conv Multiplicación de polinomios
deconv División de polinomios
Tabla 1. Comandos para operar con polinomios
p = [1, 2, 3, 4];
Las raı́ces de la ecuación algebraica que se obtiene al igual el polinomio a cero se pueden obtener utilizando la instrucción:
roots(p)
si se cuenta con las raı́ces se puede formar el vector que representa al polinomio en MatLab mediante la instrucción
poly( ), por ejemplo:
p2 = poly([−1, −2])
Para evaluar el polinomio en un punto se utiliza la instrucción:
ps = polyval(p, s)
donde p es el vector que representa al polinomio en MatLab y s es el punto en el cual se desea evaluar. Puede evaluarse
al polinomio en un conjunto de valores si s se define como un vector.
c = conv([l1], [12])
y para la división:
printsys(num, den)
IV.4. Actividad 3
IV.4.1. IV.4 Representaciones Gráficas
GRAFICA x-y
Gráficas x vs. y sencillas. Suponga que se desea graficar los resultados de un experimento,y se cuenta con una tabla de
datos.
Pruebe generar esta gráfica: creando un vector llamado x
& %
' $
Clave(6997) Página 7 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
x 1 2 3 4 5 6 7 8 9 10 L1
y 158.5 93.8 84.2 77.3 111.5 88.3 100.1 65.6 90.5 149.4
Tabla 2. Mi primera gráfica
x = [1 2 3 4 5 6 7 8 9 10];
y = [158.5 93.8 84.2 77.3 111.5 88.3 100.1 65.6 90.5 149.4];
plot (x, y)
Se genera automáticamente la gráfica. También es posible dibujar una retı́cula sobre la gráfica mediante el uso del
comando: grid
Varias instrucciones para el análisis de sistemas generan automáticamente gráficas. Un último aspecto que será impor-
tante en la obtención de representaciones gráficas es la forma de incluir textos en ellas, las principales instrucciones que
pueden utilizarse son:
title, escribe un tı́tulo en la parte superior para nombrar a la gráfica.
plot éste define el color y el estilo de la gráfica. Es una cadena la que determina el color de la lı́nea, estilo de la misma y
los sı́mbolos (si los hay) utilizado para los puntos de marca, por tanto intente dar elegancia a su gráfica anterior agregando
al comando plot:
plot(x,y,’ro’); grid
Subgráficas:
El comando subplot permite dividir la pantalla de gráficos en ventanas. Las posibles divisiones pueden ser dos ventanas
o cuatro ventanas o incluso 8 ventanas en una hoja.. Los argumentos del comando subplot son tres enteros: (m, n, p). Los
dı́gitos m y n especifican que la ventana de gráficos se divida en una retı́cula de m por n ventanas más pequeñas, y el digito
p especifica la p-ésima ventana para la gráfica actual (donde se ubica esta grafica) . Las ventanas se numeran de izquierda
a derecha y de arriba abajo.
Por ejemplo el siguiente comando subplot(2,1,1);plot(x,y) especifica que la ventana de gráficos se divida en una grafica
superior y una inferior ( dos lı́neas de graficas en una columna ) y que la grafica actual plot(x,y) se coloque en la ventana
superior ver código No. 2. Las siguientes instrucciones genera cuatro graficas que ilustran la función del comando subplot
empleando escalas lineales y logarı́tmica.
Código No.2
t=[0:0.001:1];
f=2;
w=2*pi*f;
x=((1/2).*(1+cos(2*w.*t)));
subplot(2,2,1);plot(t,x,’r’,’linewidth’,2);grid
subplot(2,2,2);semilogx(t,x,’b’,’linewidth’,2);grid
subplot(2,2,3);semilogy(t,x,’r’,’linewidth’,2);grid
subplot(2,2,4);loglog(t,x,’b’,’linewidth’,2);grid
Código No.3
w1=2/3;
w2=1/2;
w3=1/3;
& %
' $
Clave(6997) Página 9 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
x1=2.*sin(w1.*t); L1
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,’b’,t,x2,’r’,t,x3,’k’,’linewidth’,2);title(’Cada senoidal completa un numero entero de ciclos’);gris
V. Nociones de simulink
V.1. Introducción
En las diferentes áreas de la ingenierı́a, la simulación de sistemas y procesos se ha convertido en una herramienta indis-
pensable, tanto para el análisis como para el diseño de sistemas. En la mayorı́a de los casos, el proceso de simulación reduce
el tiempo de diseño y permite anticipar el comportamiento de sistemas y procesos antes de su construcción, reduciendo, por
ende, el costo de desarrollo y evitando posibles desperdicios. Dichos sistemas de simulación se construyen, en muchos casos,
con programas de cómputo, donde éstos realizan gran cantidad de cálculos numéricos. El área de control automático no es
la excepción y en ésta se hace un uso intensivo de simuladores y de programas de cálculo numérico. De la gran variedad de
programas, que pueden hacer simulaciones y cálculo numérico intensivo, en el mercado se ha elegido a MATLAB con varias
de sus cajas de herramientas, para las actividades de análisis y diseño de sistemas de control, debido al uso tan extendido
del mismo y al desempeño mostrado en muchas áreas de ingenierı́a y ciencia.
Por lo que, además de los análisis teóricos en la enseñanza del control automático, será necesario mostrar al alumno el
manejo adecuado de “MATLAB ” con el fin de complementar su formación en lo que respecta a las soluciones numéricas
y de simulación. SIMULINK es un programa que funciona en el ambiente de MATLAB, dicho programa cuenta con una
interfaz gráfica de usuario que permite la construcción de sistemas por medio de diagramas de bloques o ı́conos. SIMULINK
es una herramienta fácil de utilizar, debido a que cuenta con librerı́as de elementos de sistemas, donde podemos encontrar:
elementos de entrada (fuentes de señales), elementos de salida (graficadores), bloques que representan a los sistemas (blo-
ques de funciones de transferencia, o variables de estado), además de bloques o ı́conos de unión. Para todos los elementos
mencionados anteriormente es posible ajustar los parámetros de los mismos, con la intención de ajustarse al sistema bajo
prueba tales como son: tiempo de inicio, tiempo de paro, método de solución de ecuaciones diferenciales, etc. En resumen,
SIMULINK es una herramienta poderosa para el análisis de sistemas dinámicos. Por lo que, resulta indispensable para el
estudio del control automático.
Cabe hacer mención que existen programas de software con licencia libre que permiten la misma utilización y funcio-
namiento similar de MATLAB y que siguen un similar protocolo de funcionamiento tales como Scilab como el progra-
ma similar a MATLAB y Scicoslab en el entorno SIMULINK que pueden emplear el similar formato de utilización de
MATLAB o de SIMULINK . La página de descarga de dichos programas se encuentra en: http://www.scilab.org para
Scilab y http://www.scicoslab.org/ para Scicoslab similar a SIMULINK .
Aspectos notables de MATLAB
MATLAB es un sistema interactivo que realiza cálculos numéricos.
Con MATLAB se pueden hacer cálculos muy complejos con sólo algunos comandos.
MATLAB es un conjunto de programas que interactúan de manera eficaz para producir soluciones confiables.
V.2. Actividad 1
& %
' $
Clave(6997) Página 10 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
La ventana de simulink mostrada será “SIMULINK Library Browser” (SLB). Observe que en dicha ventana se muestran
las librerı́as.
d 2 vc R dvc 1 V
+ + vc =
dt2 L dt LC LC
La ecuación anterior modela un circuito eléctrico RLC conectado en serie, al que se le aplica una fuente de voltaje
constante V, mostrado en la Figura 2. Los valores de los parámetros se representan por R, L y C, con c vc la variable que
representa el voltaje en el capacitor y V es la fuente de voltaje constante de entrada.
Para iniciar la construcción del modelo en SIMULINK , despejemos la derivada de mayor orden
d2 vc R dvc 1 V
2
=− − vc +
dt L dt LC LC
Del modelo anterior se observa que es necesario integrar dos veces para obtener el voltaje en el capacitor, es necesario
hacer: dos restas, una suma y tres multiplicaciones por un escalar (ganancias). Por lo que, necesitamos: bloques de suma
(o resta), de integración y de ganancia.
Dentro de la interface de SIMULINK Library Browser (SLB) seleccione el menú desplegable “File” elija “new”, se abrirá
una ventana en blanco donde se construirá el modelo. Traiga a primer plano la nueva ventana y la de SLB. Dé un clic en
el recuadro a la izquierda de la caja de herramientas de SIMULINK , deberán abrirse todas la librerı́as.
5. Seleccione la opción “Math” y elija “Gain”, arrástrelo a la ventana de archivo nuevo suelte el botón del ratón, para dejar L1
el bloque.
Conectando bloques
Para duplicar los bloques en la ventana de nue-
vo archivo, seleccione, haciendo clic en el bloque
con el botón izquierdo del ratón, (se habilitarán
unos cuadros de selección en las esquinas del blo-
que) ubique el ratón, nuevamente en el bloque y
arrástrelo, oprimiendo el botón derecho del ratón,
al lugar donde desea ubicarlo, suelte el botón del
ratón, para dejar el bloque.
Duplique el bloque de integración (siguiendo el procedimiento anterior), póngalos en lı́nea horizontal, conecte la salida
de un bloque de integración con la entrada del segundo. La salida del segundo integrador será el voltaje en el capacitor y la
entrada al primer bloque de integración es la segunda derivada del voltaje en el capacitor. Por tanto, a la entrada debemos
conectar el lado derecho de la ecuación:
d2 vc R dvc 1 V
=− − vc +
dt2 L dt LC LC
El modelo queda como se muestra en la Figura 3. Las ganancias (que deben estar definidas como “Element-wise gain”)
se editan dando doble clic con el botón izquierdo e introduciendo los términos adecuados.
VI. Resultados
1. Gráfica del código 1
& %
' $
Clave(6997) Página 12 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
3. Obtener el comportamiento del voltaje del capacitador Vc del circuito mostrado en la Figura 2. Mostrar la imagen del
Scope exportada a la ventana de comandos de Matlab, se debe observar la solución de la ecuación diferencial (linea
continua) y la respuesta del sistema como función de transferencia (linea punteada).
(La Figura va aquı́ Borrar cuando se ponga la imagen)
Observaciones y conclusiones:
4. En un mismo Scope muestre y compare las señales obtenidas de la solución de la ecuación diferencial y de la función de
transferencia.
Observaciones y conclusiones:
Figura 4. Motor de DC
Obtener la imagen del Scope exportada a la ventana de comandos de Matlab, se debe observar la solución de la ecuación
diferencial (linea continua) y la respuesta del sistema como función de transferencia (linea punteada).
& %
' $
Clave(6997) Página 13 de 13
FUNDAMENTOS DE CONTROL
Rev. 0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López R. ML
Guı́a de clase laboratorio N◦ 1
θ̇(s) KI
= 2
V (s) JLs + (JR + BL)s + BR + KI KA
6. Mostrar el comportamiento des desplazamiento angular θ del motor de DC modelado en clase. Mostrar la imagen del
Scope exportada a la ventana de comandos de Matlab, se debe observar la solución de la ecuación diferencial (linea
continua) y la respuesta del sistema como función de transferencia (linea punteada).
La función de transferencia tomando como salida la posición angular del motor θ es
θ(s) KI
=
V (s) JLs3 + (JR + BL)s + (BR + KI KA )s
Les agrego este link para revisar el modelado del motor de DC, esta página es muy útil para entender algunos conceptos
de modelado usando función de transferencia y variables de estado. http://ctms.engin.umich.edu/CTMS/index.php?
example=MotorSpeed§ion=SystemModeling
OBSERVACIONES Y CONCLUSIONES GENERALES
& %
' $
Clave(6997) DIE-LA-FPE-L1
FUNDAMENTOS DE CONTROL
Rev.0 2019-1
Tema: Profesor:
NOCIONES DE MATLAB Y SIMULINK MI. Mauro G. López ML
R.
Guı́a de clase N◦ 1
L1
Apellidos y nombres: Fecha de ejecución: Grupo: EWS:
1. PRÉSTAMO DE EQUIPO
Es obligación del alumno verificar que el equipo y material recibido se encuentre completo y en buen estado, en caso de existir algún daño o faltante deberá informarlo inmediatamente, de no ser ası́, el alumno asume la responsabilidad del
daño o faltante. Al finalizar la clase el profesor deberá inspeccionar que el alumno devuelva el equipo y material en buenas condiciones.
b)
Firma del alumno
El equipo se recibió en buenas condiciones
c)
d)
e)
evalución nos dará la posibilidad de mejorar continuamente. Al finalizar, deberá obtener la sumatoria de acuerdo al valor de cada indicador de desempeño y colocar el resultado final de la evaluación en la celda correspondiente.
l. GUÍAS DE CLASE
2. Las actividades propuestas en la guı́a de clase contribuyen al aprendizaje del tema Si Algunas No
ll. PROFESOR
4. La explicación del profesor para el correcto desarrollo de la guı́a de clase fue Buena Regular Mala
5. Las dudas planteadas durante la clase fueron atendidas correcta y oportunamente Si Algunas No
10. La limpieza y el orden del laboratorio antes y después de la sesión de clase fue Buena Regular Mala
Bueno/Si 1 Resultado de
Valor de cada
Regular/Algunos 0.5 evaluación de la sesión
respuesta
Malo/No 0 de clase: ———
& %