Académique Documents
Professionnel Documents
Culture Documents
LABORATORIO N° 3 (parte A)
OBJETIVOS:
PROCEDIMIENTO DE LABORATORIO:
PARTE A:
2
FIEE-UNAC
Control digital
PROCEDIMIENTO DE LABORATORIO:
3
FIEE-UNAC
Control digital
Ra K b 1
− −
X1′ La 0 La X1 La
X′ = 0 0 1 X + 0 e
2 2 a
X 3′ K 0 B X3 0
−
J J
4
FIEE-UNAC
Control digital
X1
y = [ 0 1 0] X 2
X 3
X1
y = [ 0 0 1] X 2
X3
De lo cual tenemos la representación en el espacio de estado:
Cc = ( 0 1 0) D = ( 0)
5
FIEE-UNAC
Control digital
Step Response
4
3.5
2.5
Amplitude
1.5
0.5
0
0 5 10 15 20 25 30 35 40
Time (sec)
6
FIEE-UNAC
Control digital
Step Response
0.1
0.09
0.08
0.07
0.06
Amplitude
0.05
0.04
0.03
0.02
0.01
0
0 0.5 1 1.5
Time (sec)
7
FIEE-UNAC
Control digital
SOLUCION:
Sabemos que X ( K +1) = (l +TA ) X ( K ) + BTe a ( K )
0.9048 0 − 0.009
G = 0 1 0.0095
0.009 0 0.9048
0.0952
H = 0
0.0005
Cc = ( 0 0 1)
D = ( 0)
SOLUCION:
M = [B A*B A^2*B]
N = [Cc' A'*Cc' A'^2*Cc']
8
FIEE-UNAC
Control digital
4. Determinar mediante Matlab la respuesta gráfica del sistema discreto ante una
entrada escalón unitario, tanto para:
a) Posición.
G=[0.9048 0 -0.009;0 1 0.0095;0.009 0 0.9048];
H=[0.0952;0;0.0005];
Cc=[0 1 0];
Dc=[0];
%Utilizando el comando en matlab:
dstep(G,H,Cc,Dc)
grid
b) Velocidad.
a) Posición
9
FIEE-UNAC
Control digital
Step Response
0.05
0.045
0.04
0.035
0.03
Amplitude
0.025
0.02
0.015
0.01
0.005
0
0 10 20 30 40 50 60 70
Time (sec)
b) Velocidad
Step Response
0.1
0.09
0.08
0.07
0.06
Amplitude
0.05
0.04
0.03
0.02
0.01
0
0 10 20 30 40 50 60 70 80
Time (sec)
10
FIEE-UNAC
Control digital
SOLUCION:
θ( Z )
a)
E a ( Z)
θ( Z)
=C(zl −G) −1H +D
Ea( Z)
Transfer function:
-0.8088
-----------------------------------------
z^2 + (0.9048-0.009i) z + (0.9048+0.009i)
w( Z)
b) E
a( Z)
w( Z)
=C(zl −G) −1H+D
Ea( Z)
Transfer function:
z - 0.8088
-----------------------------------------
z^2 + (0.9048-0.009i) z + (0.9048+0.009i)
SOLUCION:
a) Posición angular
11
FIEE-UNAC
Control digital
0.07
0.06
0.05
Posición angular
0.04
0.03
0.02
0.01
-0.01
0 10 20 30 40 50 60 70 80 90 100
Núm ero de m uetras
b) Velocidad angular
V eloc idad V s Núm ero de m ues tras
0.1
0.08
0.06
Velocidad angular
0.04
0.02
-0.02
0 10 20 30 40 50 60 70 80 90 100
Núm ero de m uetras
SOLUCION:
Las respuestas obtenidas en (4) y (6) son iguales
12
FIEE-UNAC
Control digital
SOLUCION:
De acuerdo a los pasos que siguen en la formulación del laboratorio se llega a obtener
graficas iguales tanto para continuo como para discreto, por lo tanto no es necesario hacer
una reformulación.
SOLUCION DE LA PARTE B :
Programa para controlar un motor 12Vdc con el programa visual C++
#include "stdafx.h"
13
FIEE-UNAC
Control digital
#include <windows.h>
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <iomanip.h>
#include <ctype.h>
#define base 0x378 //esta es la direccion del puerto pararelo.
void menu();
#include "c:\puerto\io.h"
HMODULE hio;
void UnloadIODLL()
{
FreeLibrary(hio);
}
int LoadIODLL() {
hio = LoadLibrary("io");
if (hio == NULL) return 1;
atexit(UnloadIODLL);
return 0;
}
void main()
{
menu();
op=(getch());
switch(op)
{
case '+' :
if(x<5)
{ x=x+1;
PortOut(base,x);
}
else
{
cout<<'\t'<<'\t'<<"velocidad maxima";
}
break;
case '-':
{
if(1<x)
x=x-1;
{
if(x==1)
{
15
FIEE-UNAC
Control digital
cout<<'\t'<<'\t'<<"velocidad minima";
cout<<x;
}
Else
{
PortOut(base,x);
}
}
}
break;
case'p':
{
cout<<'\t'<<'\t'<<"motor apagado";
PortOut(base,0);
// x=0;
}
break;
case 's':
goto salir;
default:
cout<<'\t'<<'\t'<<"esta opcion no esta permitida";
break;
}
}
//--------------------------------------------------------------------------------despliega el menú de
opciones
void menu (void)
{{
system ("CLS");
cout<<endl<<endl<<endl<<endl<<endl;
cout<<'\t'<<'\t'<<"=======Control de velocidad en lazo abierto=======" <<endl;
cout<<'\t'<<'\t'<<"pulsar boton + para incrementar velocidad"<<endl;
cout<<'\t'<<'\t'<<"pulsar boton - para decrementar velocidad"<<endl;
cout<<'\t'<<'\t'<<"pulsar p para detener motor "<<endl;
16
FIEE-UNAC
Control digital
Comentarios:
La conversion se puede realizar del mismo modo con el DAC incorporado en el pic16f877a
El programa de control fue diseñado de tal manera que presionando la tecla + se
incrementa en 1 la salida del puerto en bianrio y esto se refleja con un aumento de
velocidad y si se presiona la tecla – se decrementa en 1 la salida del puerto en binario , esta
salida digital ingresa al DAC en donde es convertido a una seña analogica de 0- 1.2 V y a
medida que la la entrada analogica aumenta la salida del PWM disminuye ,reduciendo asi
la velocidad el motor.
Con el programa diseñado es posible deterner el motor con tan solo
presionar la tecla p .
17
FIEE-UNAC