anÁlisis y simulaciÓn de dos tÉcnicas de control …a−702 control i e−504 dinámica de los...
TRANSCRIPT
UNR − Ingeniería Departamento de Electrónica Cátedra D.S.F.
Series DC Motor Control INFORME PROVISORIO A−702 Control I E−504 Dinámica de los Sistemas Físicos
SDCM_WEB.doc insert_fecha DSF INFORME PROVISORIO Página 1 de 28
ANÁLISIS Y SIMULACIÓN DE DOS TÉCNICAS DE CONTROL SOBRE MOTOR DC SERIE.
Alejandro Donaire, Gerardo Garnero, Sergio Junco
Departamento de Electrónica – Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario
2000 Rosario – Argentina
INTRODUCCIÓN El siguiente trabajo presenta un conjunto de simulaciones y análisis comparativo sobre dos técnica diferentes aplicadas al control de un motor de corriente continua con excitación serie. La primer técnica es la desarrollado por John Chiasson (1994) [1] en su publicación “Nonlinear Differential – Geometric Techniques for Control of a Series DC Motor”. La segunda técnica es la desarrollada por Sergio Junco (2001) [2] en su publicación “Trajectory Tracking on Bond Graphs. Procedures and Applications to DC Electrical Drivers” sección ATPIII “Cascade Approach to Asymptotic Tracking Through Backstepping on Bond Graphs”. En la primer sección presentamos ambos controles con una breve explicación de sus partes integrales, detallando modelos utilizados y resultados obtenidos para cada control individual referentes a distintos tipos de condición de funcionamiento. En la segunda sección realizamos una comparación entre ambos destacando pro y contras de cada control individual. Cabe mencionar que todas las simulaciones fuero realizadas en MatLab ver 5.3.
MOTOR DC SERIE En la figura 1 se representa el circuito equivalente del motor a controlar. El mismo es un SDCM con resistencia de debilitamiento de campo, cuyos valores característicos se encuentran detallados en la Tabla 1. La curva de saturación de campo magnético de excitación φ(ie) y su correspondiente derivada φ'(ie) son mostradas en el lado derecho e izquierdo, respectivamente, de la figura2.
Figura 1
Tabla 1
Datos de armadura Potencia Nominal (P) 1000 KW Tensión nominal de armadura (UaN) 1000 V Corriente nominal de armadura (IaN) 1000 A Resistencia de armadura (Ra) 0,00989 Ω Inductancia de armadura (La) 0,0014 H Datos de excitación Resistencia de campo (Re) 0.01485 Ω Resistencia de debilitamiento de campo (Rp) 0.01696 Ω Inductancia de campo en zona lineal (Le) (ver abajo característica magnética con saturación) 0.1 H
Flujo de excitación nominal (concatenado) 31.6 Wb
SDCM_WEB.doc DSF INFORME PROVISORIO Página 2 de 28
Conversión electromagnética-mecánica Constante de Conversión 0.04329 Nm/WbA Constante de Conversión a Flujo Nominal 1.37 Nm/A =
Vs Datos del rotor Momento de inercia 3 Kgm2 Velocidad nominal 6900 rpm
Figura 2. Característica magnética del circuito de excitación.
φ(ie) en Wb (izquierda), φ'(ie) en Wb/A (derecha) versus corriente en amperes.
CONTROL POR LINELIZACIÓN EXACTA Los controles propuestos a continuación se consiguen cancelando exactamente la dinámica del
motor y forzando a que su velocidad (ω) siga a una referencia (ω*). Estas leyes fueron publicadas por Chiasson J. [ref].
Con el motor girando a una velocidad menor a la velocidad base, la ley de control resulta
)*/(*)/(****)( )('
)('
)()( ifififmifmpa iKJuKiRRV φφφωφ ++++= La entrada u fue escogida como
∫ +−+−+−= trefjrefKrefKdtrefKu 0 )ˆ(*3)ˆ(*2*)ˆ(*1 ααωωωω
estimadotorqueelesT
estimadaónasceleracilaesJTiJK
estimadavelocidadlaes
jerkdeyónasceleracidevelocidaddereferencialasondtdjdtd
l
lifm
refrefrefrefref
ˆ./ˆ**)/(ˆ
.ˆ.,/,/,
)( −=
==
φα
ω
αωαω
En el cual se desprecia la inductancia de armadura (La). Se considera un torque de carga
constante. Conviene destacar que en la simulación el torque de carga no es constante, sino que evoluciona en
forma de rampa para 5<t<10. Para compensar esto se propone en la tensión u, un término que es la integral del error de velocidad.
La ley de control para el motor con debilitamiento de campo se detalla a continuación
)*)//(()(**** )( fmpafmfp JKRRuKRV φωφφ +++Ψ−=
SDCM_WEB.doc DSF INFORME PROVISORIO Página 3 de 28
donde u tiene la siguiente expresión
∫ ++−+−=t
lrefrefref JTKdtKu0
21 /ˆ)ˆ(**)ˆ(* αωωωω
estimadotorqueelesT
estimadavelocidadlaesónasceleraciyvelocidaddereferencialasondtd
l
refrefref
ˆ.ˆ
./,ω
ωαω =
De la misma forma que el control anterior, se desprecia la inductancia de armadura y excitación y se
agrega la integral del error de velocidad para compensar el torque de carga cuando este no es constante. Ambos controles necesitan como entradas las corrientes de armadura y excitación, así como el
torque de carga y la velocidad a la cual gira el motor. Las corrientes se suponen medidas, el torque de carga y la velocidad del motor la determina un
observador el cual se detallará luego de presentar los controles. CONTROL BACK-STEPPING Estos dos controles son el resultado de una publicación para lograr controles que sigan a una
referencia calculados sobre Bond-Graph por S. Junco [ref 2]. La tensión V aplicada al motor es tal que su velocidad sigue a la referencia. El control resultante para el motor operando sin debilitamiento de campo es
ωφ ****'*'*)*'( )(*
)(*
)()( iafmaaiaaiaaaiaae KikgigikgRRV +++−+= Σ
•
ΣΣ
)(
***
*****)*(
iafma K
TlkJJkJbi
φωωω ωω +++−
=
•
*ω es la velocidad de referencia, la cual se pretende que siga el motor.
)(iagΣ es la suma de la característica magnética de la inductancia de armadura y la de campo. No se desprecia en este caso la inductancia de armadura y no existen hipótesis simplificatorias en
cuanto al torque de carga.
Cuando la velocidad del motor supera la velocidad base, el control válido par realizar tracking a una referencia esta regido por la siguiente ley
ediafmaaaaaaaada iRKikLiLikLRRVV *******)*( )(** −+++−+==
•
ωφ
)(
***
*****)*(
iafm
la K
TkJJkJbi
φωωω ωω +++−
=
•
De la misma forma que en el control sin debilitamiento de campo no se desprecia La, ni se hacen
hipótesis del torque de carga, solo debe conocerse o estimarse. Las entradas a ambos controladores son las corrientes de armadura y de excitación, así como el
torque de carga (supuesto conocido) y la velocidad del motor, que al igual que en el par de controladores anteriores se determina por medio del mismo observador.
SDCM_WEB.doc DSF INFORME PROVISORIO Página 4 de 28
OBSERVADOR DE VELOCIDAD. ETIMADOR DE TORQUE Para el cálculo del observador se recurre a la siguiente transformación de variables obteniendo uno
lineal respecto a las nuevas variables.
===
JTxxx
l /**
ln*
3
2
1
ωφ
De esta forma el observador se define como
*ˆ.*ˆ*)ˆ*.(*ˆ.*ˆ
),,(
XCY
YYLXAX Vieia
=
−++=•
ϕ
Las matrices que definen al observador son las siguientes
−
−=
0000/000
Jbk
Am
+−−
=
0
**)/(
/)**(
)(
)(
),,( aifm
ifaaff
Vieia iJK
ViRiR
f
f
φ
φ
ϕ
=
3
2
1
lll
L [ ]001=C
Para la construcción del observador se considera el torque de carga constante. Se desprecia la inductancia de armadura y la matriz ϕ se construye con las variables medidas. De esta forma definiendo el error como
*ˆ* xxe −= resulta que su dinámica es lineal
).( CLA −=•ε De esta forma obtenemos la velocidad del motor y el torque de carga a través de variables que se miden con facilidad, tales como las corrientes de excitación y armadura, y la tensión la entrada al motor. Esto se logra gracias al supuesto de que el torque de carga es constante, no siempre esto es así, de echo en la simulación no sucede, pero el observador sigue al torque verdadero con un error despreciable y se anula cuando el torque se estabiliza en un valor constante.
SDCM_WEB.doc DSF INFORME PROVISORIO Página 5 de 28
Simulaciones Para realizar las simulaciones recurrimos a la utilización de MatLab 5.3. Los diagramas de bloques utilizados para las distintas simulaciones se pueden observar en el anexo 1. El torque de carga emploeado es el siguiente:
( )
tmNtT
tmNttT
tmNtT
l
l
l
≤⋅=
≤≤⋅−=
≤≤⋅=
101250
1055
51250
500
el cual es idéntico al utilizado por Chiasson en [2] La velocidad base es de ωbase =200rds/seg y la tensión de entrada al motor se restringió entre 0≤V≤1000 V. Los datos del motor fueron dados en la sección 1 los cuales se extrajeron de [2].
Antes de exponer los resultados obtenidos para cada control debemos hacer ciertas aclaraciones en lo que a simulaciones se refiere. En ambos controladores y en el observador existen singularidades cuando la corriente de campo es cero al comienzo de las simulaciones. Para salvar esta dificultad el flujo de campo en los algoritmos de los controladores y en el observador (no en el motor simulado) fue acotado por debajo en 1. Esto es:
111
≥=<=
φφφφφ
sisi
esto se logró con la utilización del bloque “Dead Zone” como se puede observar en el anexo. El observador fue inicializado con torque de carga y velocidad nulos y este no comienza hasta que
se extinga un transitorio inicial. Esto se logra con la utilización de los bloques “Switch” puestos a la salida del observador. La condición de conmutación se obtuvieron mediante simulación y con la utilización del bloque Stop, el cual detiene la simulación cuando ω=ωbase en el modelo sin debilitamiento de campo (ver anexo 1) Luego continuamos simulando el modelo con debilitamiento de campo a partir de la condición final del modelo anterior (ver anexo 2).
Para evitar problemas, en las simulaciones digitales, con las distintas derivadas que aparecen en los controladores se optó por utilizar un derivador aproximado el cual detallamos a continuación.
Derivador aproximado
(de*/dt) / k e* / ke*
1de*/dt
Sums
1Integrator2
k
Gain1
k
Gain
1e
Donde se observa que si hacemos la dinámica del DT1 lo suficientemente rápida tendremos que: e ≅ e* ⇒ de/dt ≅ de*/dt Derivadas de mayor orden se logran iterando más de estos bloques.
Ejecución de las simulaciones Como se puede observar en el anexo 1 se utilizan dos modelos distintos para los dos funcionamientos
del motor, con y sin debilitamiento de campo. Para realizar las simulaciones se confeccionó un scrip en el cual se vinculan ambos modelos. Esto se detalla en el anexo 2 y básicamente realiza las siguientes tareas:
1. Inicializan el modelo sin debilitamiento de campo (primer modelo) 2. Simulan primer modelo 3. Guardan valores finales de variables de estado y otras de interés 4. Inicializan el modelo con debilitamiento de campo (segundo modelo) 5. Simulan segundo modelo 6. Grafican variables de interés Cabe aclarar que una vez alcanzado el modelo con debilitamiento de campo no se puede conmutar
nuevamente al modelo sin debilitamiento. Esto no se realizó ya que no era estrictamente necesario para cumplir el propósito del trabajo. En el caso de querer analizar esta situación se puede hacer fácilmente utilizando un lazo que vuelva al primer modelo dada la condición de un nuevo bloque Stop agregado al segundo modelo.
A continuación pasaremos a mostrar los resultados de las distintas simulaciones y sus comparaciones.
SDCM_WEB.doc DSF INFORME PROVISORIO Página 6 de 28
Control por Linealización Exacta (Chiasson 1994)
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25-2
-1
0
1
2
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
tiempo[seg]
Tens
ión
Arm
adur
a [V
]ia
ie
error
Figura 3
0 5 10 15 20 25 30 35 0
200
400
600
800
1000
1200
1400
tiempo[seg]
TL [N.m]
Figura 4
SDCM_WEB.doc DSF INFORME PROVISORIO Página 7 de 28
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25-2
0
2
4
6
8
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
800
tiempo[seg]
Tens
ión
Arm
adur
a [V
]ia
ie
error
Figura 5
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25
-20
0
20
40
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
1000
2000
3000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
Tens
ión
Arm
adur
a [V
]
ia ie
error
Figura 6
SDCM_WEB.doc DSF INFORME PROVISORIO Página 8 de 28
Resultados de las simulaciones.
En la parte superior izquierda de la fig. 3 podemos observar la gráfica de la velocidad del motor y la de referencia junto a la gráfica del error de seguimiento. El error es alrededor de 2 rad/seg, el cual dura un período de tiempo muy corto. Vemos también que tenemos un pequeño error, ≅ 0,3 rad/seg, entre los 5 seg. y 10 seg. cuando el torque de carga crece y luego el error se anula a torque de carga constante. En la parte inferior izquierda de la fig.3 tenemos las corriente de campo y de armadura las cuales son la misma hasta el momento en que se produce el debilitamiento de campo. Junto a esta gráfica podemos observa la tensión de armadura en la cual se ve que en la parte de debilitamiento de campo la pendiente se reduce significativamente. En la fig. 4 se puede observa el torque de carga aplicado al motor. La fig. 5 corresponde a la simulación considerando variación en algunos de los parámetro del motor. Para este caso la resistencia de armadura y campo (ra y re) se redujeron un 50%, en el motor, manteniendo los parámetros del controlador constante. Esto simula la variación de las mismas con la temperatura ya que la misma varía durante el funcionamiento del motor. También simula el error que se puede cometer en el proceso de identificación de los mismos. Notamos aquí que el error aumentó hasta ≅ 7,5 rad/seg, y tenemos ahora un error de ≅ 6.1 rad/seg a torque de carga constante. De todos modos podemos decir que el control es bastante insensible a la variación de estos parámetros ya que una cambio en los mismos de un 50% produce un error en régimen permanente de 1.19%. En la fig. 6 tenemos las simulaciones correspondientes a una velocidad de referencia con crecimiento más abrupto y sin producir variación de parámetros en el motor. Se puede ver un error considerable (≅ 40 rad/seg) en la parte ascendente de ωref como así también notamos que se exige mucho al motor ya que se alcanza el límite de tensión y la corriente de armadura llega a un valor superior a 3Ian,, por lo tanto con los parámetros del controlador calculados no se tiene un buen seguimiento a una señal de referencia que varíe rápidamente.
SDCM_WEB.doc DSF INFORME PROVISORIO Página 9 de 28
Control BackStepping (Junco 2001)
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25-1.5
-1
-0.5
0
0.5
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
tiempo[seg]
Tens
ión
Arm
adur
a [V
]
error
ia
ie
Figura 7
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25
0
2
4
6
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
800
tiempo[seg]
Tens
ión
Arm
adur
a [V
]
error
ia
ie
Figura 8
SDCM_WEB.doc DSF INFORME PROVISORIO Página 10 de 28
0 5 10 15 20 250
100
200
300
400
500
tiempo[seg]
w,w
ref [
rds/
seg]
0 5 10 15 20 25-20
-15
-10
-5
0
5
tiempo[seg]
w-w
ref [
rds/
seg]
0 5 10 15 20 250
500
1000
1500
2000
tiempo[seg]
ia,ie
[am
p]
0 5 10 15 20 250
200
400
600
800
1000
tiempo[seg]
Tens
ión
Arm
adur
a [V
]
error
ia
ie
Figura 9
Resultados de las simulaciones. En la fig. 7 se observa la gráfica de la velocidad del motor y la de referencia junto a la gráfica del error de seguimiento. Aquí el máximo error alcanzado es de -1,4rad/seg. y observamos también un error entre –1rad/seg. y 0,8rad/seg. entre los 5 seg. y los 10 seg. que es el tiempo en el cual el torque de carga no es constante. Este mayor error, comparándolo con el control anterior, es debido a que como el torque observado tiene un error con respecto al verdadero ya que en el cálculo del mismo no se tiene en cuenta su derivada lo cual introduce un error el la estimación del mismo cuando esta es distinta de cero, y el control desarrollado por Junco no tiene en cuenta este error, sino que considera que se dispone del torque real, o de una buena estimación del mismo. En el caso del control desarrollado por Chiasson esto se tubo en cuenta colocando en el controlador la integral del error de velocidad. Las gráficas de las corriente y la tensión tienen características similares a las ya descriptas anteriormente. Realizando ahora variación en los parámetros (fig. 8) del motor observamos que tenemos un error máximo de ≅ 5,8rad/seg. y un error a torque de carga constante de ≅ 4,6rad/seg., en ambos casos el error es menor al control anterior. Restituyendo nuevamente los parámetros y con una velocidad de referencia de crecimiento más abrupto (fig. 9) observamos una menor exigencia al motor, que el caso anterior, ya que la corriente de armadura alcanza un valor menor a 2Inom. y se tiene un error apenas superior a los –15rad/seg. A continuación se muestran gráficas comparativas de los errores entre ambos controles para las distintas situaciones de simulación.
SDCM_WEB.doc DSF INFORME PROVISORIO Página 11 de 28
Gráfica comparativas. Caso velocidad de referencia suave y sin variación de parámetros.
0 5 10 15 20 25-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
tiempo[seg]
w-w
ref [
rds/
seg]
error
BackStepping Linealización ext.
Figura 10
Caso velocidad de referencia suave y con variación en un 50% en las resistencias de campo y
armadura del motor.
0 5 10 15 20 25-2
-1
0
1
2
3
4
5
6
7
8
tiempo[seg]
w-w
ref [
rds/
seg]
error
BackStepping Linealización ext.
Figura 11
SDCM_WEB.doc DSF INFORME PROVISORIO Página 12 de 28
Caso velocidad de referencia brusca y sin variación de parámetros.
0 2 4 6 8 10 12-30
-20
-10
0
10
20
30
40
tiempo[seg]
w-w
ref [
rds/
seg]
error
BackStepping Linealización ext.
Figura 12
SDCM_WEB.doc DSF INFORME PROVISORIO Página 13 de 28
ANEXO 1
SDCM_WEB.doc DSF INFORME PROVISORIO Página 14 de 28
Los siguientes diagramas en bloques corresponden al motor trabajando sin debilitamiento de
campo. Diagrama general del motor idéntico para ambos controles
U
Tc
w
ie
DCM _bfw
e
Ie
2
ie
1
w
bv
b
Sum3Sum
-K-
Ra+Re
Product1
Product
kv
Ks
1
Integrator2
s
1
Integrator Caract. Mag.de Le+La
Caract. Mag.de Le
1/Jv
1/J
2
Tc
1
U
SDCM_WEB.doc DSF INFORME PROVISORIO Página 15 de 28
Diagrama general del control implementado por Chiasson
Switch2
Sum
STOP
Stop Simulation
SaturationRamp3
Ramp2
Ramp
ieTcw
wref
u
PI
U
ie
ia
w^
Tc^
Observador_ch
Look-UpTable
ie
w
u
U
Linealización
U
Tc
w
ie
DCM_bfw
1
Constant3
0
Constant2
Contenido de cada sub-bloque Bloque Observador_ch
2
w
1
Tc
k/J
k/J
K
[1;0;0]
K
[1 0 0]
K
[0;1;0]
K
[0 1 0]
K
[0 0 1]Switch3
Switch2
Sum5
Sum4
Sum2
Sum1
Sumra
Ra
Product1
Product
Look-UpTable K
L
J
J
s
1
Integrator
re
Gain
log(u)
Fcn
Dead Zone1
0
Constant3
0
Constant2
1
Constant1
K
A
3
ia
2
ie
1
U
SDCM_WEB.doc DSF INFORME PROVISORIO Página 16 de 28
Bloque PI
wref wref ' wref '' wref '''
1
u
k3
k3k2
k2
k1
k1
k
kfi
Sum5
Sum4
Sum3
Sum2Sum1
Sum
Product
s
1Integrator3
s
1Integrator2
s
1Integrator1
s
1Integrator
-K-
Gain4
-K-
Gain3
300
Gain2
-K-
Gain1-K-
Gain
1/J
1/J
4
wref
3
w
2
Tc
1
ie
Bloque Linealización
1
U
k
k
fip
fi
Sum2Sum1
Sum
Product2Product1
Product
J/k
J/k
Dead Zone1
Constant
-K-
(ra+re)
3
u
2
w1
ie
SDCM_WEB.doc DSF INFORME PROVISORIO Página 17 de 28
Diagrama general del control implementado por Junco
S w i tc h 2
S u m 1
S T O P
S to p S i m u l a t i o n
S a tu ra t i o nR a m p 4
R a m p 3
R a m p
U
ie
ia
Tc ^
w ^
O b se rv a d o r_ c h
L o o k-U pT a b l e
U
Tc
w
ie
D C M _ b fw
ie
w
Tc
w *
U
C o n tro l _ b fw
1
C o n sta n t3
0
C o n sta n t2
Bloque Control_bfw
Ia*1
U
limitador
ka
ka
1
cte
b
b
Sum7Sum6
Sum5Sum3
Sum2
Sum1
Sum
Product3
Product2
Product1
Product
k
K2
J*kw
J*kw
J
Js
1Integrator1
s
1Integrator50
Gain3
50
Gain2
50
Gain1
50
Gain
Der Carac Mag Le+La1
Carac Mag Le1
(ra+re)
(ra+re)
4
w*
3
Tc
2
w
1
ie
SDCM_WEB.doc DSF INFORME PROVISORIO Página 18 de 28
Los siguientes diagramas en bloques corresponden al motor trabajando con debilitamiento de campo.
Diagrama general del motor idéntico para ambos controles
DCM _ fw
U
Tc
w
ie
ia
Ie
Ia
e
3
ia
2
ie
1
w
bv
bSum3
Sum2
Sum1Sum
rev
Rerdv
Rd
rav
Ra
Product1
Product
-K-
La
kv
K
s
1
Integrator2
s
1
Integrator1
s
1Integrator
Caract. Mag.de Le
1/Jv
1/J
2
Tc
1
U
SDCM_WEB.doc DSF INFORME PROVISORIO Página 19 de 28
Diagrama general del control implementado por Chiasson
s
U
Tc
ie
ia
Ie
Wobs
Tcobs
Wref
Vfw
fw_ch
Sum
Saturation
Ramp3
Ramp2
Ramp1
U
ie
ia
Tc^
w^
Observador_ch
Look-UpTable
Contenido de cada sub-bloque Bloque Observador_ch
2
w
1
Tc
k/J
k/J
K
[1;0;0]
K
[1 0 0]
K
[0;1;0]
K
[0 1 0]
K
[0 0 1]Switch3
Switch2
Sum5
Sum4
Sum2
Sum1
Sumra
Ra
Product1
Product
Look-UpTable K
L
J
J
s
1
Integrator
re
Gain
log(u)
Fcn
Dead Zone1
0
Constant3
0
Constant2
1
Constant1
K
A
3
ia
2
ie
1
U
SDCM_WEB.doc DSF INFORME PROVISORIO Página 20 de 28
Bloque fw_ch
1
Vfw
Sum3
Sum2
Sum1
Sum
rp
Rp
ra+rp
Ra+Rp
Product1
Product
Look-UpTable
-K-
K22
-K-
K11
k/J
K/J
k
K
s
1
Integrator2
s
1
Integrator1
50
Gain1
50
Gain
1/J
1/J
4
Wref
3
Tcobs
2
Wobs
1
Ie
SDCM_WEB.doc DSF INFORME PROVISORIO Página 21 de 28
Diagrama general del control implementado por Junco
Sum
Saturation
Ramp4
Ramp3
Ramp
U
ie
ia
Tc
w
Observador_ch
Look-UpTable
U
Tc
ie
ia
DCM_fw
w*
ia
w
Tc
ie
U
Control_fw
SDCM_WEB.doc DSF INFORME PROVISORIO Página 22 de 28
Bloque Control_fw
Ia*
1
U
rd
rd
-K-
la*50
kw*J
kw*J-K-
ka*la
Sum5
Sum4
Sum3
Sum2
Sum1Sum
Product1
Product
k
K
J
J1
s
1Integrator1
s
1Integrator
50
Gain3
50
Gain1
50
Gain
Carac Mag Le
-K-
(ra+rd-la*ka)
-K-
(b-J*kw)
5
ie
4
Tc
3
w
2
ia
1
w*
SDCM_WEB.doc DSF INFORME PROVISORIO Página 23 de 28
ANEXO 2
SDCM_WEB.doc DSF INFORME PROVISORIO Página 24 de 28
A continuación detallamos los Scrip utilizados para las simulaciones. Simulación Chiasson
El mismo lleva el nombre de simch.m y está confeccionado de la siguiente manera: %%% Linealización exacta %%% %%% Simulación de un motor de corriente continua en conexión serie. Sobrepasada %%% la velocidad base se conecta una Rd en paralelo con la exitación para trabajar en sobrevelocidad %%% %%% Carga de parámetros en espacio de trabajo y apertura de los modelos %%% %%% dcmbfw_ch y dcmfw_ch %%% load vary_sdcm; open dcmbfw_ch; open dcmfw_ch; %%% inicialización del modelo del motor y controlador antes del deblitamiento de campo %%% set_param('dcmbfw_ch/DCM_bfw/Integrator','InitialCondition','0'); set_param('dcmbfw_ch/DCM_bfw/Integrator2','InitialCondition','0'); set_param('dcmbfw_ch/PI/Integrator','InitialCondition','0'); set_param('dcmbfw_ch/PI/Integrator1','InitialCondition','0'); set_param('dcmbfw_ch/PI/Integrator2','InitialCondition','0'); set_param('dcmbfw_ch/Observador_ch/Integrator','InitialCondition','[0;0;0]'); set_param('dcmbfw_ch/Integrator','InitialCondition','0'); set_param('dcmbfw_ch/Integrator1','InitialCondition','0'); set_param('dcmbfw_ch/Integrator2','InitialCondition','0'); set_param('dcmbfw_ch/Integrator3','InitialCondition','0'); set_param('dcmbfw_ch','Solver','ode5','StartTime','0','StopTime','25','FixedStep','0.0005'); %%% simulación del motor antes de producir debilitamiento de campo %%% sim('dcmbfw_ch'); %%% la simulación se detiene cuando se dá la condición del bloque Stop, la cual %%% %%% ocurre cuando la velocidad del motor alcanza la nominal 200 rds/seg %%% %%% vectores de estado, de salida y de control después de la primer simulación %%% ie=IE; w=W; wref=WREF; v=V; error=Error; Tc=TC; tiempo=Tiempo; obs=Obs; obsp=Obsp; ia=IE; iae=IAE; itae=ITAE; ise=ISE; energia=Energia; potencia=Potencia; %%% inicialización del modelo del motor con deblitamiento de campo %%%
SDCM_WEB.doc DSF INFORME PROVISORIO Página 25 de 28
cifluex=fluex(length(fluex),1); ciW=W(length(W),1); ciIE=IE(length(IE),1); ciWREF=WREF(length(WREF),1); ciwref_w=wref_w(length(wref_w),1); ciobs=[Obs(length(Obs),1);Obs(length(Obs),2);Obs(length(Obs),3)]; ciiae=iae(length(iae),1); ciitae=itae(length(itae),1); ciise=ise(length(ise),1); citiempo=tiempo(length(tiempo),1); cienergia=energia(length(energia),1); set_param('dcmfw_ch/s/Integrator','InitialCondition','ciIE*la'); set_param('dcmfw_ch/s/Integrator1','InitialCondition','cifluex'); set_param('dcmfw_ch/s/Integrator2','InitialCondition','ciW'); set_param('dcmfw_ch/fw_ch/Integrator1','InitialCondition','ciwref_w'); set_param('dcmfw_ch/fw_ch/Integrator2','InitialCondition','ciWREF/50'); set_param('dcmfw_ch/Observador_ch/Integrator','InitialCondition','ciobs'); set_param('dcmfw_ch/Integrator1','InitialCondition','ciiae'); set_param('dcmfw_ch/Integrator','InitialCondition','ciitae'); set_param('dcmfw_ch/Integrator2','InitialCondition','ciise'); set_param('dcmfw_ch/Integrator3','InitialCondition','cienergia'); set_param('dcmfw_ch','Solver','ode15s','StartTime','citiempo','StopTime','25','RelTol','1e-4','AbsTol','1e-6'); %%% simulación del motor una vez producido el debilitamiento de campo %%% sim('dcmfw_ch'); %%% vectores de estado, de salida y de control definitivos %%% ie=[ie' IE']'; w=[w' W']'; wref=[wref' WREF']'; v=[v' V']'; error=[error' Error']'; Tc=[Tc' TC']'; tiempo=[tiempo' Tiempo']'; obs=[obs' Obs']'; obsp=[obsp' Obsp']'; ia=[ia' IA']'; iae=[iae' IAE']'; itae=[itae' ITAE']; ise=[ise' ISE']; energia=[energia' Energia']'; potencia=[potencia' Potencia']'; %%% gráficas %%% figure(1); plot(tiempo,w,tiempo,wref,'r'); legend('W','Wref'); figure(2); plot(tiempo,error); legend('error'); figure(3); plot(tiempo,v); title('V'); figure(4); plot(tiempo,ia,tiempo,ie,'r'); legend('ia','ie'); figure(5); plot(tiempo,w,tiempo,obsp(:,1),'r',tiempo,wref,'g',tiempo,obs(:,2),'c'); legend('W','Wobs','Wref','Wobsa');
SDCM_WEB.doc DSF INFORME PROVISORIO Página 26 de 28
figure(6); plot(tiempo,Tc,tiempo,obsp(:,2),'r'); legend('Tc','Tcobs'); figure(7); plot(tiempo,iae,tiempo,itae,'r',tiempo,ise,'g'); legend('iae','itae','ise'); figure(8); plot(tiempo,potencia); title('Potencia'); figure(9); plot(tiempo,energia); title('Energia'); %%% FIN %%%
Simulación Junco El mismo lleva el nombre de simser.m y está confeccionado de la siguiente manera: %%% Backstepping %%% %%% Similación de un motor de corriente continua en conexión serie. Sobrepasada %%% %%% la velocidad base se conecta una Rd en paralelo con la exitación para trabajar %%% %%% en sobrevelocidad %%% %%% Carga de parámetros en espacio de trabajo y apertura de los modelos %%% %%% dcmbfw_ser y dcmfw_ser %%% load vary_sdcm; open dcmbfw_ser; open dcmfw_ser; %%% inicialización del modelo del motor antes del deblitamiento de campo %%% set_param('dcmbfw_ser/DCM_bfw/Integrator','InitialCondition','0'); set_param('dcmbfw_ser/DCM_bfw/Integrator2','InitialCondition','0'); set_param('dcmbfw_ser/Control_bfw/Integrator','InitialCondition','0'); set_param('dcmbfw_ser/Control_bfw/Integrator1','InitialCondition','0'); set_param('dcmbfw_ser/Observador_ch/Integrator','InitialCondition','[0;0;0]'); set_param('dcmbfw_ser/Integrator','InitialCondition','0'); set_param('dcmbfw_ser/Integrator1','InitialCondition','0'); set_param('dcmbfw_ser/Integrator2','InitialCondition','0'); set_param('dcmbfw_ser/Integrator3','InitialCondition','0'); set_param('dcmbfw_ser','Solver','ode4','StartTime','0','StopTime','25','FixedStep','0.0005'); %%% simulación del motor antes de producir debilitamiento de campo %%% sim('dcmbfw_ser'); %%% la simulación se detiene cuando se dá la condición del bloque Stop, la cual %%% %%% ocurre cuando la velocidad del motor alcanza la nominal 200 rds/seg %%% %%% vectores de estado, de salida y de control después de la primer simulación %%% ie=IE; w=W; wref=WREF; v=V;
SDCM_WEB.doc DSF INFORME PROVISORIO Página 27 de 28
error=Error; Tc=TC; obs=Obs; obsp=Obsp; tiempo=Tiempo; iae=IAE; itae=ITAE; ise=ISE; potencia=Potencia; energia=Energia; %%% inicialización del modelo del motor con deblitamiento de campo %%% cifluex=fluex(length(fluex),1); ciW=W(length(W),1); ciIE=IE(length(IE),1); ciWREF=WREF(length(WREF),1); ciiad=iad(length(iad),1); ciiadp=iadp(length(iadp),1); ciWREFP=WREFP(length(WREFP),1); ciobs=[Obs(length(Obs),1);Obs(length(Obs),2);Obs(length(Obs),3)]; ciiae=iae(length(iae),1); ciitae=itae(length(itae),1); ciise=ise(length(ise),1); civ=v(length(v),1); citiempo=tiempo(length(tiempo),1); cienergia=energia(length(energia),1); set_param('dcmfw_ser/DCM_fw/Integrator','InitialCondition','ciIE*la'); set_param('dcmfw_ser/DCM_fw/Integrator1','InitialCondition','cifluex'); set_param('dcmfw_ser/DCM_fw/Integrator2','InitialCondition','ciW'); set_param('dcmfw_ser/Control_fw/Integrator','InitialCondition','ciWREFP'); set_param('dcmfw_ser/Control_fw/Integrator1','InitialCondition','ciiadp'); set_param('dcmfw_ser/Observador_ch/Integrator','InitialCondition','ciobs'); set_param('dcmfw_ser/Integrator1','InitialCondition','ciiae'); set_param('dcmfw_ser/Integrator','InitialCondition','ciitae'); set_param('dcmfw_ser/Integrator2','InitialCondition','ciise'); set_param('dcmfw_ser/Integrator3','InitialCondition','cienergia'); set_param('dcmfw_ser','Solver','ode4','StartTime','citiempo','StopTime','25','FixedStep','0.0005'); %%% simulación del motor una vez producido el debilitamiento de campo %%% sim('dcmfw_ser'); %%% vectores de estado, de salida y de control definitivos %%% ia=[ie' IA']'; ie=[ie' IE']'; w=[w' W']'; wref=[wref' WREF']'; v=[v' V']'; error=[error' Error']'; Tc=[Tc' TC']'; obs=[obs' Obs']'; obsp=[obsp' Obsp']'; tiempo=[tiempo' Tiempo']'; iae=[iae' IAE']'; itae=[itae' ITAE']; ise=[ise' ISE']; energia=[energia' Energia']'; potencia=[potencia' Potencia']'; %%% gráficas %%%
SDCM_WEB.doc DSF INFORME PROVISORIO Página 28 de 28
figure(1); plot(tiempo,w,tiempo,wref,'r'); legend('W','Wref'); figure(2); plot(tiempo,error); legend('error'); figure(3); plot(tiempo,v); title('V'); figure(4); plot(tiempo,ia,tiempo,ie,'r'); legend('ia','ie'); figure(5); plot(tiempo,w,tiempo,obsp(:,1),'r',tiempo,wref,'g',tiempo,obs(:,2),'c'); legend('W','Wobs','Wref','Wobsp'); figure(6); plot(tiempo,Tc,tiempo,obsp(:,2),'r'); legend('Tc','Tcobs'); figure(7); plot(tiempo,iae,tiempo,itae,'r',tiempo,ise,'g'); legend('iae','itae','ise'); figure(8); plot(tiempo,potencia); title('Potencia'); figure(9); plot(tiempo,energia); title('Energia'); %%% FIN %%%