Sie sind auf Seite 1von 12

Nombre: Robles Loro, José Código: 20162007E

Inicialmente el valor de la variable de salida del modelo de la planta es 6.0 unidades y se


guarda en el archivo ASCII con nombre output.txt y el valor de la variable de entrada al modelo
es 10.0 y se lee del archivo ASCII con nombre input.txt. El valor del set-point se encuentra en
el código del controlador PI y tiene un valor de 7.0.

//Configuramos nuestra planta

//Configuramos nuestro controlador PI deacuerdo a lo obtenido en matlab


Ti=Kp/Ki=15.8140
Reemplazando en el código PI

//Colocamos 6.0000 al output y 10.00000 al input


//setpoint igual a 7.00
1) Usar el tiempo de muestreo adecuado (sustente) y escribirlo en el
programa adecuado. (2 puntos)
Conviene con T=1 segundo porque si sumamos en total los ticks generados
por cada una de las tareas obtenemos 3050 ticks que son equivalentes a
0.3050 milisegundos, por lo que 1 segundo es más que suficiente como
tiempo de muestreo (la variable es de tipo int).
HISTORY.CPP -> 16 ticks

PI.CPP -> 15 ticks


Planta.CPP -> 3019 ticks
Escribiéndolo en el programa adecuado (Planta.cpp):

2) Reportar desde el programa el CPU utilization de cada tarea (Planta,


PI y History). Explique qué código logra lo anteriormente
mencionado detalladamente. (4 puntos)
PARA HISTORY.CPP
Debido al while(timepi<1){} cuando el timepi=0 el código se ejecuta pero
nunca nos muestra el consumo del CPU debido a que el código se queda
estancado en la parte anteriormente mencionada.-
Es por ello que debemos modificar el código de tal forma que podamos
apreciar el consumo del CPU, una forma es aumentando el timepi; sin
embargo, sino disminuimos su valor, el código se ejecuta indefinidamente
e imposibilita la visualización, es por ello que en el ciclo while disminuimos
esta variable en 1 unidad tras cada iteración. Así, al ejecutar el código este
nos mostrará ‘timepi-1’ veces el consumo del cpu por cada una de estas
iteraciones.
Para timepi=8.-

Como se puede apreciar, en el ciclo While(1) al inicio se le aumenta un


timepi—para disminuir el valor de este, y debido a que while(timepi<1){}
está después de este, entonces la cantidad de iteraciones mostradas en el
.exe es de ‘timepi-1’
Por ultimo, se comentó la parte que decía timepi=0 para que no afecte al
código explicado arriba.-
PARA PI.CPP
Debido a que tanto History.cpp como PI.cpp presentan el mismo contador
timepi, entonces se hacen las mismas modificaciones de código.
Para timepi=10

PARA Planta.CPP
Sólo modifico el texto de salida a Planta (decía PI por error), ya que se
muestra la utilización del CPU por parte de planta.cpp en cada iteración sin
alterar el código:

3) Simular por un lapso de tiempo adecuado hasta alcanzar el set point


(History.txt). El history que genere debe ser diferente al
suministrado como ejemplo.
Para esta parte comentamos la disminución de timepi.-

Tanto como para History.cpp y PI.CPP, a su vez, descomentamos la parte de


sleep y le ponemos un tiempo menor que el que el tiempo de la planta, para
que se pueda realizar un buen control de la planta debido a que el tiempo
que se ejecuta el PI.CPP debe ser menor que el de la planta, quedando el
código así.-
PARA HISTORY.CPP

PARA PI.CPP

PARA PLANTA.CPP
Los resultados obtenidos son.-

El resultado final es un valor cercano al set point.-

Das könnte Ihnen auch gefallen