Está en la página 1de 11

TAREA:

Diseño e implementación de una planta de segundo orden en tiempo discreto,


empleando una placa de desarrollo arduino, un DAC R2R de 10 bits, y un cambio de
escala con amplificador operacionales para la señal de entrada y señal de salida.
Consideraciones:

 Diagrama de boques en lazo cerrado de una planta de primer orden tipo cero en
tiempo discreto.

2
Wn
G ( s )=
s (s+2 ξ W n)

 El efecto integral se aproxima normalmente en la industria con un Back Euler

1 T
∫ dt → s ↔ z−1

Diagrama de bloques de la planta de segundo orden en tiempo discreto

 Ecuaciones del espacio de estado

T sWn
B x 1=x 1 + ( u−x 1 )

B x 2=x 2 +2 ξ W n T s ( x 1−x2 )
y=x 2
x 1=B x 1
x 2=B x 2

Para el caso de estudio de la planta en tiempo discreto se considera una entrada U de 9V a


-9V con una frecuencia de 10 Hz.
 Las placas de desarrollo arduino se caracterizan por leer valores de tensión de 0 a 5
Voltios con una resolución de 1024 (10 bits).
 Las entradas analógicas del modelo Arduino Uno son las correspondientes a los pines
de A0 a A5

CAMBIO DE ESCALA PARA LA SEÑAL DE ENTRADA DEL PUERTO ANALÓGICO DE ARDUINO

 Entrada: Xmax= 9V, Xmin= -9V


 Salida: Ymax= 5V, Ymin = 0

Y MAX −Y MIN
Y= ∗( X− X MIN ) +Y MIN
X MAX −X MIN
Y =mX −m X MIN + Y MIN

Y =mX +(Y MIN −m X MIN )


Y MAX −Y MIN
m= ∴ b=Y MIN −m X MIN
X MAX −X MIN
y=mx+b
m=0,2798
b=2. 5

Circuito con amplificadores operacionales para el cambio de escala de la señal de entrada

La configuración de los opamp nos permite realizar un cambio de escala de la señal de entrada,
estableciendo un voltaje de referencia y una ganancia R/m donde m está definida por la
pendiente de los valores máximos y minios a la entrada y salida del circuito
Calculo del voltaje de referencia

La función de trasferencia del segundo amplificador operacional configurado como un


sumador inversor está definida por:

−Y 1=R ( X
+
R /m R
Vref
)
Donde:

R= 10K

m=0,2798
0=10 (
−9 Vref
36 10
+ )
Vref =2. 5 V
Y1=0V

X=-9V

Para garantizar a la salida un voltaje de 0 a 5 voltios se añade al diseño un circuito limitador

 Caculo de resistencias para el limitador

R 1+R 2=10 K
VD ( 1 1
+ ) 5 12
− + =0
R 1 R 2 R1 R 2
R 1+R 2 12 R 1−5 R 2
VD + =0
R 1 . R 2 R 1. R 2
V D 10 K +12 R1−5 R 2=0
V D 10 K +12 R1−5(10 K−R 1)=0
17 R1=43 K
R 1=2 ,5294 K
R 2=7 , 4706 K
Una vez determinado el cambio de voltaje en el circuito podemos inyectar la señal de salida
con toda seguridad a cualquier puerto analógico del Arduino.
Señal de ingreso al puerto analógico

SIMULACIÓN DE LA PLANTA EN MATLAB


Consideraciones:

f= 10 Hz

T= 1/f = 100 ms

tss= T/4

5tao= tss

tao= (1/5) (1/4) T

Mp=0,3

Código
close all; clear; format long g; clc;

T=0.1;
tss=T/4;
f=1/T;
w=2*pi*f;
tao=(1/5)*tss;

x1=0;
x2=0;

mp=0.3;
chi=abs(log(mp))/sqrt(pi^2+log(mp)^2);
wn=4/(tss*chi);

%T1=2*pi/(wn*sqrt(1-chi^2));
T1=1/1500;
Ts=T1/2;
tf=T*5;

t=[0:Ts:tf]';
u=9*square(w*t,50);

figure; plot(t,u)
grid on

N=length(t);

k1 = 2*chi*wn*Ts;
k2 = (wn/(2*chi))*Ts;

y=zeros(size(t));

for k=1:N

Bx1=x1+k1*(x2-x1);
Bx2=x2+k2*(u(k)-x1);

y(k)=x1;

x1=Bx1;
x2=Bx2;
end

figure; plot(t,y,'r-','linewidth',2);
grid on

Grafica de la planta de segundo orden


CONVERTIDOR R2R DE 10 BITS PARA ARDUINO

La planta digital programada en arduino tienen que ser visualizada en el osciloscopio para lo
cual implementamos un DAC R2R ocupando 10 salidas digitales de arduino.

2
V OMAX = V S n
3 ( )
2n −1
2
n=10
2
V OMAX = (5 )
3 ( )
1023
1024
V OMAX =3 . 491V

El voltaje máximo a que alcanzara la planta de primer orden es aproximadamente 3.5 V y el


voltaje mínimo 0v para ello es necesario aplicar un circuito de cambio de escala de 9V 0 -9V

CAMBIO DE ESCALA PARA LA SEÑAL DE SALIDA

 Entrada: Xmax= 3V, Xmin= 0V


 Salida: Ymax= 9V, Ymin = -9
Y MAX −Y MIN
Y= ∗( X− X MIN ) +Y MIN
X MAX −X MIN
Y =mX −m X MIN + Y MIN

Y =mX +(Y MIN −m X MIN )


Y MAX −Y MIN
m= ∴ b=Y MIN −m X MIN
X MAX −X MIN
y=mx+b
m=6
b=−9
y=6 ( x −1,5 )

Circuito con amplificadores operacionales para el cambio de escala de la señal de entrada

IMPLEMENTACION DE LA PLANTA

Consideraciones:

 Para establecer el tiempo de muestreo en nuestro código de Arduino se utilizó un pin


digital el cual nos indica el tiempo de ejecución del programa, cambiando su estado de
alto a bajo.
 El periodo determinado con el pin del Arduino nos permitido establecer el tiempo de
muestreo.

Código en Arduino

float U1 = 0;

float k1=0.2542;

float k2=0.4875;

int x1 = 0, x2=0;

int Bx1 = 0, Bx2=0;

float y = 0;

int y1 = 0;

bool b1= false;

void setup() {

for (int i=0; i<10; i++)

pinMode(i, OUTPUT);

void loop() {

int U = analogRead(A0);

U1 = map(U, 0, 1023, -9, 9);

Bx1=x1+k1*(x2-x1);

Bx2=x2+k2*(U1-x1);

y=x1;

x1=Bx1;

x2=Bx2;

y1 = map(y, -16, 16, 0, 1023);

step(y1);

b1=!b1;

digitalWrite(13,b1);

void step(int n) {
for (int i=0; i<10; i++)

digitalWrite(i, bitRead(n, i));

Circuito implementado
Visualización Cambio de Escala

Visualización de la salida R-2R


CONCLUSIONES:

 El máximo voltaje de la salida analógica del convertidor R2R es aproximadamente 3V


por lo que es necesario la implementación de un cambio de escala con amplificadores
operaciones para mantener la relación de la señal de entrada, es decir, mantener una
oscilación entre valores picos positivos y negativos

 Para determinar el tiempo de muestreo en nuestro código de Arduino, se utilizó un pin


digital el cual nos indica el tiempo de ejecución del programa, cambiando su estado de
alto a bajo en cada ejecución del código.

 El cálculo de las volares de las ganancias donde intervienen el sobre impulso y tiempo
de establecimiento para la determinación de Wn y Chi en la digitalización de la planta
es importante no realizaros en el código de arduino para una mejor ejecución del
programa.

También podría gustarte