Documentos de Académico
Documentos de Profesional
Documentos de Cultura
jandrocc
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
ÍNDICE
Ejercicio 1 2
Ejercicio 2 2
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejercicio 3 3
Ejercicio 4 4
Ejercicio 5 6
Ejercicio 6 12
Ejercicio 7 14
Ejercicio 8 16
Los parámetros generados por el compañero con mayor edad son los siguientes:
[Ki Kb Jeq beq Ra La Kr Kw n]= [0.0488 0.0387 0.0059 0.0288 0.2875 0.0049 3.8197
1.0000 0.1000]
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
La función de transferencia del sistema de posición Gpos es la siguiente:
0.0488*n 0.00488
Gpos = s*((0.0049*s+0.2875)*(0.0059*s+0.0288)+0.0488*0.0387) = 2.891*e−05 * s3 + 0.001837*s2 + 0.01017* s
Para calcular la ecuación diferencial hemos igualado nuestro sistema de bucle abierto a la
salida partido la entrada y hemos hecho la transformada inversa de Laplace para así
obtener la ecuación diferencial, con condiciones iniciales nulas.
Para obtener la función de transferencia en discreto se debe usar el comando “c2d” con un
tiempo de muestreo T y usar el método “zoh” ya que se trata de discretizar una planta .
Hemos discretizado cada función por separado, tanto la planta como el sensor.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Los comandos usados en Matlab han sido los siguientes:
-Gposz=c2d(Gpos,T,'zoh')
-Gbaz=Gposz*Hz=Gposz*3.8197
Para la ecuación en diferencias habría que repetir el mismo proceso que en el apartado 2.
Despejando, multiplicando el denominador de Gbaz por Y(z) y el numerador por U(z) y por
último aplicando la transformada inversa de Z se obtiene lo siguiente.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
La función de transferencia del sistema de velocidad sería la siguiente:
0.00488
Gvel = 2.891*e−05 * s2 + 0.001837*s + 0.01017
168.8
Gvel = s2 + 63.54*s +351.8
-G_vel_matriz=ss(G_vel)
A=
x1 x2
x1 -63.55 -21.98
x2 16 0
B=
u1
x1 4
x2 0
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
C=
x1 x2
y1 0 2.637
D=
u1
y1 0
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Para tiempo discreto sería con T=0.05 y hold0, se muestran los comandos usados en
Matlab:
-G_vel_matriz_z=c2d(G_vel_matriz,T,'zoh')
-G_vel_matriz_z =
G=
x1 x2
x1 -0.02451 -0.2912
H=
u1
x1 0.05298
x2 0.03323
C=
x1 x2
y1 0 2.637
D=
u1
y1 0
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Nos basaremos en esta tabla para calcular los errores de cada sistema.
Primero procedemos a calcular los errores de cada función, tanto de velocidad como de posición de
manera continua.
0.00488*Ka
G(s)= G_pos * Ka= (2.891e−5 s3 + 0.001837s
* 2 + 0.01017s) 1 integrador
y H(s)=3.8197
Para el error en régimen permanente ante una entrada escalón ( R(s)=1/s) nos saldría un error nulo
y esto se puede ver en la siguiente foto suponiendo un Ka =1
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Como se puede ver, nuestro valor final sería 1 por lo que el error es 0, es decir, independientemente
de nuestro valor de Ka, nuestro error sería siempre 0 , pero el hecho de aumentar Ka incrementa la
sobreoscilación del sistema.
Además, también se podría haber calculado el error mirando la tabla de errores que hemos incluido
al principio del ejercicio. En nuestro caso tenemos que nuestro sistema es de tipo 1, ya que solo tiene
Para el error en régimen permanente ante una entrada rampa (R(s)=1/s^2) daría el siguiente error :
e = 1/(1.833 * K a) , tendríamos un error de estilo KR donde R= 1 por ser rampa unitaria y este error iría
disminuyendo conforme K va aumentando.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
VELOCIDAD
Para el error en régimen permanente ante una entrada escalón daría lo siguiente :
e = 1/(1 + 0.472 * K a) , es decir, que para que nuestro error sea lo más cercano a 0, habría que
aumentar significativamente el valor de Ka lo que produciría mucha sobreoscilación. Se puede
observar en la siguiente imagen :
1
Para el error ante una entrada rampa saldría e = 0 = ∞ , que también se podría haber resuelto
mirando la tabla de errores. Es decir, que al ser tipo 0, la entrada ante una rampa unitaria tiende a
infinito.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Vemos como la respuesta (azul) tiende a despegarse de la rampa unitaria, y vemos que se va
alejando cada vez más.Va hacia infinito.
Tiempo discreto
R(z)
e = lim[(1 − z −1 ) * 1+G(z)*H(z)
z→1
POSICIÓN
Al discretizar nuestra G de posición tendríamos :
y H=3.8197
En el caso de la entrada escalón, nuestro sistema sigue siendo de tipo uno por lo que el error es
nulo.
Para el error en régimen permanente ante una entrada rampa (R(s)=1/s^2) daría el siguiente error :
e = 1/(1.833 * K a) , tendríamos un error de estilo KR donde R= 1 por ser rampa unitaria.
Por lo tanto el error dependería del controlador proporcional ka. Mientras más grande sea este
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
controlador, más pequeño será el error y viceversa.
0.08766 z + 0.03177
G_vel_z*Ka= k a * z 2 − 0.7928 z + 0.04168
H=1;
Este sistema es de tipo 0 por lo que podremos utilizar la fórmula para una entrada escalón.
Considerando que el controlador proporcional sea igual a 1(ka=1) y una entrada escalón unitaria, el
resultado sería el siguiente:
10
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
R
Sabemos que el error es e = 1+Kp Siendo R la entrada escalón de valor unitario y Kp=K*Ka.
Por lo tanto, para minimizar el error tendríamos que subir la Ka lo máximo posible sin hacer
el sistema inestable.
11
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Para obtener el sistema de posición en bucle cerrado discretizado,lo primero que hemos hecho ha
sido discretizar la planta y el sensor cada uno por su lado con un T=0.05.
0.00488
Gpos = 2.891*e−05 * s3 + 0.001837*s2 + 0.01017* s
0.00488
----------------------------------------
2.891e-05 s^3 + 0.001837 s^2 + 0.01017 s
>> T=0.05;G_pos_z=c2d(G_pos,T,'zoh')
G_pos_z =
>>pole(G_pos_z)
ans =
1.0000
0.7361
0.0567
Vemos que tenemos un integrador ( z=1) ,entonces nuestro sistema es de tipo 1 y por tanto error de
seguimiento nulo ante entrada escalón.
12
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
En la imagen se puede observar las siguientes características : tiempo de subida ( 0.789 seg) ,
Como nuestro sistema es de tipo 1 , el error ante una entrada escalón es 0 que es precisamente lo
que podemos observar en la imagen( nuestro valor final es 1).
Tipo 1, error=0, ganancia pequeña, no hay mucha sobreoscilación
13
la ganacia crítica es la que hace que el sistema esté a punto de ser inestable
Para Ka=1 tenemos :
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Para Ka=10 tenemos :
14
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Como se puede ver, para calcular la Ka crítica nos hemos ido justamente al borde de la
circunferencia de radio 1 centrada en 0, que en discreto sería la zona de estabilidad del sistema, por
lo tanto, al situarnos los polos en bucle cerrado en ese punto, nos sale una ganancia de 13.905 .
Además, hemos incluido una respuesta a una entrada escalón para verificar que realmente estamos
al borde de la inestabilidad y efectivamente se cumple, nuestra respuesta mantiene una respuesta
15
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Como nuestro sistema es tipo 1, es decir, tiene un integrador, el error ante una entrada escalón
unitaria será 0.
Lo que hemos hecho ha sido desde “rltool” asignar las especificaciones que nos pide el ejercicio con
el sistema de posición discretizado, añadiendo tanto a H y F sus respectivos valores ( 3.8197).
Además, podemos ver la respuesta temporal ante una entrada escalón. Como ya se comentó, el
error es 0 ( el valor final vale 1 ), la sobreoscilación se cumple ,pero el tiempo de establecimiento es
muy superior a 0.3 segundos por lo que habría que usar otro controlador.
16
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
resolver con un controlador proporcional Ka, entonces tendremos que usar otro controlador ya sea
PD, PI o PID.
En primer lugar, tenemos que resolver los errores en régimen permanente y después nos centramos
en las especificaciones transitorias. Como nuestro error en régimen permanente ya se cumple, es
decir, es nulo, ya que como nuestro sistema es de tipo 1( tiene un integrador )( el error ante una
entrada escalón unitario es 0) nos centraremos en la respuesta transitoria.
Podemos descartar que el controlador PI y el PID ya que nos introduciría un integrador, es decir, más
precisión. Este tipo de controladores corrigen los errores en régimen permanente y como nuestro
sistema ya lo cumple no hace falta usarlos. Así que nos centramos en el PD.
Para hacer que las especificaciones se cumplan lo que hemos hecho ha sido añadir un cero lo más
cerca posible del polo dominante, que es el cual estaba dando un tiempo de establecimiento no
adecuado. En nuestro caso, hemos situado el cero justamente encima del polo dominante, y esto ha
hecho que nuestro LDR se modifique y por último hemos añadido un polo muy lejos del eje
imaginario para que sea este el dominante y así el tiempo de establecimiento se reduzca al tiempo
que deseemos, al igual que lo hizo la sobreoscilación al disminuir la ganancia proporcional.
17
PD =
274.22 (s+6.088)
----------------
(s+200)
“ojo porque según el método que usemos el pid se nos puede ir a la mierda al pasarse a
discreto” matched es asignación por polos z=e^(s*T)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
PD_z =
31.805 (z-0.7376)
-----------------
(z-4.54e-05)
18
>> G_pos
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
G_pos =
0.00488
----------------------------------------
2.891e-05 s^3 + 0.001837 s^2 + 0.01017 s
>> G_pos_z=c2d(G_pos,T,'zoh')
G_pos_z =
H=3.8197; F=3.8197;
Nuestro sistema solo con una ganancia proporcional nos da el siguiente LDR :
19
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Hemos introducido un cero en 0.75 para llevar al lugar de las raíces hacia la izquierda y así
compensar los errores transitorios, y por último un polo rápido en 0 para que sea un controlador
implementable. Variando la ganancia obtenemos estos datos que se muestran en la imagen.
El controlador se puede ver en la parte izquierda debajo de la imagen.
20
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
En primer lugar, sabemos que nuestro sistema de posición es de tipo 1 y que el error ante
una entrada rampa da lugar a un valor que depende de la ganancia ( e_rampa= R / K) ,
entonces, si queremos que tener error nulo ante una entrada rampa necesitamos que
nuestro sistema sea de tipo 2 por lo que necesitamos introducir un integrador.
Lo que necesitaremos será un controlador PI o PID para obtener estos requisitos, vamos a
probar.
21
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Entonces habrá que implementar un PID.
Hemos ubicado los ceros de esa manera para hacer al sistema más estable y para que se
cumplan las especificaciones, para que así el LDR se dibuje de la manera que está en la
imagen. El polo lo hemos puesto en cero para que así no afecte demasiado al sistema,es un
polo rápido.
22
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
La respuesta al escalón sería :
Como se puede ver hay error nulo, se va acercando cada vez más a la rampa unitaria.
23
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Se produce en los PI y PID, el actuador se satura y el controlador de retroalimentación no
puede llevar la medición del set point por lo que existirá un error permanente el efecto.
24
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Vemos por tanto que no hace falta aplicarle antiwindup ya que no le afecta esta limitación al
controlador ( ya que no se mantiene durante el valor 15 durante un tiempo ).
El esquema sería el mismo que el anterior solo que cambiando los parámetros del PID y se obtiene lo
siguiente en la salida: ( sin windup)
Vemos que obtenemos una salida prácticamente idéntica que la que conseguimos en rltool.
25
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Vemos que tampoco le afecta.
Añadiendo un filtro anti windup de 0.4 al controlador conseguimos una respuesta tal que así :
No hemos podido realizar este ejercicio ya que nos pedía una licencia de matlab la cual no
disponíamos de ella.
26
Vamos a aplicar primero Ziegler-Nichols en abierto para nuestro sistema de posición y vamos a ver
qué respuesta obtenemos cuando le aplicamos un step. Los comandos usados en Matlab:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
G_pos
G_pos =
0.00488
----------------------------------------
2.891e-05 s^3 + 0.001837 s^2 + 0.01017 s
>> step(G_pos)
Vamos a proceder con el método de Z-N en bucle cerrado. Para este método vamos a analizar la
respuesta de nuestro sistema en bucle cerrado con una ganancia proporcional Kc, la cual vamos ir
aumentando hasta obtener la Kc crítica del sistema, que se mostrará en una respuesta escalón ( será
completamente oscilante) y a partir de esa respuesta conseguiremos T ( el periodo de esa señal).
27
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Esta imagen muestra la ganancia crítica de nuestro sistema de posición, que son unos 34,668 y
vemos con la respuesta es oscilante.
P ID = Kp + Ki/s + Kd * s
Kp=0.75*Kc=26.0012
Ki=Kp/Ti = 124.17-----> Ti =T/1.6=0.2094
Kd= Kp*Td = 0.8710 -------> Td=T/10 = 0.0335
En matlab :
PID_pos=pid(26.0012,124.17,0.8710)
PID_pos=
1
Kp + Ki * --- + Kd * s
s
28
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
PID_pos=zpk(PID_pos)
PID_pos =
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Con nuestro controlador nos sale una respuesta en bucle cerrado en tiempo continuo tal
que así :
29
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Nos quedaría un sistema tal que así. Hemos hecho que nuestro controlador sea implementable
añadiendo un filtro derivativo. Además, podemos comprobar que nuestro LDR estaría muy cerca de
la inestabilidad.
PID_pos =
1 s
Kp + Ki * --- + Kd * --------
s Tf*s+1
Aquí vemos nuestro filtro derivativo que sería Tf. Ahora pasamos el PID a discreto por el método
trapezoidal
PID_pos_z=c2d(PID_pos,0.05,'trapezoidal')
PID_pos_z =
30
Ts*(z+1) 1
Kp + Ki * -------- + Kd * -------------------
2*(z-1) Tf+Ts/2*(z+1)/(z-1)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ahora lo pasamos a rltool con nuestro sistema G_pos_z:
31
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ahora vamos a probar con un controlador PI:
Sabemos que :
T=0.519-0.184=0.335 seg || Kc= 34.668
Kp=0.45*Kc=15.6006
Ti=T/1.2=0.2792 ----->Ki=kp/Ti=55.8761
En matlab:
pi=pid(15.6006,55.8761,0,0)
pi =
>> pi=zpk(pi)
pi =
15.601 (s+3.582)
----------------
s
Vemos que el sistema es prácticamente inestable al haber añadido otro integrador más.
32
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
PIz=c2d(pi,0.05,'trapezoidal')
PIz =
16.998 (z-0.8356)
-----------------
(z-1)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Sample time: 0.05 seconds
33
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
0.0048
Gvel = −5 2
2.89*10 s + 0.001837*s +0.01017
Para el método de Z-N en cerrado no se puede aplicar con este sistema ya que nuestro sistema
sería de orden 2 y no tendría ningún retardo así que obviamos este método.
Vamos a comprobar si es posible hacer el método en abierto, es decir, tenemos que comprobar si la
respuesta ante un escalón de la planta sigue una consigna o si no es estable.
Vemos entonces que si sigue una consigna y que sería por tanto estable, entonces sí que se puede
aplicar el método en abierto.
Tenemos un valor final de 0.472. Tenemos que situarnos en las amplitudes correspondientes al
63,2% y al 23.8% del valor final . Esto es:
A(63,2%)=0.632*0.472=0.2983 ---->t1=0.181s
A(23.8%)=0.238*0.472=0.1123 ---->t2=0.0618s
34
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Sabemos que :
3*(t1−t2)
d= 2 ; τ = t1 − d
11
d=0.1788s ; τ= 5000 s
d
0.15 < τ
< 0.6
Nuestro resultado daría : 81.2727 por lo que no se podría usar este método.
Tampoco se puede
35
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Método de síntesis directa
Vamos a empezar con el método de síntesis directa, que se basa en la respuesta en bucle
cerrado del sistema. Este método en principio si se puede realizar porque tenemos una
respuesta en bucle abierto de nuestra planta estable, si esta hubiera sido inestable no se
podría aplicar este método.
Como vemos en la imagen, para determinar M(s) necesitamos antes obtener el valor de
landa. Siendo M un sistema de primer orden con ganancia unitaria, lo más conveniente es
que landa sea lo más pequeña posible ya que eso reduciría la sobreoscilación y el tiempo
de establecimiento (Si acercas M(s) a 1, nos queda una salida igual a la entrada Y(s)=W(s)).
Sin embargo, no podemos pasarnos ya que esto haría que el sistema no fuese causal (se
anticipa a la entrada) y esto no es realista.
36
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
166.1
Gvel n = s2 + 63.56*s +351.9
G_vel_n=zpk(G_vel_n)
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
166.1
Gvel n =
(s + 57.44)*(s +6.127)
Nuestro controlador tendría la forma siguiente, habiendo realizado los cálculos necesarios
de la imagen donde se muestra el controlador R(s) y habiendo sustituido nuestra función en
bucle cerrado por la conveniente que nos dice el método.
(s+57.44)(s+6.127)
R= λ*166.1*s
λ > 0.2 * τ
37
Nos sale :
0.181
K p = 0.472 *λ
= 11.72 T i = 0.181 −−> K i = 64.75
T d = 0.0157 −−> K d = 0.1840
El pid será:
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
PID=pid(11.75,64.75,0.184)
PID =
1
Kp + Ki * --- + Kd * s
s
PID =
La respuesta en rltool :
Vemos que nuestro controlador no es implementable porque tiene más ceros que polos y
por eso le introducimos un filtro derivativo. un polo lejos
38
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Exportamos el controlador a matlab y procedemos a pasarlo a discreto:
PID =
Name: C
Continuous-time zero/pole/gain model.
>> PID=pid(PID)
PID =
1 s
Kp + Ki * --- + Kd * --------
s Tf*s+1
PIDz =
Ts 1
Kp + Ki * ------ + Kd * -----------
z-1 Tf+Ts/(z-1)
39
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
with Kp = 12.5, Ki = 64.8, Kd = 0.0238, Tf = 0.0503, Ts = 0.05
Sample time: 0.05 seconds “si nos preguntan decimos que puede que el
tiempo de muestreo sea demasiado grande”
Vamos a utilizar la landa más pequeña posible para que el sistema sobre oscile lo menos
posible y tenga el menor tiempo de establecimiento posible pero sin pasarnos porque sino el
sistema sería anticipativo y eso no es realista.
Para aplicar el método de Rivera-morari necesitaríamos una planta que se asemejara a una
de primer orden con retardo y realimentación unitaria (no es nuestro caso). Por lo tanto, no
podemos realizar este método.
40
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
¿Es el sistema controlable? Ya sabemos que si pero puesto que estamos trabajando con
espacios de estado vamos a demostrarlo calculando el rango de la matriz de control.
[A,B,C,D]=ssdata(G_vel)
A=
x1 x2
x1 -63.54 -21.99
x2 16 0
B=
u1
x1 4
x2 0
C=
x1 x2
y1 0 2.637
D=
u1
y1 0
41
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ahora pasamos a comprobar que nuestro sistema es controlable sino no se puede aplicar el
método.
Mc =
>> rank(Mc)
ans =
Ahora comprobamos si es observable. Los comandos usados en Matlab son los siguientes:
Mo =
0 2.6375
42.1999 0
>> rank(Mo)
ans =
42
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos.
Vemos que también es observable ya que el rango es el mismo que el de C.
Nuestras especificaciones del ejercicio son que nuestro polos en bucle cerrado tienen que
tener una frecuencia natural de 10 y que tiene que ser un sistema críticamente amortiguado
ζ =1 por lo que de aquí suponemos que :
ζ=1 y una frec natural de wn=10, así que podemos localizar un par de polos reales
dominantes en esa ubicación.
Además nos exigen un error nulo ante consigna velocidad con amplitud unitaria y como
nuestro sistema es de Tipo 0 , es decir, no tiene ningún integrador, necesitamos aplicar el
control servo de Tipo 0.
Antes que nada, tenemos que comprobar que nuestra matriz P, que está formada por A , B
y -C, tiene que ser invertible para que el sistema tenga solución.
G_ext=[A B;-C 0]
G_ext =
43
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
-63.5420 -21.9863 4.0000
16.0000 0 0
0 -2.6375 0
>> rank(G_ext)
ans =
Vemos que esta matriz ( que equivale a la P) es invertible , es una matriz 3x3.
donde nuestra matriz Pext está formada por los polos deseados en bucle cerrado de
nuestro sistema, dos de ellos están dados por la frecuencia natural y, además, como
queremos que tenga error nulo ante consigna velocidad de amplitud unitaria le introducimos
un integrador, para ello le metemos un polo más en bucle cerrado en el vector Pext y lo
situaremos en -100, ya que no puede ser más dominante que los otros dos.
Kext=acker[Aext,Bext,Pext]
Kext1=Kext(1);Kext2=Kext(2);Kext3=-Kext(3)
K=[Kext1 Kext2];Ki=Kext3;
44
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021
AAext=[A-B*K B*Ki;-C 0];BBext=[0 0 1]'; CCext=[C 0];DDext=0; “nuestro sistema tiene rango
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
máximo 3”
sis_bc=ss(AAext,BBext,CCext,DDext)
sis_bc =
A=
x1 x2 x3
x1 -120 -131.3 237
B=
u1
x1 0
x2 0
x3 1
C=
x1 x2 x3
y1 0 2.637 0
D=
u1
y1 0
45
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Gba_vel_z =
0.08766 z + 0.03177
------------------------
G=
0.7928 -0.1667
0.2500 0
H=
0.5000
46
C=
0.1753 0.2541
D=
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
0
pzmap(sist_vel_z)
K_hat=acker(Gext,Hext,Pext)
Kext1=Kext(1);Kext2=Kext(2);Kext3=-Kext(3)
47
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
K=[Kext1 Kext2];Ki=Kext3;
HHext=[0 0 1]';
sis_bc_z=ss(GGext,HHext,CCext,DDext,0.05)
Al hacer la conversión a digital, los polos se nos quedan fuera del círculo unidad
proporcionandonos un sistema inestable.
48
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3744698
Trabajo general grupal de control por computador 2020/2021