Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se comienzo esta sección demostrando como utilizar MATLAB para ayudar en el análisis de un
típico modelo matemático de un sistema mecánico formado por un resorte-masa-amortiguador.
Utilizando un programa escrito en MATLAB se desarrollará una capacidad de análisis interactivo
para estudiar los efectos de la frecuencia natural y el amortiguamiento sobre la respuesta no
forzada del desplazamiento de la masa. Este análisis utilizará el hecho de que se dispone de una
solución analítica que describe la respuesta temporal no forzada del desplazamiento de la masa.
La modelización es una forma de crear una representación virtual de un sistema real que incluye
software y hardware. Si los componentes de software de este modelo están gobernados por
relaciones matemáticas, es posible simular esta representación virtual con una amplia gama de
condiciones para ver cómo se comporta.
La modelización y la simulación son especialmente útiles para probar condiciones que podrían
resultar difíciles de reproducir solamente con prototipos de hardware, especialmente en la primera
fase del proceso de diseño, cuando es posible que no esté disponible el hardware. La iteración
entre la modelización y la simulación puede mejorar la calidad del diseño del sistema en una etapa
temprana y reducir así el número de errores descubiertos más adelante en el proceso de diseño.
Para visualizar gráficamente la respuesta transitoria a una entrada escalón e impulso se procede
como a continuación se indica:
ESCALÓN:
CONVERSIÓN DE MODELOS
Matlab permite que los distintos modelos puedan ser convertidos entre sí, de modo que, por
ejemplo, se pueda obtener la forma factorizada de la función de transferencia cero-polo-ganancia,
partiendo de la forma de cociente de polinomios.
Respuesta en frecuencia
La respuesta en frecuencia de los sistemas se puede obtener usando las funciones bode, nyquist y
nichols. Si no se le ponen argumentos a la izquierda, estas funciones generan las gráficas por sí
solas. En caso contrario, vuelcan los datos en los vectores de salida oportunos.
1.- bode(num,den)
La primera de ellas produce un gráfico con la magnitud en decibelios (dB) y la fase en grados.
En las otras dos la magnitud se devuelve en el vector mag y est´a expresada en unidades
absolutas, no en dB. Por su parte, la fase, devuelta en el vector phase, sigue siendo en grados.
En esta forma, la representación es más interactiva, en el sentido de que ”pinchando” con el ratón
en un punto de la curva, podemos ver los valores correspondientes. La segunda forma
automáticamente genera los puntos de frecuencia en el vector w. En la tercera forma es el usuario
el que escoge los rangos de frecuencia, y resulta muy adecuado cuando se quieren representar
varias graficas conjuntamente, que habrán de compartir una misma escala frecuencial.
El resultado de los dos últimos ´ comandos se puede representar usando funciones conocidas:
Existen una serie de comandos relacionados con las operaciones típicas en diagramas de bloques:
Conviene tener claro que para todos estos comandos relacionados con operaciones por bloques,
se podría perfectamente estar trabajando con funciones de transferencia discretas, sin ninguna
diferencia.
Para operaciones de bloques más complejas, resulta más adecuado usar la herramienta simulink.
z=zero(sysg)
z=
0.0000 + 0.4082i
0.0000 - 0.4082i
>> p=pole(sysg)
p=
-1.0000 + 0.0000i
-1.0000 + 0.0000i
-1.0000 - 0.0000i
>> n1=[1 1]; n2=[1 2]; d1=[1 2*i]; d2=[1 -2*i]; d3=[1 3];
numh=conv(n1,n2); denh=conv(d1,conv(d2,d3));
sysh=tf(numh, denh)
sysh =
s^2 + 3 s + 2
----------------------
s^3 + 3 s^2 + 4 s + 12
>> sys=sysg/sysh
sys =
-------------------------------------------
>> grid on
>>%Ejemplo 2.17
>> numg=[1]; deng=[500 0 0]; sysg=tf(numg, deng);
sys=series(sysg,sysh);
sys
sys =
s+1
------------------
sys=parallel(sysg,sysh);
sys
sys =
-------------------------
>>%Ejemplo 2.18
>> numg=[1]; deng=[500 0 0]; sysg=tf(numg,deng);
sys3=series(sysg,sysh);
sys=feedback(sys3,[1],-1)
sys =
s+1
--------------------------
sys =
s+2
--------------------------
sys =
s^2 + 3 s + 2
---------------------------------------------
s^5 + 14 s^4 + 48 s^3 + 101 s^2 + 228 s + 252
%Ejemplo 2.21
num=[5400]; den=[2 2.5 5402]; sys=tf(num, den);
t=[0:0.005:3];
[y,t]=step(sys,t);
plot(t,y),grid
xlabel('Time (seconds)')
ylabel('Wheel velocity')