Taller introducción No.1 de Matlab(Actividad No.14)

Anuncio
1
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
FACULTAD DE TECNOLOGÍA
PROGRAMA DE TECNOLOGÍA ELÉCTRICA
MATERIA: PROGRAMACIÓN
MATLAB
TALLER No.4
Taller de Sentencias, Circuitos y Ecuaciones simultáneas
Sentencias
1. Programación con MATLAB
Un programa escrito en MATLAB admite la mayoría de las estructuras de
programación al uso y su sintaxis es bastante estándar. En los siguientes
apartados se muestra la sintaxis de algunas de estas estructuras (if, for,
while,...).
1.1 La condición “if else”
Una de las operaciones más habituales en programación es la ejecución de
unos determinados comandos si se cumple una determinada condición lógica,
es lo que se conoce como bifurcaciones. Para ello se emplea la orden “if...end”
de la siguiente forma:
Solución a la raíz cuadrática:
clc
disp('determine las raíces del polinomio ax^2+bx+c = 0,')
disp('ingrese los coeficientes de: ')
a=input('el coeficiente de x^2: ');
b=input('el coeficiente de x: ');
c=input('el termino independiente: ');
Delta = b^2-4*a*c;
if Delta<0
Delta*-1;
[x1]=[(-b+sqrt(Delta))/2*a];
[x2]=[(-b-sqrt(Delta))/2*a];
disp('son rices complejas conjugadas ')
disp(x1)
disp(x2)
elseif Delta>0
[x1]=[(-b+sqrt(Delta))/2*a];
[x2]=[(-b-sqrt(Delta))/2*a];
disp('son radices reales ')
disp(x1)
disp(x2)
else
x=-b/(2*a);
disp('son raíces dobles x1=x2')
disp(x)
end
2
Tarea 1:
NOTA DEFINITIVA DE PROGRAMACIÓN
Primer parcial 25%
Segundo parcial 25%
Tercer parcial 25%
Exámen final 25%
Promedio de nota ?
Si promedio de nota ≥ 3 ⇒ Ganó la materia, nota = ?
2.5 < promedio de nota < 3 ⇒ Perdió la materia, nota =?
Promedio de nota ≤ 2.5
⇒ Quedó en transición, nota =?
Nota: debe mostrar notas parciales, promedio y como queda el estudiante
1.2 La condición “switch case”
La sentencia switch realiza una función análoga a un conjunto de if...else if
concatenados. Su forma general es la siguiente:
Las cuatro operaciones básicas (+,*,‐,/)
clc
disp('operaciones básicas ')
disp(' ')
disp('1. suma ')
disp('2. multiplicación ')
disp('3. resta ')
disp('4. división ')
opcion_deseada=input('ingrese la opción deseada: ')
switch opcion_deseada
case {1}
b=input('ingrese le primer numero: ');
c=input('ingrese le segundo numero: ');
d=b+c;
disp('el resultado de la suma es: ')
disp(d)
case {2}
b=input('ingrese le primer numero: ');
c=input('ingrese le segundo numero: ');
d=b.*c;
disp('el resultado de la multiplicación es: ');
disp(d)
case {3}
b=input('ingrese le primer numero: ');
c=input('ingrese le segundo numero: ');
d=b-c;
disp('el resultado de la resta es: ');
disp(d)
case {4}
b=input('ingrese le primer numero: ');
c=input('ingrese le segundo numero: ');
d=b/c;
disp('el resultado de la división es: ');
disp(d)
end
3
Tarea 2:
Determinar el salario neto de un empleado de una compañía con base en el salario básico,
bonificación, descuento y categoría. Considere la siguiente tabla:
categoría
1
2
3
4
bonificación
15%
13%
12%
9.5%
descuento
4%
3%
2%
0%
1.3 Las condiciones “for y while”
FOR...END
Cuando queremos ejecutar un conjunto de comandos un número
predeterminado de veces utilizamos la función “for...end”, cuya forma general
es:
for contador = [vector de valores]
comandos
end
A modo de ejemplo si queremos sumar los cuadrados de los números enteros
impares del 1 al 11 podemos escribir:
Ejercicio:
suma = 0
for k = 1:2:11
suma = suma + k^2;
end
suma
salida:
suma = 0
suma =286
WHILE...END
A diferencia del comando for, el comando while se utiliza cuando el número de
veces que se ejecuta un determinado conjunto de sentencias depende de una
determinada condición lógica. Su utilización genérica es la que sigue:
while condicion
comandos
end
Por ejemplo si queremos sumar el cuadrado de números pares mientras no
se supere un determinado valor, por ejemplo, 500, entonces:
Ejercicio:
4
suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
end
suma
salida:
suma = 560
Una instrucción muy útil es el comando “break” que se utiliza para salir de un
bucle. Por ejemplo, si desea salir del bucle en el caso de que alguna suma
parcial sea exactamente igual a 100, entonces:
Ejercicio:
suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
if suma == 100
break
end
end
suma
salida:
suma = 560
Tarea 3 y 4:
ESTRUCTURAS FOR-WHILE
3) Calcular la suma de los múltiplos de tres comprendidos entre 1 y n. El valor de n entra
por teclado.
4) Calcular la suma de los cuadrados y la suma de los cubos de los 20 primeros enteros
positivos.
2. Circuitos
Aplicación a circuitos eléctricos
Las leyes básicas de la Teoría de Circuitos son la ley de Ohm y las leyes de Kirchhoff , en la figura
se plantea el circuito y se resuelve, aplicando el método de mallas, con Matlab.
V=ZI
5
Las ecuaciones planteadas de las tres mallas indicadas en la figura son:
v = (z1 + z4 + z2)i1 ‐ z2i2 ‐ z4i3
0 = ‐ z2i1 + (z2 + z5 + z3)i2 ‐ z5i3
0 = ‐ z4i1 ‐ z5i2 + (z4 + z6 + z5)i3
O, en forma matricial,
Es decir:
V=ZI
La solución del problema consiste en hallar i1, i2 y i3. La solución numérica consiste en despejar
el vector i de intensidades, una vez que se han dado los valores numéricos (complejos o resistivos)
a las impedancias z1 …. z6 y al voltaje V. Al tratarse de un circuito con mallas cerradas y con
impedancias no nulas, la matriz Z de impedancias es siempre no singular y, por tanto, existe la
inversa Z-1. Por tanto,
I = Z-1 V
Para hacer estos cálculos con Matlab, escribiremos en un fichero‐m los valores dados al voltaje y a
las impedancias. Por ejemplo, podríamos poner lo siguiente:
% Ejemplo de circuito
% Datos:
clc
disp('solución de un sistema por ecuaciones simultáneas')
disp('aplicado a un circuito eléctrico de 3 mallas')
Vef=100;
R1=5; z1=R1
R2=3; z2=R2
R3=8; z3=R3
R4=4; z4=R4
R5=10; z5=R5
6
R6=6; z6=R6
V = [Vef 0 0]' %vector de voltajes
Z = [ z1+z2+z4 -z2 -z4;-z2 z2+z5+z3 -z5;-z4 -z5 z4+z5+z6];%matriz z
I = inv(Z)*V %valor de las corrientes en amperios
Respuesta:
solución de un sistema por ecuaciones simultáneas
aplicado a un circuito eléctrico de 3 mallas
z1 = 5
z2 = 3
z3 = 8
z4 = 4
z5 = 10
z6 = 6
V=
100
0
0
I=
10.3761
3.2425
3.6965
Tarea 5:
Calcular las corrientes en las mallas y voltajes en cada impedancia para el siguiente circuito:
7
3. Ecuaciones lineales
Para resolver un sistema de ecuaciones lineales o simultáneas AX = B de n ecuaciones con m (n
puede ser igual a m) incógnitas, se introduce la matriz A del sistema y el vector columna B de los
términos independientes, no es preciso considerar el vector columna X de las incógnitas
(x1, x2, x3).
Consideremos el siguiente sistema:
Tarea 6:
Encuentre la solución para x:
Descargar