Академический Документы
Профессиональный Документы
Культура Документы
=
A I 61 . 1
2740
4420
23 0 8
5 10 4
8 0 22
2
= =
A
=
A I 51 . 0
2740
1420
0 5 8
10 9 4
0 4 22
3
= =
A
=
I
2
I
3
I
1
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Los resultados se comprueban haciendo el siguiente montaje en Circuit Maker
10.2. En el circuito de la siguiente figura calcular los V
CE
e I
C
en DC. En AC
medir la ganancia de voltaje A
V
Tenemos que:
V K K K V V
TH
8 . 3 ) 82 22 /( 22 *
1
= O + O O =
O =
O + O
O O
= K
K K
K K
R
TH
34 . 17
82 22
82 * 22
A
R R
V V
I
E TH
BE TH
B
22
* ) 1 (
=
+ +
=
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
mA I I
B C
2 . 2 = =
V R I R I V V
E C C c CE
04 . 3
1
= =
Haciendo el siguiente montaje podemos comprobar los resultados, observe los
datos que muestran los indicadores de corriente y voltaje
Finalmente haciendo la grafica de Transient Anlisis, se puede observar el
voltaje de salida, y calculando la ganancia de voltaje de este circuito como V
0
/
V
i
y que da como resultado 3.
3 = =
E
E C
V
R
R II R
A
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
P PR RI IM ME ER RA A U UN NI ID DA AD D
CONCEPTOS DISEO Y SIMULACIN DE CIRCUITOS
ELECTRNICOS
CAPTULO 3
DISEO Y SIMULACIN DE CIRCUITOS DIGITALES, CIRCUITOS
IMPRESOS
LECCIN 11. DISPOSITIVOS ELECTRNICOS
En circuit Maker podemos encontrar componentes de circuitos digitales como
compuertas (GATES), multiplexores (MUX), contadores entre otros.
Los circuitos digitales se encuentran en la mayora de los sistemas electrnicos
modernos, ya que con el avance en las tecnologas de integracin de
elementos en circuitos integrados se puede tener al alcance una gran cantidad
de funciones que van desde: compuertas lgicas (SSI), sumadores binarios
(MSI) y unidades de manejo de datos (LSI) y otros niveles de integracin ms
elevados.
Los componentes electrnicos digitales en Circuit Maker se encuentran en el
panel frontal en las categoras DIGITAL ANIMATED, DIGITAL BASIC, DIGITAL
BY FUNCTION, DIGITAL BY NUMBER, se pueden trabajar tanto en la
presentacin individual o en circuito integrado.
En la siguiente tabla se encuentran relacionados algunos de los elementos
digitales que se trabajan en Circuit Maker.
Indicador animado Indicador animado Indicador animado Display ASCII Display 7 segmentos
S
F
Reset
CAR1
S
F
Reset
CAR1
C
NO
NC
OC
WND1
7
6
5
4
3
2
1
CP
DISP1
abcdefg.
V+
DISP2
Display 7 segmentos Diodo Led Lmpara Display Lgico Semforo
1 2 3 4
DISP4 D1
LED1
L1 L2 SEM1
switch CompuertaAND Compuerta NAND Compuerta NOR Compuerta OR
V2
5V
U9A U10A U11A U12A
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Compuerta XNOR Compuerta XOR Buffer Inversor Sumador
U13A U14A U1A U3A
74LS83
A4
A3
A2
A1
B4
B3
B2
B1
Cin
s4
s3
s2
s1
Cout
U18
Flip flor tipo D Flip flor tipo JK Flip flor topo RS Comparador Latch
D
CP Q
_
Q
U4
J
CP
K
R
Q
_
Q
U7A
S
R Q
_
Q
U8
74LS85
A3
A2
A1
A0
B3
B2
B1
B0
IA<B
IA=B
IA>B
A<B
A=B
A>B
U1
74LS85
74LS373
D7
D6
D5
D4
D3
D2
D1
D0
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
OE E
U3
Multiplexor Memoria PROM Memoria Ram Registro Contador
74LS373
D7
D6
D5
D4
D3
D2
D1
D0
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
OE E
U3
PROM32
CS
A4
A3
A2
A1
A0
O7
O6
O5
O4
O3
O2
O1
O0
U1
PROM32
CS
A4
A3
A2
A1
A0
O7
O6
O5
O4
O3
O2
O1
O0
U1
74LS165
D7
D6
D5
D4
D3
D2
D1
D0
DS
PL
CE
CP
Q7N
Q7
U1
4017
CP1
CP0
MR
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q5-9
U20
Diseo: Juan Monroy
Los elementos una vez seleccionados se colocan en el rea de trabajo y se
ubican en una posicin favorable para su posterior conexin.
LECCIN 12. INTERCONEXIN DE DISPOSITIVOS
Como ya se haba mencionado en las lecciones anteriores, para realizar la
interconexin se utiliza la herramienta alambrar , se inicia el alambrado
haciendo click sobre este icono y ubicando el puntero del mouse en una de las
terminales del componente, al hacer esto recuerde que aparecer un recuadro
rojo alrededor de la terminal seleccionada; enseguida y manteniendo
presionado el botn izquierdo del mouse se arrastra a la terminal del otro
componente donde se desea hacer la conexin y soltndolo al realizar el
contacto. Es importante mencionar que si por error se realiza una interconexin
entre dos elementos que originalmente no estn conectados, es posible
eliminar dicha conexin haciendo clic sobre ella y presionando la tecla delete.
Una vez se hacen las interconexiones debe observarse el circuito como se ve a
continuacin.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
V2
5V
V1
0V
L1
U1C
U1B
U1A
LECCIN 13. SIMULACIN
Antes de realizar la simulacin se debe seleccionar Modo Digital en la barra de
men Simulation/Digital Mode/Run.
De esta manera puede distinguir en el led los estados del la salida del circuito
en funcin de las seales de entrada.
A Continuacin observe el pantallaza que se genera al momento de realizar la
simulacin del circuito digital seleccionado.
LECCIN 14. EJEMPLOS
14.1. Realizar el circuito astable con el Integrado LM555, observar la forma de
onda producida y la frecuencia de la misma.
Realice el siguiente montaje
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
.IC
+12V
1
Gnd
2
Trg
3
Out
4
Rst
5
Ctl
6
Thr
7
Dis
8
Vcc
555
+
CT
.1uF
+
C1
.01uF
RL
10k
RA
1k
RB
1k
R1
2k
Para observar la forma de onda activamos el modo de simulacin Transient
Analysis en Simulation/Analog Mode, y se ejecuta la simulacin mediante el
comando Run.
14.2. Disee un circuito contador digital de 0 a 9, que responda a la seal de un
pulsador como activacin del conteo
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Al realizar la simulacin del circuito, se observa a travs del display siete
segmentos el conteo que se esta llevando a cabo y la forma de control elegida
LECCIN 15. DIAGRAMA ESQUEMTICO DE
CIRCUITOS IMPRESOS, IMPORTAR Y GENERAR PCB
15.1. DIAGRAMA ESQUEMATICO
La realizacin de un circuito impreso requiere que previamente se halla hecho
el diagrama esquemtico. Como se ha visto anteriormente el diagrama
esquemtico se realiza en Circuit maker colocando los componentes en el rea
de trabajo, se debe tener cuidado con las conexiones al exterior de la placa
tales como entradas de seal, conexiones de fuentes de alimentacin,
micrfonos, salidas a parlantes etc. Estas conexiones se colocan en el
diagrama esquemtico seleccionando en el panel frontal en la categora
CONNECTORS, en donde se encuentran diversos tipos de conectores como:
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
J6
P1
J5
J4
J3
J2
ent 1
Un ejemplo de estas conexiones se muestra en el siguiente diagrama
esquemtico, donde se reemplazo la fuente de alimentacin por un conector de
dos entradas al cual se le asignaron nombres a los pines (Vcc y GND), y la
seal de entrada al circuito como otro conector donde ser conectada
posteriormente la seal a ser amplificada.
GND
Vcc
J 2
J 1
C 1
1 u F
Q 1
N P N
R 4
1 k
R 3
1 k
R 2
1 k
R 1
1 k
15.2. IMPORTAR CIRCUITOS Y GENERACION DEL PCB
Una vez se tenga el diagrama esquemtico se procede a exportar el circuito a
un programa de elaboracin de PCB, Circuit Maker trae la conexin directa a
estos programas a travs del siguiente icono
Pulsando este icono aparece la ventana de exportacin para crear el PCB, en
la pestaa se puede seleccionar el programa mediante el cual se desea crear
el impreso, aparecen Traxmaker que es el programa asociado por defecto a
Circuit Maker y otros como Protel, Tango y Orcad entre otros.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Tomamos el programa por defecto TraxMaker y activamos todas las opciones
que aparecen en la parte izquierda de la ventana. En la parte derecha tenemos
la oportunidad de seleccionar el tamao de la placa en largo y ancho (este
valor esta dado en mils: milesimas de pulgada), presionamos OK y aparece
una ventana de salvar PCB, se da un nombre al archivo y se guarda.
Una vez se ha exportado el circuito, automticamente se abre el programa
traxmaker y aparece el grafico de la placa impresa con los componentes y una
ventana de informacin del proceso, damos OK en esta ventana y nos da un
informe de errores so lo solicitamos, en caso contrario desaparece la ventana y
nos permite observar solamente la placa de circuito impreso. Si esta aparece
muy pequea la ampliamos con la herramienta zoom.
Como se observa en la grafica los componentes aparecen organizados
automticamente. El enrutado de las pistas se puede realizar manual o
automticamente, seleccionando la opcin en la barra de men ROUTE.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Si se elige la opcin manual se debe realizar cada una de las conexiones entre
los componentes, si se escoge la opcin board el trazado se realiza
automticamente y aparece una ventana para salvar el trabajo realizado hasta
el momento damos OK y el trazado de las pistas aparece automticamente.
Se puede guardar el archivo del pcb, con la opcin save en la subdivisin de la
opcin File de la barra de men.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
S SE EG GU UN ND DA A U UN NI ID DA AD D
MODELAMIENTO MATEMTICO Y FUNDAMENTOS DE
PROGRAMACIN
CAPTULO 1
TRATAMIENTO MATEMTICO
LECCIN 16. POLINOMIOS Y OPERACIONES
El modelamiento matemtico es parte fundamental dentro de la ingeniera, ya
que los problemas que se intentan resolver son diversos, algunos muy
complejos y particulares, con este modelamiento se busca encontrar una
representacin matemtica de una situacin para hallar su solucin, en la
mayora de los casos los modelos planteados no se pueden resolver por
mtodos analticos, o a su vez la resolucin de estos es rutinaria y fcilmente
se puede recurrir a herramientas computacionales que realicen esta tarea. El
proceso que se lleva a cabo al representar matemticamente un problema de
ingeniera, involucra tareas como las de discretizar el problema, es decir, en
vez de usar una ecuacin que describa el comportamiento a travs de todo el
tiempo, se formulan muchas ecuaciones (algebraicas) que describen el
comportamiento en un punto en particular o para un instante en particular del
tiempo. Luego todas estas ecuaciones, se ingresan a un software que resuelve
y entrega las soluciones de estas ecuaciones; estas soluciones deben ser
vlidas por datos esperados por los ingenieros, si concuerdan, se garantiza
entonces que el modelo es una buena representacin de la situacin, si por el
contrario no son los resultados esperados, se debe revalidar el modelo,
ajustarlo e iniciar el proceso nuevamente.
Dentro del software con mayor acogida en ingeniera est el MATLAB que es
un entorno de computacin y desarrollo de aplicaciones para llevar a cabo
proyectos en donde se encuentren implicados elevados clculos matemticos y
la visualizacin grfica de los mismos. MATLAB integra anlisis numrico,
clculo matricial, proceso de seal y visualizacin grfica y un lenguaje de
programacin de alto nivel.
Aunque existen otros programas de calculo, los ejemplos tratados en este
capitulo se desarrollan en MATLAB versin estudiantil debido a su gran
versatilidad y amplia difusin.
Antes de entrar en el manejo que le da Matlab a la solucin de las ecuaciones,
miremos el siguiente prrafo que muestra la importancia del modelamiento
matemtico dentro de la industria:
El matemtico Carlos Conca fue precursor en acercar el modelamiento
matemtico a la industria. A comienzos de la dcada del 80, mientras haca su
Doctorado de Estado en Matemticas, en la Universidad Pierre et Marie Curie,
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Paris VI, fue requerido por un equipo de ingenieros de la
empresa Electricit de France (EDF) para que investigara un problema de
resonancia, que presentaba el haz de tubos de los condensadores e
intercambiadores de calor en las centrales nucleares francesas. Carlos Conca
recuerda que por aquel entonces no era bien visto que un matemtico se
ocupara de problemas de origen industrial. Sin embargo, a raz de esta
solicitud, se origin un debate en el departamento de matemticas donde se
desempeaba, que termin con una solucin salomnica: se cre en forma
independiente una pequea unidad de matemticas aplicadas al interior de su
departamento.
Regresa a Chile en 1987, con el inters de plasmar este tipo de experiencias en el pas,
e intentar vincular la matemtica ms fundamental con las aplicaciones industriales. Se
asocia a otros ingenieros del Departamento de Ingeniera Matemtica de la
Universidad de Chile, y en Abril del 2000, fundan el Centro de Modelamiento
Matemtico (CMM). Desde aqu, se propone la tarea de consolidar una capacidad
mecnico matemtica de primer nivel, capaz de afrontar los problemas de la
metalurgia del cobre chileno a nivel competitivo mundial.
http://www.bioplanet.net/magazine/bio_mayjun_2004/bio_2004_mayjun_cmm.h
tm
16.1. POLINOMIOS Y OPERACIONES
Con un polinomio a= 0 1 ...
2 1
= + + + +
s s s s
n n n
y un polinomio
b=
0 1 ...
2 1
= + + + +
s s s s
m m m
pueden realizarse las operaciones
bsicas tales como suma, resta, multiplicacin, divisin etc.
En el entorno de Matlab se introducen los polinomios expresados como
vectores, es decir incluyendo solamente los coeficientes del polinomio. Por
ejemplo el polinomio
Se introduce en Matlab como
p= [1 2 4]
Donde las componentes del vector p corresponden a los coeficientes del
polinomio, dichas componentes deben ir separadas por espacios o por comas.
En la siguiente grafica se muestra el entorno de trabajo de Matlab, all se puede
por ejemplo, ingresarse el polinomio anterior.
4 2 ) (
2
+ + = s s s p
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
16.2. OPERACIONES
Matlab permite realizar la suma, resta, multiplicacin, divisin y evaluacin de
polinomios con los siguientes comandos. Las operaciones como suma y resta
se trabajan directamente como p1+p2 o p1-p2, habiendo definido previamente
los polinomios. Otras funciones tiles en la manipulacin de polinomios son:
poly Inicia un polinomio. Si el argumento es una matriz cuadrada
devuelve el
polinomio caracterstico, si es un vector devuelve un polinomio
cuyas races son los elementos del vector.
roots Devuelve las races del polinomio cuyos coeficientes son los
elementos
del vector argumento.
polyval Calcula el valor del polinomio en el punto dado
polyder Deriva un polinomio.
polyint Integra analticamente un polinomio.
conv Multiplica dos polinomios.
deconv Divide dos polinomios
Roots Encuentra las races de un polinomio
Por ejemplo dado los polinomios
6 4 2 1
2 3
+ + + = s s s p
1 4 3 2
2
+ + = s s p
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Se pueden realizar las operaciones bsicas como
En matlab se realizan como se observa en la siguiente figura
7 5 7 2 2 1
2 3
+ + + = + s s s p p
5 3 2 2 1
2 3
+ + = s s s p p
6 25 26 21 20 6 2 * 1
2 3 4 5
+ + + + + = s s s s s p p
44 . 0 666 . 0 2 / 1 + = s p p
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
LECCIN 17. DERIVADAS E INTEGRALES DEFINIDAS Y NO
DEFINIDAS
17.1. DERIVADAS
Para determinar la derivada simblica de una expresin simblica se usa la
funcin diff, la cual tiene cuatro variantes:
diff(f) Derivada ordinaria: Devuelve la derivada de la expresin f
respecto de la variable independiente por omisin.
diff(f,n) Derivada de orden superior n: Devuelve la n-sima derivada de
la expresin f respecto de la variable independiente por
omisin.
diff(f,'t') Derivada parcial ordinaria: Devuelve la derivada de la
expresin f respecto a la variable t.
diff(f,'t',n) Derivada parcial de orden superior n: Devuelve la n-sima
derivada de la expresin f respecto a la variable t.
Para realizar la derivada en Matlab se debe definir la variable como una
variable simblica esto se realiza con el comando syms o a travs de
apstrofos, por ejemplo:
>> syms x, y;
>> y='x^2';
Una vez definida la variable se puede utilizar alguno de los comandos
mencionados anteriormente. A continuacin se muestran algunos ejemplos
1. ( ) 2 6 3 8
2 4
+ x x x
dx
d
>> syms x;
>> f=8*x^4-3*x^2+6*x-5;
>> diff(f)
ans =
32*x^3-6*x+6
2. x
dx
d
cos
>> syms x;
>> f=cos(x);
>> diff(f)
ans =
-sin(x)
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
3. ) (
2 x
e x
dx
d
syms x;
f=x^2*exp(x);
diff(f)
ans =
2*x*exp(x)+x^2*exp(x)
Derivadas de orden superior
4. ( ) 2 6 3 8
2 4
2
2
+ x x x
dx
d
>> syms x;
>> f= f=8*x^4-3*x^2+6*x-5;
>> diff(f,2)
ans =
96*x^2-6
17.2. INTEGRALES DEFINIDAS Y NO DEFINIDAS.
Para integrar una funcin simblica f en MATLAB se utiliza la funcin int, la cual
busca una expresin simblica F tal que diff(F)=f. Sin embargo, es posible que
dicha integral no exista o que MATLAB no pueda encontrarla, en este caso
devuelve la expresin sin evaluarla. La funcin int tiene cinco variantes
int(f) Devuelve la integral de la expresin f respecto a la variable
independiente por omisin.
int(f,'t') Devuelve la integral de la expresin f respecto a la variable
t.
int(f,a,b) Devuelve la integral de la expresin f respecto a la variable
independiente por omisin evaluada en el intervalo [a,b],
donde a y b son expresiones numricas.
int(f,'t',a,b) Devuelve la integral de la expresin f respecto a la variable
t
evaluada en el intervalo [a,b], donde a y b son expresiones
numricas.
int(f,'m','n') Devuelve la integral de la expresin f respecto a la variable
independiente por omisin evaluada en el intervalo [m,n],
donde m y n son expresiones simblicas.
Al igual que con las derivadas, para realizar el proceso de integracin se debe
definir la variable como simblica, y se procede a utilizar el comando int. A
continuacin se presentan algunos ejemplos:
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Integral indefinida
1.
( )
}
+ + dx x x 1 2
2
syms x;
f=x^2+2*x+1;
int(f)
ans =
1/3*x^3+x^2+x
2.
}
dx xe
x
) (
2
syms x;
f=x*exp(2*x);
int(f)
ans =
1/2*x*exp(2*x)-1/4*exp(2*x)
Integral definida
3.
}
0
dx x sen syms x;
f=sin(x);
int(f,0,pi)
ans =
2
4.
dx
x
}
2
1
1
syms x;
f=1/(1+x^2);
int(f,-inf,inf)
ans =
pi
5.
}
+
b
a
dx x 1 3 syms x;
f=sqrt(3*x+1);
int(f,'a','b')
ans =
2/9*(3*b+1)^(3/2)-2/9*(3*a+1)^(3/2)
LECCIN 18. SEALES CONTINUAS, DISCRETAS Y
FUNCIONES DE TRANSFERENCIA
18.1. SEALES CONTINUAS Y DISCRETAS
Las seales son funciones del tiempo que representan la evolucin de una
determinada variable, como puede ser el voltaje en los extremos de un
condensador, la temperatura de un horno, o la actividad elctrica del corazn.
Se clasifican en seales continuas y discretas.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Las seales continuas, x(t), son funciones de una variable continua (tiempo),
mientras que las discretas, x[n], se definen nicamente para valores discretos
de la variable independiente.
Por ejemplo la seal cos (t) representa una seal continua en el tiempo, su
grafica es la siguiente
Y La seal cos [n] representa una seal en tiempo discreto
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
18.2. FUNCIONES DE TRANSFERENCIA
La funcin de transferencia es la relacin entre la seal de salida y la seal de
entrada a un sistema. En tiempo continuo esta relacin se da en Transformada
de Laplace, es decir en trminos de la variable s, y en tiempo discreto se da en
Transformada Z, en trminos de la variable z.
Por ejemplo:
continuo sistema un de cia transferen de Funcin
s s s X
s Y
s G
2 6
1
) (
) (
) (
2
+ +
= =
discreto sistema un de cia transferen de Funcin
z z
z
z X
z Y
z G
2 6 ) (
) (
) (
2
+ +
= =
LECCIN 19. RESPUESTA TEMPORAL DE SISTEMAS
Para obtener la respuesta de un sistema en el tiempo ante una entrada
estndar, debe primero definirse el sistema. Para ello puede establecerse en
MatLab la funcin de transferencia propia del sistema o las ecuaciones de
estado. La funcin de transferencia de un sistema es una relacin formada por
un numerador y un denominador. El numerador Num(s) y el denominador
Den(s) deben determinarse como vectores, cuyos elementos son los
coeficientes de los polinomios del numerador y del denominador en potencias
decrecientes de s. Por ejemplo, para definir la funcin de transferencia:
4 3
1
) (
2
+ +
=
s s
s G
En matlab
>>num=[1];
>>den=[1 3 4];
Para determinar la respuesta en el tiempo para una entrada escaln unitario de
este sistema se usa el comando step indicando el vector del numerador y del
denominador entre parntesis. step(num,den)
>>step(num,den)
MatLab presenta la respuesta en el tiempo en la ventana de figuras:
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Puede definirse el tiempo en el cual se desea la respuesta al escaln, mediante
un vector de tiempo t, step(num,den,t)
>>t=0:0.1:20;
>>step(num,den,t)
Se define t como un vector cuyo elemento inicial es 0, su elemento final es 20 y
existen elementos que son el incremento desde 0 hasta 20 de 0.1 en 0.1. Al
ejecutar el comando step se obtiene en la ventana de figuras la respuesta
escaln para los primeros 20 segundos.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Para obtener la respuesta en el tiempo para una entrada impulso unitario se
usa el comando impulse.
Si se define el sistema en MatLab por los polinomios del numerador y
denominador de la funcin de transferencia tenemos:
num=[1 ];
den=[1 3 4];
impulse(num,den)
MatLab presenta la respuesta en el tiempo en la ventana de figuras:
Para los sistemas de tiempo discreto Matlab permite calcular la respuesta
temporal ante diferentes seales de entrada
Debe definirse el numerador Num(z) y el denominador Den(z) como vectores,
cuyos elementos son los coeficientes de los polinomios del numerador y del
denominador en potencias decrecientes de z. Por ejemplo, para definir la
funcin de transferencia:
8 . 0 5 . 1
3 . 0 5 . 0
) (
2
+
+
=
z z
z
z G
En matlab
>>num=[0.5 0.3];
>>den=[1 -1.5 0.8];
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Para determinar la respuesta en el tiempo para una entrada escaln unitario de
este sistema se usa el comando filter(num,den, u) indicando el vector del
numerador y del denominador y la seal escaln definida como u(k) entre
parntesis.
num=[0.5 0.3];
den=[1 -1.5 0.8];
u= ones(1,41);
y=filter(num,den,u);
plot(y,'o')
El comando filter hace un calculo numrico, pero no realiza la grafica
directamente, por lo cual hay que utilizar el comando plot para obtener un
resultado grafico.
MatLab presenta la respuesta en el tiempo en la ventana de figuras:
Para determinar la respuesta en el tiempo para una entrada impulso unitario se
usa el comando filter(num,den, u) indicando el vector del numerador y del
denominador y la seal impulso definida como u(k) entre parntesis.
num=[0.5 0.3];
den=[1 -1.5 0.8];
u= [1 zeros(1,40)];
y=filter(num,den,u);
plot(y,'o')
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Y se obtiene en la ventana de figuras
LECCIN 20. RESPUESTA EN FRECUENCIA DE SISTEMAS
Para el estudio de un sistema en el dominio de la frecuencia existen tres
herramientas disponibles en MatLab que son: los diagramas de Bode, de
Nyquist y de Nichols.
Para obtener el diagrama de Bode de una funcin de transferencia, se definen
dos vectores cuyos elementos son los coeficientes de los polinomios del
numerador y del denominador en potencias decrecientes de s. Estos vectores
son usados en el comando bode con la siguiente sintaxis:
bode(num,den).
Por ejemplo, se define la funcin de transferencia:
4 3
1
) (
2
+ +
=
s s
s G
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
En Matlab
>>num=[1];
>>den=[1 3 4];
>>bode(num,den)
En el diagrama de figuras se observa el diagrama de Bode
Para especificar un rango deseado de frecuencias en las cuales se desea
obtener el diagrama de Bode, se emplea un vector de frecuencias en el que se
especifica la frecuencia inicial, el incremento y la frecuencia final. Por ejemplo:
>>W=0:0.1:100;
>>bode(num,den,W)
Este comando muestra el diagrama de Bode entre 0 y 100 rad/s.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Otra herramienta de anlisis en el dominio en la frecuencia que ofrece MatLab
es el diagrama de Nichols. Para obtener el diagrama de Nichols se utiliza el
comando nichols, cuya sintaxis es igual a la del comando bode.
Si se define num como el vector de los coeficientes del polinomio del
numerador y den como el del denominador:
>>num=[1];
>>den=[1 3 4];
>>nichols(num,den)
MatLab presenta en la ventana de figuras el diagrama de Nichols:
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Otra herramienta de anlisis en el dominio en la frecuencia que ofrece MatLab
es el diagrama de Nyquist. Para obtenerlo se utiliza el comando nyquist, con
sintaxis igual a la de los dos comandos anteriores
>>num=[1];
>>den=[1 6 5];
>>nyquist(num,den)
MatLab presenta en la ventana de figuras el diagrama de Nyquist:
Para obtener el margen de ganancia, el margen de fase, la frecuencia de cruce
de ganancia y la frecuencia de cruce de fase MatLab dispone del comando
margin.
Margin (num,den) devuelve el diagrama de Bode con el calculo de margen de
fase y margen de ganancia. Por ejemplo
num=[1];
den=[1 0.5 2];
margin(num,den)
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
El comando [Gm,Pm,Wcg,Wcp] = margin(num,den) devuelve los valores
numericos de margen de fase, margen de ganancia y las frecuencias en las
cuales se dan estos cruces. Por ejemplo
num=[1];
den=[1 0.5 2];
[Gm,Pm,Wcg,Wcp]=margin(num,den)
Gm =
Inf
Pm =
53.6248
Wcg =
NaN
Wcp =
1.6103
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
S SE EG GU UN ND DA A U UN NI ID DA AD D
MODELAMIENTO MATEMTICO Y FUNDAMENTOS DE
PROGRAMACIN
CAPTULO 2
OPERACIONES CON ARREGLOS
LECCIN 21. VECTORES Y CADENAS (Concepto y Definicin)
En la mayora de lenguajes de programacin las matrices y los vectores se
constituyen como un conjunto de datos del mismo tipo que son agrupados bajo
un mismo nombre y donde se especifica la cantidad de elementos que los
componen, en Matlab para definir una matriz o un vector no es necesario
establecer su tamao, el programa determina el numero de filas y de columnas
de acuerdo al nmero de elementos que se proporcione.
Los vectores se definen por filas o por columnas, por ejemplo un vector fila x se
expresa:
>>x=[1 5 6]
La respuesta de matlab es
x=
1 5 6
Un vector columna se expresa como
y=[1; 3; 6]
y se observa en la pantalla como
y=
1
3
6
2.1. OPERACIN CON VECTORES
Matlab permite realizar operaciones con vectores y con matriz de datos. Las
siguientes instrucciones nos permiten la manipulacin de vectores.
Dado los vectores p1 y p2, tenemos
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
p1+p2, p1-p2 Operaciones bsicas con vectores
p Transpuesta de un vector
p=a:n:b Genera un vector cuyas componentes van desde a hasta b
con intervalos de n
p(n) Accede a la componente n del vector p
k*p1 Multiplica el vector p1 por el escalar k
p1.*p2 Multiplica elemento a elemento los vectores p1 y p2
p1.^n Eleva a la ensima cada componente de p1.
En la siguiente tabla se muestran algunos ejemplos de las operaciones con
vectores.
1. [1 3 5 7] + [2 4 6 4]
p1=[1 3 5 7];
p2=[2 4 6 4];
p1+p2
ans =
3 7 11 11
1. Calcular la transpuesta
del siguiente vector
[1 3 5 7]
p1=[1 3 5 7];
p1'
ans =
1
3
5
7
2. Hallar el componente
nmero 3 del siguiente
vector
[1 3 5 7]
p1=[1 3 5 7];
p1(3)
ans =
5
4. Calcular 5*[1 3 5 7]
p1=[1 3 5 7];
5*p1
ans =
5 15 25 35
3. Multiplicar componente a
componente los
siguientes vectores
[1 3 5 7]
[2 4 6 4]
p1=[1 3 5 7];
p2=[2 4 6 4];
p1.*p2
ans =
2 12 30 28
4. Elevar al cuadrado las
componentes de
[1 3 5 7]
p1=[1 3 5 7];
p1.^2
ans =
1 9 25 49
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
2.2. FUNCIONES QUE ACTAN SOBRE VECTORES
En la siguiente tabla se muestran algunas de las funciones que permiten
trabajar con vectores exclusivamente, tomando a x como un vector tenemos:
Funcin Descripcin
[max,pos]=max(x) Devuelve el valor mximo de x y la posicin que
ocupa
min(x) Devuelve el valor mnimo y la posicin que ocupa
sum(x) Suma los elementos de un vector
mean(x) Retorna el valor medio de los elementos de un
vector
prod(x) Producto de los elementos de un vector
[y,i]=sort(x) Ordena de menor a mayor los elementos del vector
x. Devuelve el vector ordenado en y, y un vector i
con las posiciones iniciales en x de los elementos
ordenados
Diseo: Juan Monroy
Estas funciones se pueden aplicar a los vectores columna que componen una
matriz, si estas funciones se quieren aplicar a las filas de la matriz basta aplicar
dichas funciones a la matriz traspuesta.
LECCIN 22. MATRICES (Concepto y Definicin)
En Matlab la matriz es un conjunto de datos del mismo tipo al cual debe
asignrsele un nombre. Para definir una matriz no hace falta establecer
previamente su tamao ya que Matlab lo determina de acuerdo al nmero de
elementos que se ingresan. Las matrices se definen por filas, los elementos de
una misma fila estn separados por espacios o comas, y las filas estn
separadas por enter o punto y coma (;).
Por ejemplo la matriz
(
(
(
=
9 8 7
6 5 4
3 2 1
A
Se define e ingresa en Matlab como
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Y lo muestra as:
22.1. OPERACIN CON MATRICES
Matlab permute realizar las operaciones bsicas al igual que con los vectores y
adems proporciona comandos adicionales para desarrollar otras operaciones.
Los comandos bsicos son los siguientes. Dados las matrices a1 y a2:
a1+a2, a1-a2 Operaciones bsicas con matrices
a Transpuesta de la matriz a
a(n,m) Accede a la componente n,m de una matriz a
k*a Multiplica la matriz a por el escalar k
a1.*a2 Multiplica elemento a elemento las matrices a1 y a2
a.^n Eleva a la ensima cada componente de a1.
Inv (a) Calcula la inversa de una matriz
Det (a) halla el determinante de a
reshape(a,x,y) cambia el orden de una matriz
b=a(:) convierte la matriz a en un vector
ones (n) Crea una matriz cuadrada de orden n cuyos componentes
son unos
eye (n) Crea una matriz diagonal de orden n
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
A continuacin se presentan algunos ejemplos
1.
(
(
(
+
(
(
(
3 2 5
6 4 8
1 7 1
5 9 3
7 6 1
8 4 2
a1=[2 4 8;1 6 7; -3 9 5];
a2=[1 7 -1;8 4 6;-5 2 3];
a1+a2
ans =
3 11 7
9 10 13
-8 11 8
2. Calcular la transpuesta de
(
(
(
5 9 3
7 6 1
8 4 2
a1=[2 4 8;1 6 7; -3 9 5];
a1'
ans =
2 1 -3
4 6 9
8 7 5
2. Calcular la inversa de
(
(
(
5 9 3
7 6 1
8 4 2
a1=[2 4 8;1 6 7; -3 9 5];
inv(a1)
ans =
-0.7174 1.1304 -0.4348
-0.5652 0.7391 -0.1304
0.5870 -0.6522 0.1739
3. Encontrar el
componente (2,3) de la
matriz
(
(
(
5 9 3
7 6 1
8 4 2
a1=[2 4 8;1 6 7; -3 9 5];
a1(2,3)
ans =
7
4. Cambiar el orden de la
siguiente matriz
(
(
(
1 5 9 3
3 7 6 1
6 8 4 2
a=[2 4 8 6;1 6 7 3; -3 9 5 1];
reshape(a,2,6)
ans =
2 -3 6 8 5 3
1 4 9 7 6 1
7. Crear una matriz diagonal
de orden 4
eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
22.2. FUNCIONES QUE ACTAN SOBRE MATRICES
En la siguiente tabla se muestran algunas de las funciones para el manejo de
matrices, por supuesto que exige que sus argumentos sean matrices (A).
Funcin Descripcin
V = poly(A) Devuelve un vector v con los coeficientes del
polinomio caracterstico de la matriz cuadrada A
t = trace(A) Retorna la traza t (suma de los elementos de la
diagonal) de una matriz cuadrada A
[m,n] = size(A) Devuelve el nmero de filas m y de columnas n de
una matriz rectangular A
N = size(A) Devuelve el orden de una matriz cuadrada A
nf = size(A,1) Devuelve el nmero de filas de A
nc = size(A,2) Retorna el nmero de columnas de A
exp(A) Calcula la exp a cada uno de los elementos de la
matriz A
sqrt(A) Calcula la raz cuadrad a cada uno de los
elementos de la matriz A
log(A) Calcula el logaritmo en base diez a cada uno de los
elementos de la matriz A
B = inv(A) Calcula la inversa de A.
D = det(A) Retorna el determinante d de la matriz cuadrada A
X = linsolve(A,b) La funcin linsolve permite resolver sistemas de
ecuaciones lineales. Esta funcin no trata de
averiguar las caractersticas de la matriz que
permitan hacer una resolucin ms eficiente: se fa
de los datos suministrados por el usuario. Si son
incorrectos arrojara datos de igual tipo sin ningn
mensaje de error.
Diseo: Juan Monroy
LECCIN 23. OTRAS FORMAS DE DEFINIR MATRICES
Adems de la alternativa de definir una matriz a partir del teclado, es posible en
MATLAB utilizar otras formas ms potentes y generales de definir y/o modificar
matrices.
23.1. TIPOS DE MATRICES PREDEFINIDOS
MATLAB dispone de varias funciones orientadas que permiten definir
fcilmente matrices de tipos particulares.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Algunas de estas funciones son las siguientes:
Funcin Descripcin
eye(3) forma la matriz unidad de tamao (33)
zeros(3,2) forma una matriz de ceros de tamao (32)
ones(2) forma una matriz de unos de tamao (22)
linspace(x1,x2,n) genera un vector con n valores igualmente
espaciados entre x1 y x2
logspace(d1,d2,n) genera un vector con n valores espaciados
logartmicamente entre 10^d1 y 10^d2. Si d2 es pi,
los puntos se generan entre 10^d1 y pi
rand(4) forma una matriz de nmeros aleatorios entre 0 y 1,
con distribucin uniforme, de tamao (44)
randn(3) forma una matriz de nmeros aleatorios de tamao
(33), con distribucin normal, de valor medio 0 y
varianza 1.
magic(4) crea una matriz (44) con los nmeros 1, 2, ... 4*4,
con la propiedad de que todas las filas y columnas
suman lo mismo
kron(x,y) produce una matriz con todos los productos de los
elementos del vector x por los elementos del vector
y. Equivalente a x'*y, donde x e y son vectores fila
compan(pol) construye una matriz cuyo polinomio caracterstico
tiene como coeficientes los elementos del vector
pol (ordenados de mayor grado a menor)
Diseo: Juan Monroy
Existen otras funciones que puede consultar en el archivo matlab70primero.pdf
de la documentacin anexa
23.2. FORMACIN DE UNA MATRIZ A PARTIR DE OTRAS
MATLAB permite crear una nueva matriz a partir de otra o de otras, pero
requiere de dos funciones auxiliares:
[m,n]=size(A) devuelve el nmero de filas y de columnas de la matriz A.
Si la matriz es cuadrada basta recoger el primer valor de retorno
n=length(x) calcula el nmero de elementos de un vector x
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Funcin Descripcin
zeros(size(A)) Forma una matriz de ceros del mismo orden de la
matriz A previamente creada
ones(size(A)) Crea una matriz de unos del mismo orden de la
matriz A previamente creada
A=diag(x) Forma una matriz diagonal A cuyos elementos
diagonales son los elementos del vector existente x
x=diag(A) Genera un vector x a partir de los elementos de la
diagonal de la matriz A ya existente
diag(diag(A)) Crea una matriz diagonal a partir de la diagonal
principal de la matriz A
blkdiag(A,B) Genera una matriz diagonal de submatrices a partir
de las matrices A y B
Triu(A) Forma una matriz triangular superior a partir de una
matriz A.
Tril(A) Forma una matriz triangular inferior a partir de una
matriz A.
23.3. OPERADOR DOS PUNTOS (:)
Este operador se puede usar de varias formas.
Ejemplos:
Definir un vector x de forma tal que sus elementos estn compuestos
por los nmeros dados en un rango. El incremento por defecto es de 1,
>> x=5:10
x =
5 6 7 8 9 10
Definir un vector en un rango dado, con un incremento especfico
>> x=5:1.5:10
x =
5.0000 6.5000 8.0000 9.5000
Extraer los elementos de una fila de la matriz A
>> A=magic(3)
A =
15 0 6
7 32 7
1 22 20
El siguiente comando extrae los 2 primeros elementos de la segunda
fila:
>> A(2, 1:2)
ans =
7 32
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
El siguiente comando extrae todos los elementos de la primera fila:
>> A(1, :)
ans =
15 0 6
Los elementos de la ltima fila se extraen con el comando
>> A(end, :)
ans =
1 22 20
Extraer los elementos de determinadas filas
>> A([1 3],:)
ans =
15 0 6
1 22 20
Reemplazar los elementos de determinadas filas de una matriz B por las de otra matriz A
>> B([1 2 3],:)=A(1:3,:)
B =
15 0 6
7 32 7
1 22 20
LECCIN 24. ESTRUCTURAS
Las estructuras son elementos que pueden almacenar variables de diferente
tipo bajo un mismo nombre, por ejemplo podemos crear una estructura que
contenga el nombre del estudiante, cdigo y genero. A diferencia de los
lenguajes de programacin, no hace falta definir previamente el modelo o
patrn de la estructura.
Una posible forma de hacerlo es crear uno a uno los distintos campos, como en
el ejemplo siguiente:
>> estudiante.nombre='Pedro'
estudiante =
nombre: 'Pedro'
>> estudiante.codigo=123456789
estudiante =
nombre: 'Pedro'
codigo: 123456789
>> estudiante.genero=M
estudiante =
nombre: 'Pedro'
codigo: 123456789
genero=M
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Para el acceso a los miembros o campos de una estructura se utiliza el
operador punto (.), este se ubica entre el nombre de la estructura y el nombre
del campo (por ejemplo: estudiante.nombre).
Tambin puede crearse la estructura por medio de la funcin struct():
>> estudiante = struct('nombre', 'Pedro', 'codigo', 76589,genero,M)
estudiante =
nombre: 'Pedro'
codigo: 123456789
genero=M
Pueden crearse vectores y matrices (e hipermatrices) de estructuras. La
siguiente instruccin da un ejemplo:
>> estudiante (8) = struct('nombre', 'Pedro', 'codigo', 76589,genero,M)
Por medio de esta instruccin se crea un vector de 8 elementos donde el
octavo elemento es inicializado con los argumentos de la funcin struct(); el
resto de los campos se inicializan con valores vacios
Para aadir nuevos campos a la estructura simplemente se realiza como si se
accediera a l para darle un valor
>> estudiante(5).edad=44;
24.1. FUNCIONES PARA OPERAR CON ESTRUCTURAS
Algunas de las funciones que se pueden utilizar en Matlab para el manejo de
las estructuras son las siguientes:
Funcin Descripcin
fieldnames() Devuelve un vector de celdas con cadenas de
caracteres que recogen los nombres de los campos
de una estructura
isfield(E,s) Determina si la cadena s es un campo de una
estructura E
isstruct(E) Permite determinar si E es o no una estructura
rmfield(E,s) Elimina el campo s de la estructura E
getfield(E,s) Retorna el valor del campo especificado s. de la
estructura E.
setfield(E,s,v) Asigna el valor v al campo s de la estructura E.
Diseo: Juan Monroy
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
24.2. ESTRUCTURAS ANIDADAS
MATLAB permite definir estructuras anidadas, es decir estructuras con
campos que a la vez son estructuras. Para acceder a los campos de la
estructura ms interna se utiliza dos veces el operador punto (.), como puede
verse en el siguiente ejemplo
>> clase=struct('Zona','Boyac','Cead','Sogamoso', ...
'estudiante', struct('nombre','Maria', 'edad',25))
clase =
Zona: 'Boyac'
Cead: 'Sogamoso'
estudiante: [1x1 struct]
>> clase.estudiante(2).nombre='Jos';
>> clase.estudiante(2).edad=27;
>> clase.estudiante(2)
ans =
nombre: 'Jos'
edad: 27
>> clase.alum(1)
ans =
nombre: 'Maria'
edad: 25
LECCIN 25. APLICACIONES
Retomando el ejercicio de la Leccin 10 en donde se peda encontrar las
corrientes de malla I
1
, I
2
e I
3
del circuito:
+
-
Vs1
10V
R5
10
R4
5
R3
8
R2
4
R1
10
Se Define el sistema de ecuaciones de malla del circuito.
0 23 5 8
10 5 9 4
0 8 4 22
3 2 1
3 2 1
3 2 1
= +
= +
=
I I I
I I I
I I I
I
2
I
3
I
1
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Resolviendo el sistema proseguimos a encontrar el determinante de la matriz
A:
2740
23 5 8
5 9 4
8 4 22
=
= A
Una vez que hemos encontrado el determinante de la matriz A procedemos a
buscar las incgnitas del sistema en este caso I
1
, I
2
e I
3
.
A I 4848 . 0
2740
1320
23 5 0
5 9 10
8 4 0
1
= =
A
=
A I 61 . 1
2740
4420
23 0 8
5 10 4
8 0 22
2
= =
A
=
A I 51 . 0
2740
1420
0 5 8
10 9 4
0 4 22
3
= =
A
=
Matlab nos permite el clculo de las corrientes mediante el clculo de los
determinantes de la siguiente forma
a=[22 -4 -8;-4 9 -5;-8 -5 23];
det(a)
ans =
2740
b=[0 -4 -8;10 9 -5;0 -5 23];
I1=det(b)/det(a)
I1 =
0.4818
a=[22 -4 -8;-4 9 -5;-8 -5 23];
c=[22 0 -8;-4 10 -5;-8 0 23];
I2=det(c)/det(a)
I2 =
1.6131
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
d=[22 -4 0;-4 9 10;-8 -5 0];
a=[22 -4 -8;-4 9 -5;-8 -5 23];
I3=det(d)/det(a)
I3 =
0.5182
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
S SE EG GU UN ND DA A U UN NI ID DA AD D
MODELAMIENTO MATEMTICO Y FUNDAMENTOS DE
PROGRAMACIN
CAPTULO 3
FUNDAMENTOS DE PROGRAMACIN Y LENGUAJES DE DESCRIPCIN
DE HARDWARE
LECCIN 26. CONCEPTOS Y TIPOS DE DATOS
En esta unidad se busca conocer los elementos bsicos en la programacin y a
partir de ellos definir soluciones a problemas de programacin a bajo nivel,
conceptos fundamentales para el manejo de circuitos programables.
26.1. CONCEPTOS
Un algoritmo es un conjunto de pasos lgicos, exentos de ambigedad, que
buscan solucionar un problema determinado.
Los algoritmos se pueden representar a partir de diagramas de flujo o de
pseudocdigo.
Pseudocdigo: El pseudocdigo utiliza palabras del lenguaje cotidiano para
reasentar as el conjunto de pasos a seguir. Dentro de las palabras estn:
PALABRA DESCRIPCIN
Inicio
Determina el punto de partida del algoritmo, o de una
subrutina
Fin Finaliza el algoritmo, o una subrutina
Leer
Representa la captura de informacin a travs de
cualquier medio o dispositivo de entrada.
Imprimir
Representa la visualizacin de informacin a travs de
cualquier medio o perifrico de salida.
SI..Entonces Permite disear condicionales
SI..Entonces..De lo
contrario
Adems de la condicin permite determinar las
instrucciones a ejecutar si la condicin no se cumple.
Y, O
Permiten realizar operaciones lgicas al disear una
condicin
En caso de
Evala el valor de una variable dentro de un conjunto
de posibles alternativas.
Para
Determina el nmero de veces a repetir un conjunto
de instrucciones.
Mientras
Repite un grupo de instrucciones tantas veces como
se cumpla una condicin evaluada al inicio de cada
ciclo repetitivo.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Hacer..mientras
Repite un grupo de instrucciones tantas veces como
se cumpla una condicin evaluada al final de cada
ciclo repetitivo.
Diseo: Juan Monroy
Diagrama de Flujo: El diagrama de flujo utiliza smbolos grficos para
representar el conjunto de pasos del algoritmo. Dentro de estos smbolos
bsicos y que se requieren para estructurar algoritmos para programacin a
bajo nivel tenemos:
SMBOLO DESCRIPCIN
Determina el punto de partida del algoritmo
Finaliza el algoritmo, o permite definir el inicio de una
subrutina
Representa la captura de informacin a travs de
cualquier medio o dispositivo de entrada.
Representa la visualizacin de informacin a travs de
cualquier medio o perifrico de salida.
Permite disear condicionales
Permite estructurar el desarrollo de una operacin
aritmtica o lgica.
Indica el sentido en el que se ejecutan las
instrucciones
Diseo: Juan Monroy
26.2. TIPOS DE DATOS.
Aunque para la programacin abajo nivel se manejan nicamente
representaciones binarias de la informacin, es importante reconocer que a
nivel de computadores existen los siguientes tipos de datos:
Numricos: Aquel conjuntos de datos que representa cifras numricas
ya sea su parte entera nicamente (nmeros enteros), o su parte entera
y decimal (nmeros reales).
Ejemplo
Enteros: 45; 56; 78; -34
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Reales: 23.56; 5789.09; 0.00000067;
Alfanumricos: Conjunto de datos formados por informacin de tipo
carcter, la cual puede agruparse para formar las cadena de caracteres,
o presentarse de manera individual formando el carcter.
Ejemplo
Caracteres: 4; i; A
Cadenas: hola Mundo; Unad; Cad Electrnica 1911
Bolanos: Son datos que pueden presentar nicamente dos valores
posibles, ya se un 1 lgico o un cero lgico, los cuales representan la
presencia o ausenta de voltaje y dependiendo del contexto pueden
significar la presencia de 5 voltios y 0 voltios respectivamente, 3.3 v y 0
v, etc.
LECCIN 27. INSTRUCCIONES E/S, DE SELECCIN
27.1. INSTRUCCIONES DE ENTRADA/SALIDA
Como se mostr con anterioridad, existen elementos que permiten definir el
procedimiento para la captura de informacin y la visualizacin de resultados,
en cada uno de estos procesos interviene elementos tanto para la captura de
los datos, as como para su visualizacin, estos elementos pueden ser por
ejemplo sensores, interruptores, pulsadores, cualquier elementos que permita
realizar la captura de una seal, de igual forma para la visualizacin podemos
utilizar: leds, display siete segmentos, matriz de leds, motores, etc, es decir
cualquier elemento que permita reflejar el resultado de la informacin
procesada; sin embargo a nivel de algoritmo esto no tiene relevancia ya que
solo necesitamos representar la operacin, esto cobra importancia en el
momento del diseo del circuito.
Diseo: Juan Monroy
PROCESAMIENTO
Sensores
Interruptores
Pulsadores
Salida Ctos
Leds
Display Siete
Segmentos
Matriz de leds
Motores
ENTRADA SALIDA
Pseudocdigo: IMPRIMIR
Diagrama
de Flujo
Pseudocdigo: LEER
Diagrama
de Flujo
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
27.2. INSTRUCCIONES DE SELECCIN
Este tipo de instrucciones permite decidir entre ejecutar un grupo de
instrucciones o no, dependiendo de que se cumpla o no una condicin. La
condicin se evala para determinar si es cierta, es decir si su valor de verdad
es verdadero.
27.2.1. Comparadores. La condicin se disea comparando dos elementos a
parir de los siguientes comparadores:
Mayor que >
Menor que <
Mayor o igual >=
Menor o igual <=
Igual =
Diferente <>
Ejemplo
a>b ; la respuesta a esta comparacin solo puede ser verdadera o
falsa
A>=56 ;se compara una variable con una constante
78<=B ; no se puede determinar su valor de verdad ya que se
desconoce el valor de la variable B
34<>56 ;su valor de verdad (verdadero) se puede determinar ya
que se estn comparando dos constantes
27.2.2. Operadores lgicos. Si se necesita hacer ms de una comparacin, se
requiere el uso de operadores lgicos, los cuales operan los valores de verdad
de cada comparacin para as llegar a un nico valor.
Los operadores lgicos utilizados son el y y el o, cuyas tablas de verdad se
relacionan a continuacin.
Operador y, ^, and
C1 C2 C1 y C2
V V V
V F F
F V F
F F F
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Operador o, v, or
C1 C2 C1 y C2
V V V
V F F
F V F
F F F
27.2.3. Condicionales. Una vez tratados los comparadores y operadores
lgicos vamos a trabajar con la condicional a partir de un ejemplo y mostrando
el algoritmo en pseudocdigo y en diagramas de flujo, pero antes vamso a
considerar la sintaxis de cada uno de ellos
Sintaxis Diagrama de Flujo
La ubicacin del Si o el No, pueden ir en cualquiera de las puntas de rombo,
lo importante es definir claramente cada uno de los caminos a tomar dad la
respuesta cierta falsa de la condicin.
Condicin
Instrucciones a
ejecutar si se
cumple la
condicin
Instrucciones a
ejecutar si NO
se cumple la
condicin
No
Si
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Sintaxis Pseudocdigo
Si (Condicin) entonces
_______
_______ Instrucciones a ejecutar si se cumple la condicin
_______
De lo contrario
_______
_______ Instrucciones a ejecutar si no se cumple la condicin
_______
Fin si
Es importante aclarar que no es posible que exista un De lo contrario sin la
presencia de un Si entonces
27.2.4. Ejemplos
Ejemplo 1. Suponga que s requiere realizar un programa que determine cuales
el mayor de dos nmeros:
Solucin.
Es necesario tener en cuenta que los dos nmeros deben ser ledos (ingresar a
travs de cualquier dispositivo de entrada), los vamos a denominar N1 y N2
Pseudocdigo
Inicio
Leer N1
Leer N2
Si N1>N2 entonces
Imprimir N1
De lo contrario
Imprimir N2
Fin Si
Fin
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Diagrama de Flujo
Ejemplo 2. Realizar un algoritmo para determinar cual es el mayor de tres
nmeros.
Pseudocdigo
Inicio
Leer N1,N2,N3
Si (N1>N2) y (N1>N3) entonces
Imprimir N1
De lo contrario
Si (N2>N3)
Imprimir N2
De lo contrario
Imprimir N3
Fin si
Fin si
Fin
El primer Si determina si el mayor de los tres nmero es N1, si esto no es
cierto, queda por evaluar cual de los otros dos nmeros es mayor, N2 o N3.
Inicio
N1, N2
N1>N2
N2 N1
Fin
Si No
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Diagrama de Flujo
Ejemplo 3. Realice un algoritmo que determine si una vocal leda es abierta o
cerrada
Pseudocdigo
Inicio
Leer vocal
Si (vocal=a) o (vocal=e) o (vocal=o) entonces
Imprimir Vocal Abierta
De lo contrario
Imprimir Vocal Cerrada
Fin si
Fin
Es necesario utilizar el operador o ya hay tres posibilidades de que la vocal
sea abierta, por tanto al evaluar cada una de ellas a, e y o se debe llegar a
la misma respuesta.
Inicio
N1, N2,N3
N1>N2 y
N1>N3
N3
N1
Fin
Si No
N2>N3
N2
Si
No
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Diagrama de Flujo
LECCIN 28. INSTRUCCIONES REPETITIVAS
Ordenes que permiten repetir un nmero determinado de veces la ejecucin de
un grupo de instrucciones. Bsicamente encontramos tres tipos de
instrucciones:
28.1 PARA. Se recomienda su uso cuando se conoce de antemano el
nmero de veces a repetir.
Sintaxis
Para variable=valor inicial, hasta valor final, variable=variable+incremento
_________
_________ Instrucciones a repetir
_________
Fin para
La variables es la que lleva el conteo del nmero de veces que se ha repetido
las instrucciones, por ello debe tener un valor inicial y un valor final, para poder
llevar el conteo es necesario determinar de cuanto en cuanto se cuenta, de ah
que sea necesario definir el incremento de la variable
Inicio
vocal
(vocal = a) O
(vocal = e) O
(vocal = o )
Vocal
Cerrada
Vocal
Abierta
Fin
Si No
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Ejemplo Realice un algoritmo para imprimir los nmero de 1 hasta 20
Pseudocdigo
Inicio
Para i=1, hasta 20, i=i+1
Imprimir i
Fin para
Fin
Diagrama de flujo
28.2 MIENTRAS. Se utiliza cuando es necesario verificar una condicin antes
de ejecutar cada uno de los ciclos posibles de repeticiones.
Sintaxis
Mientras (Condicin)
_________
_________ Instrucciones a repetir
_________
Fin Mientras
Ejemplo. Realice un programa que determine el nmero de divisores de un
nmero m. Suponemos la existencia de una funcin Residuo que calcula el
resto de una divisin.
Inicio
i
Fi
n
Si
No
i=1
i=20
i=i+1
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Pseudocdigo
Inicio
Leer m
Divisor=1
Cantidad_divisores=0
Mientras (Divisor<=m)
If (Residuo(m,Divisor)=0) entonces
Cantidad_divisores=Cantidad_divisores+1
Fin si
Divisor=Divisor+1
Fin Mientras
Imprimir (Cantidad_divisores)
Fin
Diagrama de Flujo
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
28.3 HACER.. MIENTRAS. Se usa cuando es necesario repetir un grupo de
instrucciones y al final de cada ciclo determinar si es necesario volver a
repetir o no.
Inicio
m
Divisor=1
Cantidad_divisores=0
Divisor<=m
Residuo(m,Divisor) =0
Cantidad_divisores=Cantidad_divisores+1
Si
Si
Divisor=Divisor+1
No
No
Cantidad_divisores
Fin
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Sintaxis
Hacer
_________
_________ Instrucciones a repetir
_________
Mientras (Condicin)
Ejemplo. Realice un programa que realice una divisin entera entre dos
nmeros A y B a partir de restas sucesivas. Suponemos A mayor que B
Pseudocdigo
Inicio
Leer A
Leer B
Cociente=0
Hacer
A=A-B
Cociente=Cociente+1
Mientras (A>B)
Imprimir (Cociente)
Fin
Diagrama de Flujo
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
LECCIN 29. FUNDAMENTOS DE PROGRAMACION EN
MATLAB
MATLAB es una aplicacin en la que se puede programar, es decir configurar
una serie de instrucciones para que se realice una tarea especfica, no es tan
potente como un lenguaje de Programacin como C++ o Java, pero ofrece un
buen nmero de posibilidades y se convirtindose en una herramienta
importante de aprendizaje en los fundamentos de programacin, esenciales en
la implementacin de circuitos programables.
29.1. OPERADORES RELACIONALES
MATLAB utiliza la siguiente simbologa para el manejo de operadores
relacionales:
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
Inicio
A,B
Cociente=0
A>B
Cociente=Cociente+1
Si
A=A-B
No
Cociente
Fin
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
== igual a
~= diferente a
Al igual que en C, si una comparacin se cumple el resultado es 1 (true),
mientras que si no se cumple es 0 (false). Recprocamente, cualquier valor
distinto de cero es considerado como true y el cero equivale a false.
Ejemplo
>> A=[5 -3;2 1]; B=[0 -3;1 7];
>> A==B
ans =
0 1
0 0
29.2. OPERADORES LGICOS
La simbologa que utiliza MATLAB para los operadores lgicos son:
Operador Descripcin
& (y). Se evalan siempre el valor de verdad de los dos
operandos, el resultado es true slo si ambos son true.
&& (y breve). No necesariamente termina evaluando los dos
operandos, si el primer operando es false ya no se
evala el segundo, esto porque el resultado final ya no
puede ser ms que false. Es muy til sobre todo cuando
se trabaja con matrices, reduciendo el tiempo de clculo
y proceso
| (o) Retorna false si al evaluar ambos operandos cada
uno de ellos es false de lo contrario devuelve true.
|| (o breve). si el primer operando es true ya no se evala
el segundo, pues el resultado final no puede ser ms
que true.
~ Negacin lgica, si el operando es true retorna false
xor(A,B) Realiza un "o exclusivo", es decir, devuelve false si
ambos operandos tienen el mismo valro de verdad de lo
contrario retorna true
Diseo: Juan Monroy
El siguiente ejemplo muestra como se utilizan los operadores y a la vez como
filtrar un posible error de divisin por cero al usar un operador breve
r = (b~=0) && (a/b>0);
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
29.3. CONDICIONALES
MATLAB dispone de instrucciones sentencias para realizar las condicionales,
vistas en las alecciones anteriores
29.3.1. INSTRUCCIN IF
Sintaxis general
if condicion
sentencias
end
Sintaxis de bifurcacin mltiple es decir se concatenan las condiciones en
funcin de lo que se desea evaluar o ejecutar
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opcin por defecto para cuando no se cumplan las condiciones 1,2,3
bloque4
end
Ejemplo
>>r=30000;
>>if r==10000
disp (Resistencia de 10 kilo ohmios)
elseif r==20000
disp (Resistencia de 20 kilo ohmios)
elseif r==30000
disp (Resistencia de 30 kilo ohmios)
end
Resistencia de 30 kilo ohmios
29.3.2. INSTRUCCIN SWITCH
La instruccin switch realiza una tarea anloga a los if...else if concatenados.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Sintaxis
switch expresion
case Valor1,
bloque1
case {Valor2, Valor3, Valor4}
bloque2
...
otherwise, % opcin por defecto
bloque3
end
Los bloques de instrucciones deben ubicarse hacia la derecha segn la
dependencia de la instruccin anterior a ella, esto se hace para que el
programa resulte ms legible, resultando ms fcil ver dnde empieza y
termina la bifurcacin o el bucle. Es muy recomendable seguir esta prctica de
programacin.
En la sintaxis la palabra expresin hace referencia a la variable o resultado de
operacin que se pretende evaluar, este se compara con casa uno de los
posibles valores ubicados como Valor1, Valor2, etc, si resulta ser igual a uno
de ellos, se ejecuta el bloque de instrucciones que dependan de ello, si no
resulta ser igual a alguno de estos valores se ejecutar lo que dependa de
otherwise.
>>r=30000;
>>switch r
case 10000
disp (Resistencia de 10 kilo ohmios)
case 20000
disp (Resistencia de 20 kilo ohmios)
case 30000
disp (Resistencia de 30 kilo ohmios)
end
Resistencia de 30 kilo ohmios
29.4. LECTURA Y ESCRITURA INTERACTIVA DE VARIABLES
A continuacin se da una explicacin de cmo utilizar una forma sencilla de
leer variables desde teclado y escribir mensajes en la pantalla.
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
FUNCIN INPUT
La funcin input permite capturar un valor digitado por el usuario, para ello
permite imprimir un mensaje en la lnea de comandos de MATLAB, con el fin de
guiar al usuario en el proceso; despus de imprimir el mensaje, el programa
espera que el usuario teclee el valor numrico o la expresin; el usuario puede
teclear los valores de un vector o matriz o en general cualquier expresin, esta
es evaluada con los valores actuales de las variables de MATLAB y el
resultado se devuelve como valor de retorno.
Ejemplo
>> semestre = input('Por favor digite el semestre que cursa')
La variable semestre almacenar un valor de tipo numrico
Otra forma de emplear la funcin es estableciendo que no evale la expresin
introducida por el usuario (a travs del parmetro 's') as:
>> nombre = input('Digite su nombre?','s')
Ac la expresin digitada por el usuario no es evaluada y se almacena en la
cadena nombre como texto.
FUNCIN DISP
La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de
una matriz, pero sin imprimir el nombre de la variable. En realidad, disp
siempre imprime vectores y/o matrices: las cadenas de caracteres son un caso
particular de vectores. Considrense los siguientes ejemplos de cmo se
utiliza:
>> disp('Gracias por su atencin ')
>> nombre = input('Digite su nombre?','s')
>> disp(nombre)
LECCIN 30. INSTRUCCIONES DE REPETICIN EN MATLAB
30.1. INSTRUCCIN FOR
La instruccin for repite un conjunto de instrucciones un nmero
predeterminado de veces. A continuacin se muestra su sintaxis en Matlab
for i=1:n
Instrucciones a repetir
end
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
Esto hace que la variable i tome los valores desde 1 hasta n, incrementndose
de a uno en uno por cada repeticin que ejecute.
Es posible hacer que los valores que tome la variable i, se asignen desde un
vector (vector_de_valores) as:
for i=vector_de_valores
Instrucciones a repetir
end
Tamben es posible determinar el valor del incremento as:
for i=m:-0.5:10
Instrucciones a repetir
end
La variable i toma valores desde m, decrementndose de -0.5 en -0.5 hasta
que sea menor a 10.
Una ltima sintaxis para la instruccin for es la siguiente (tenga en cuenta que
A es una matriz). Aca la variable i es un vector que va tomando en cada
iteracin el valor de una de las columnas de A.
for i=A
Instrucciones a repetir
end
Cuando se introducen interactivamente en la lnea de comandos, los for se
ejecutan slo despus de introducir la sentencia end que los completa.
A continuacin mostramos el cdigo en Matlab para el algoritmo ejemplo de la
instruccin Para dado en la Leccin 28.
>> for i=1:10
disp (i)
end
1
2
3
4
5
6
7
8
9
10
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
30.2. INSTRUCCIN WHILE
La estructura de la instruccin tiene la siguiente sintaxis
while condicion
Instrucciones a repetir
end
Los ciclos repetitivos terminan cuando todos los elementos de condicion sean
false (es decir, cero).
A continuacin mostramos el cdigo en Matlab para el algoritmo ejemplo de la
instruccin Mientras dado en la Leccin 28.
>> m = input('Por favor digite un nmero ');
Por favor digite un nmero 8
>>Divisor=1;
>>Cantidad_divisores=0;
>>while Divisor<=m
If mod(m,Divisor)==0
Cantidad_divisores=Cantidad_divisores+1;
end
Divisor=Divisor+1;
end
>>disp (Cantidad_divisores)
4
30.3. FUNCIONES EN MATLAB
Una funcin es un conjunto de instrucciones que cumplen una tarea especfica
y que se agrupan bajo un nombre, una funcin tiene nombre, valor de retorno
y argumentos; se invoca utilizando su nombre en una expresin o como un
comando ms. Las funciones se pueden definir en ficheros de texto *.m como
se explica mas adelante.
Considrense los siguientes ejemplos de llamada a funciones:
>> n=length(x);
calcula el nmero de elementos de un vector x
>> a = cos(ang);
Calcula el coseno del ngulo almacenado en ang
Facultad de Ciencias Bsica e Ingeniera
Programa de Ingeniera Electrnica
En MATLAB es posible manejar funciones que no tienen argumentos, stas no
llevan parntesis, por lo que a simple vista no es fcil diferenciarlas de simples
variables.
30.4. DEFINICIN DE FUNCIONES
Para definir las funciones es necesario digitar el cdigo como un archivo ASCII,
es decir un archivo tipo texto sin formato, para ello se puede utilizar cualquier
editor de texto y grabando el archivo sin formato y con extensin .m. La
primera lnea de un archivo que contenga el cdigo o instrucciones de una
funcin debe tener la forma: function [lista de valores de retorno] =
name(lista de argumentos) donde name es el nombre de la funcin. Entre
corchetes y separados por comas van los valores de retorno (siempre que
haya ms de uno), y entre parntesis tambin separados por comas los
argumentos. Puede haber funciones sin valor de retorno y tambin sin
argumentos. Los argumentos son los datos de la funcin y los valores de
retorno sus resultados. La ejecucin de una funcin termina cuando se llega a
su ltima sentencia ejecutable. Si se quiere forzar el que una funcin termine
de ejecutarse se puede utilizar la sentencia return, que devuelve
inmediatamente el control al entorno de llamada.
A continuacin se muestra un ejemplo de la forma como quedara la tpica
primer funcin a realizar cuando se aprende a programar
function holamundo()
dispo (hola Mundo)
end
Para ampliar el tema de la definicin o creacin de funciones consulte la pgina
76 de el archivo anexo matlab70primero.pdf donde se explica con mayor
detalle cada uno de los pasos a seguir, antes de hacer dicha consulta debe
inspeccionar la temtica del debugger para conocer el editor de texto de Matlab