Documentos de Académico
Documentos de Profesional
Documentos de Cultura
mediante Matlab
Memoria Tcnica
ndice
1.
2.
3.
Introduccin................................................................................................................... 6
Objetivos........................................................................................................................ 6
Memoria descriptiva ...................................................................................................... 7
3.1.
Introduccin a MATLAB ...................................................................................... 7
3.2.
Entorno en tiempo real con MATLAB.................................................................. 7
3.2.1.
Real Time Windows Target ........................................................................... 7
3.2.2.
Real-Time Windows Kernel ........................................................................... 8
3.2.3.
Aplicacin Real-Time .................................................................................... 9
3.2.4.
Anlisis y adquisicin de seales .................................................................. 9
3.2.5.
Ajuste de parmetros ..................................................................................... 9
3.2.6.
Entorno del hardware.................................................................................. 10
3.2.6.1.
Compatibilidad del PC ........................................................................ 10
3.2.6.2.
Soporte del driver de entrada/salida ................................................... 10
3.2.7.
Entorno del software ................................................................................... 11
3.2.7.1.
Simulacin en tiempo no real .............................................................. 11
3.2.7.2.
Ejecucin en tiempo real ..................................................................... 11
3.2.8.
Simulink en modo externo............................................................................ 12
3.2.9.
Buffers y transferencia de datos .................................................................. 12
3.3.
Elementos fsicos de la aplicacin en Tiempo Real ............................................ 12
3.3.1.
PC ................................................................................................................ 13
3.3.1.1.
Placa de adquisicin de datos ............................................................. 14
3.3.1.1.1. Sensores y actuadores ......................................................................... 14
3.3.1.1.2. Hardware de adquisicin de datos...................................................... 14
3.3.1.1.3. Hardware de acondicionamiento de la seal ...................................... 15
3.3.1.1.4. La computadora................................................................................... 15
3.3.1.1.5. Software............................................................................................... 15
3.3.1.1.6. Hardware de la adquisicin de datos.................................................. 15
3.3.1.1.6.1. Descripcin de la placa de adquisicin de datos NI-6024-E.............. 15
3.3.1.1.6.2. Conexin Entrada/Salida .................................................................... 16
3.3.1.1.6.3. Caractersticas del bus PCI................................................................. 19
3.3.2.
Driver del Motor CC ................................................................................... 21
3.3.2.1.
Microcontrolador ................................................................................ 21
3.3.2.2.
GAL (Gate Array Logic)...................................................................... 22
3.3.2.3.
Puente en H ......................................................................................... 22
3.3.2.4.
Cuadrantes de trabajo de un motor..................................................... 22
3.3.2.5.
Pulse Width Modulation ...................................................................... 23
3.3.3.
Motor de corriente continua........................................................................ 24
3.3.3.1.
Excitacin independiente..................................................................... 25
3.3.3.2.
Determinacin de la constante K .................................................... 27
3.3.3.3.
Placa de caractersticas del motor de corriente continua .................. 27
3.3.4.
Modulo de Control ...................................................................................... 28
3.3.5.
Fuente de Alimentacin Variable ................................................................ 33
3.4.
Elementos de Software ........................................................................................ 34
3.4.1.
Herramienta GUIDE ................................................................................... 34
3.4.1.1.
Paleta de componentes ........................................................................ 37
3.4.1.2.
Iconos varios ....................................................................................... 37
3.4.2.
Estructura de los grficos en MATLAB....................................................... 37
3.4.2.1.
Jerarqua de MATLAB ........................................................................ 37
3.4.2.2.
Identificadores (handles)..................................................................... 38
3.4.2.3.
Propiedades de los objetos .................................................................. 38
ndice
4.
ii
ndice
4.6.4.2.
Tiempo final......................................................................................... 79
4.6.4.3.
Tiempo discreto ................................................................................... 79
4.6.4.4.
Conexin y ejecucin de la aplicacin ................................................ 80
4.6.4.5.
Parada de la ejecucin ........................................................................ 80
4.6.4.6.
Compilacin ........................................................................................ 81
4.6.5.
Limitacin de puntos de ejecucin .............................................................. 82
4.6.6.
Visualizacin de grficos ............................................................................ 83
4.6.6.1.
Opcin de grfico AND ....................................................................... 83
4.6.6.2.
Opcin de grfico OR.......................................................................... 84
4.6.6.3.
Opcin de grfico SCOPE................................................................... 84
4.6.6.4.
Seleccin de variable a visualizar ....................................................... 85
4.6.6.5.
Borrar pantalla.................................................................................... 85
4.6.6.6.
Activacin de la cuadrcula de pantalla.............................................. 85
4.6.6.7.
Casillas de seleccin de rea de visualizacin ................................... 86
4.6.6.8.
Zoom in ................................................................................................ 86
4.6.6.9.
Zoom out .............................................................................................. 86
4.6.6.10.
Seleccin automtica de visualizacin ................................................ 87
4.6.6.11.
rea de visualizacin de grficos........................................................ 87
4.6.6.12.
Visualizacin de grficos .................................................................... 87
4.6.7.
Parmetros de guardar y cargar datos ....................................................... 90
4.6.7.1.
Nombre de la variable ......................................................................... 90
4.6.7.2.
Ruta para salvar/guardar datos .......................................................... 91
4.6.7.3.
Salvar/guardar datos........................................................................... 91
4.6.8.
Parmetros de casilla de dilogo y cerrar aplicacin ................................ 93
4.6.8.1.
Casilla de dilogo................................................................................ 93
4.6.8.2.
Salvar................................................................................................... 93
5. Conclusiones................................................................................................................ 94
6. Bibliografa.................................................................................................................. 95
7. Anexos ......................................................................................................................... 96
7.1.
Compatibilidad de bloques de Simulink y RTWT .............................................. 96
7.2.
Preguntas realizadas al servicio tcnico de Matlab ........................................... 104
iii
Memoria Tcnica
1. Introduccin
Desde que Michael Faraday descubri en el siglo XIX que mediante la generacin de
una corriente elctrica en un conductor en movimiento en el interior de un campo
magntico produca el fenmeno de la induccin, se ha evolucionado mucho respecto a
los primeros prototipos de motores elctricos. Existen una gran variedad de tipos de
motores segn su tamao, funcionamiento, tensin de alimentacin, etc. En la
actualidad, se hace un gran uso de estas mquinas tanto en el mbito industrial, como en
el domstico. Hay que decir que la electrnica de potencia y los avances tecnolgicos
han contribuido a dar mayor cabida a estos dispositivos, tanto por la reduccin del
tamao, de los consumos y de los rendimientos. Ello hace posible verlos en el interior
de un telfono mvil, de un ordenador, o en juguetes.
Pero es en la industria donde se hace ms latente el uso de estas mquinas, y es donde se
incorporan sistemas realimentados para el control de velocidad, de par o de ngulo. Ya
desde el 300 a.C. los griegos y los rabes tuvieron la necesidad de querer medir el
tiempo, conducindoles a realizar grandes aportes en la teora y prctica del control
automtico. Pero no fue hasta el siglo XVIII, a manos del movimiento ideolgico de la
Ilustracin, que se hicieron los avances ms significativos. Durante la Revolucin
Industrial, con la implementacin de mquinas ms complejas: molinos de grano
avanzados, hornos, calderas y motores a vapor; se llevaron a cabo reguladores de
flotador, temperatura, presin, y control de velocidad. Los controladores proporcionan
una mayor fiabilidad; lo que conlleva una mejora de cualquier proceso de fabricacin,
tanto en calidad como en cantidad de produccin.
2. Objetivos
El objetivo principal que se plantea es la realizacin de un entorno grfico que permita
el control ajustable de la velocidad de una mquina de corriente continua en tiempo real.
Para ello se deber conocer los siguientes entornos para desarrollar la aplicacin:
Memoria Tcnica
3. Memoria descriptiva
3.1. Introduccin a MATLAB
El nombre de MATLAB proviene de la contraccin de los trminos MATrix
LABoratory y fue concebido para el fcil acceso a las libreras que son de gran
importancia en el campo de la computacin y el clculo matricial.
MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente
integrado, orientado para el desarrollo de proyectos con elevados clculos matemticos
y la visualizacin grfica de estos. MATLAB integra anlisis numrico, clculo
matricial, procesado de seal, todo ello en un entorno fcil para el usuario.
Tanto en el mundo universitario como en el industrial, MATLAB se ha convertido en
una herramienta bsica para la resolucin de complejos problemas matemticos en
diferentes reas como la computacin, el clculo numrico, prototipaje algortmico,
teora de control automtico, estadstica, etc.
MATLAB consta de diferentes aplicaciones o toolboxes especializados orientados a
ingenieros, cientficos y todo tipo de profesionales tcnicos. Entre ellos destacan:
Sistemas de Control, Adquisicin de Datos, Tiempo Real, Lgica Fuzzy, Procesamiento
de imgenes, Redes Neuronales, Optimizacin, Procesamiento de Seal, etc.
Memoria Tcnica
Memoria Tcnica
Memoria Tcnica
Modo External en Simulink: trabajar en este modo nos permite cambiar valores
de parmetros y transferirlos automticamente mientras se ejecuta la aplicacin
en tiempo real.
Parmetros de bloques
Parmetros de bloques de subsistemas.
MATLAB variables
Librera de bloques para DAQ: el Real Time Windows Target provee una
librera de bloques para Simulink que contienen los drivers universales para
todas las placas compatibles. Esta librera es la rtwinlib y contiene los
bloques: Analog Input, Analog Output, Digital Input, Digital Output, Counter
Input y Encoder Input.
10
Memoria Tcnica
11
Memoria Tcnica
PC
Entradas/Salidas
Driver del motor de corriente continua
Motor de corriente continua
Alimentacin externa
Realimentacin
12
Memoria Tcnica
Alimentacin
Rampa
Sentido de giro
Errores
Entradas/Salidas
Velocidad
Driver Motor CC
MOTOR
Realimentacin
3.3.1. PC
El ordenador personal es el encargado de capturar los datos que transmite el usuario al
driver (velocidad, rampa, etc), y los datos obtenidos del motor (errores, datos de la
realimentacin, etc), para realizar los clculos algortmicos necesarios y as actualizar
los valores del modelo en cada intervalo de tiempo. Es decir, la computadora y el
modulo de entrada/salida, o tambin placa de adquisicin de datos, establecern un
intercambio de parmetros para cada instante de tiempo.
El PC aloja en su interior la tarjeta de adquisicin de datos, los drivers de la misma, el
programa MATLAB, la aplicacin en tiempo real, y Simulink. Las caractersticas de la
computadora utilizada y su sistema operativo son:
Hay que decir que estas caractersticas contribuirn a la restriccin del tiempo de
muestreo mximo, el nmero mximo de bloques en Simulink o por ejemplo la
velocidad de compilacin de la aplicacin durante el desarrollo, entre otros.
13
Memoria Tcnica
3.3.1.1. Placa de adquisicin de datos
La tarjeta de adquisicin de datos permite capturar y/o generar seales reales e
interactuar con ellas desde la aplicacin en tiempo real. Un sistema de adquisicin de
datos esta formado por un hardware y un software que permite a un sistema digital
conectarse al mundo real. El sistema de adquisicin de datos tpico est formado por:
Sensores y actuadores
Hardware de adquisicin de datos
Hardware de acondicionamiento de seal
Computadora o procesador
Programa
Los sensores y actuadores son aquellos que actan como transductores, es decir estos
elementos transforman una seal capturada de una naturaleza en otra seal de salida de
otra naturaleza. En el caso que nos ocupa, el sensor seria el tacmetro que lee las vueltas
que realiza el eje del motor y genera una seal elctrica proporcional. El actuador es el
que mediante una seal elctrica hace que el motor gire a determinada velocidad.
3.3.1.1.2. Hardware de adquisicin de datos
14
Memoria Tcnica
3.3.1.1.3. Hardware de acondicionamiento de la seal
3.3.1.1.5. Software
15
Memoria Tcnica
Para hacer funcionar la placa DAQ es necesario tener los drivers e instalarlos en el PC.
Para poder trabajar en el entorno de Matlab, la Toolbox Real-Time es la encargada de
detectar automticamente el dispositivo para darle funcionalidad.
16
Memoria Tcnica
17
Memoria Tcnica
ACH<0..15>
AIGND
Input
AISENSE
AIGND
Input
DAC0OUT
AOGND
Output
DAC1OUT
AOGND
Output
AOGND
DGND
DIO<0..7>
DGND
Input or
Output
+5V
DGND
Output
Impedance
Input/ Output
Protection (Volts)
On/Off
Source (mA at V)
Sink (mA
atV)
Rise
Time
(ns)
Bias
ACH<0..15>
AI
100 G in
parallel with
100 pF
42/35
200 pA
AISENSE
AI
100 G in
parallel with
100 pF
40/25
200 pA
AIGND
AO
AO
0.1
Short-circuit to
ground
5 at 10
5 at-10
10
V/us
AO
0.1
Short-circuit to
ground
5 at 10
5 at-10
10
V/jis
AOGND
AO
DGND
DO
VCC
DO
0.1
1A fused
DIO<0..7>
DIO
Short-circuit to
ground
Vcc +0.5
13 at (Vcc -0.4)
24 at 0.4
1,1
50kpu
AI = Analog Input AO =
Analog Output Note:
The tolerance on the 100
k
17 k and
18
Memoria Tcnica
Est claro que las caractersticas del bus son un factor a tener en cuenta respecto a
posibles limitaciones en el tiempo de muestreo, tamao de los datos, transformaciones
ADC y DAC, etc. Sin entrar en mucho detalle, se comentan algunas de las
caractersticas ms destacables.
En el manual del fabricante nos advierten que estas especificaciones se han determinado
a una temperatura de 25 C.
19
Memoria Tcnica
Entrada Analgica
Caractersticas de entrada
Conversin ADC por aproximaciones succesivas
Error 1,5 LSB en modo no diferencial
Resolucin de 12 bits, 1 bit 4096
Velocidad de muestreo de 200 kS/s garantizada
Board Gain (Software-Selectable)
0,5
1
10
100
Voltaje mximo de trabajo de 11 V
Poteccin contra sobretensiones
Signal
ACH<0..15>
AISENSE
Range
10 V
5 V
500 mV
50 mV
Powered
On
42
40
Salida Analgica
Caractersticas de salida
2 canales
Resolucin de 12 bits
Error 1,5 LSB (solo no diferencial)
Tiempo mximo de actualizacin
DMA: 10 kHz, system dependent
Interrupts: 1 kHz, system dependent
Conversin DAC: Double buffering, multiplying
FIFO buffer size: No
Transferencia de datos: DMA, Interrupciones, E/S programadas
Voltage de salida
Rango: 10 V
Impedancia de salida: 0.1 max
Corriente de salida: 5 mA max
Proteccin contra cortocircuitos a masa
Estado de equilibrio al enceder: 200 mV
Tabla 4: Caractersticas salida analgica
20
Powered
Off
35
25
Memoria Tcnica
Entradas/Salidas Digitales
DIO<0..7>
Digital logic levels
Level
Input low voltage
Input high voltage
Input low current (Vin= 0 V)
Input high current (Vin= 5 V)
Output low voltage (IOL= 24 mA)
Output high voltage (IOH= 13 mA)
Min
0V
2V
4.35 V
Max
0.8 V
5V
320 A
10 A
0.4 V
3.3.2.1. Microcontrolador
Para realizar la gestin de las consignas de velocidad y rampa se utilizar el PIC18F252.
Este elemento dispone de seis entradas analgicas y dos salidas de pwm.
Sus funciones sern:
21
Memoria Tcnica
3.3.2.2. GAL (Gate Array Logic)
El dispositivo Lgico Programable GAL es el que confiere seguridad y fiabilidad a los
elementos de potencia, protegindolos de la recirculacin de sobrecorrientes, evita
cruces en las ramas de los puentes y trasmite el PWM a la seal de activacin de la parte
alta de los transistores del puente.
El modelo de GAL es el Ispv22v10 y este tipo de dispositivos destacan por la gran
rapidez - del orden de nanosegundos - , caracterstica importante para la proteccin de
sobrecorrientes.
3.3.2.3. Puente en H
La configuracin del puente en H se basa en el funcionamiento de cuatro interruptores
controlados, que gestionan en todo momento la tensin media y la recirculacin de la
corriente de armadura.
La excitacin del puente en H se realiza mediante modulacin por anchura de pulsos y
existen dos estrategias:
Mantener una diagonal bloqueada y actuar en los dos transistores opuestos superior e inferior -. Para invertir el sentido de giro habr que realizar la
situacin contraria.
Mantener una diagonal bloqueada y actuar con el PWM en el transistor superior
y dejando el inferior de la otra diagonal activado. Para invertir el sentido de giro
se intercambian los papeles de las diagonales.
22
Memoria Tcnica
Cuadrante Velocidad
1
+
2
+
3
4
-
Par
+
+
Vmed =
(1)
f (t )
dt
T
(2)
VH TH VL TL
+
T
T
23
Memoria Tcnica
D=
(3)
Ton
T
24
Memoria Tcnica
escoge una tcnica de control adecuada, se consigue una muy buena respuesta dinmica
(fiable y rpida).
Existen diversos tipos de motores cc: con escobillas, sin escobillas (brushless) y los
motores pasos a paso. Nos centraremos en el de escobillas porqu es el caso que nos
ocupa.
Ilustracin 8: Estator, rotor y motor cc montado (se seala una escobilla), sucesivamente.
La funcin del colector de delgas y las escobillas es alimentar correctamente las bobinas
del devanado de armadura del rotor. El colector de delgas est unido al rotor y las
escobillas al estator.
En ciertas potencias existen diferentes configuraciones para las conexiones entre el
devanado de excitacin y armadura: excitacin independiente, paralelo o shunt, serie y
la compuesta. La que se va utilizar es la independiente por tanto nos centraremos en
solo en esta configuracin.
25
Memoria Tcnica
La nomenclatura es la siguiente:
Va: tensin en bornes de la armadura.
Ia: intensitat de armadura.
Ea: f.e.m interna de inducido.
Ra: resistencia de inducido o armadura. Incluye la resistencia ohmica del devanado de
armadura, de las escobillas y de los devanados de compensacin.
La: inductancia del bobinado de inducido o armadura.
Vb: cada de tensin del arco elctrico a las escobillas (brush).
w : Velocidad mecnica en el eje del motor (rad/s).
n : Velocidad mecnica en el eje en r.p.m.
Ti: par interno en Nm.
Ts: par externo en Nm.
En la Ilustracin 10 se muestran las curvas caractersticas par-velocidad de un motor cc
a flujo constante y con tensiones de alimentacin de armaduras diferentes. El hecho ms
interesante de estas curvas es que tienen una caracterstica dura para un elevado margen
de tensiones. Esto quiere decir que si varia la demanda de par de la carga mecnica la
velocidad vara poco, lo que permitir regular fcilmente la velocidad de este tipo de
motor.
26
Memoria Tcnica
(4)
Ti = K Ia
(5)
Va = Ia Ra + Vb + Ea
(6)
Ea = K 0.1047 n
(8)
Va Vb Ia Ra
0.1047 n
(9)
Va Ia Ra
0.1047 n
27
220 V
0,25 A
2000 rpm
Memoria Tcnica
Tipo de Error
ERR 1
ERR 2
ERR 3
ERR 4
ERR 5
ERR 6
Descripcin
Generator operation
Temperature of the DUT
Overvoltage in the link circuit of the control unit
Temperature of the D & B Unit
Temperature of the control unit
DUT is switched off via the output DUT ENABLE by
removing the coupling guard or the shaft end guard
28
Memoria Tcnica
29
Memoria Tcnica
30
Memoria Tcnica
INTERN: Depending on the operating mode
reference variable is set for speed, or torque
via the incremental control knob.
EXTERN: Depending on the operating
mode the reference variable is set for speed
or torque via the external input CONTROLIN
(13).
31
Memoria Tcnica
29 3-digit 7-segment display to indicate the torque
32
Memoria Tcnica
33
Memoria Tcnica
Una vez iniciemos la aplicacin aparece la siguiente interfaz, y nos pedir si queremos
realizar una aplicacin nueva o bien abrir una existente. En el caso que se cree una
nueva aplicacin se puede partir de aplicaciones prefabricadas, como por ejemplo: con
controles, con una pantalla para grficos y men, o un cuadro de dialogo.
34
Memoria Tcnica
En este caso se pide que comience el GUI en blanco, siendo nosotros quienes tengamos
absoluto control y seamos quienes aadamos los controles que necesitemos. Aparecer
la ventana de la Ilustracin 16.
11
10
13
12
17
15
16
20
18
21
19
14
35
Memoria Tcnica
Item
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Tag
Select
Push Button
Slider
Radio Button
Check Box
Edit Box
Static Text
Pop-up menu
List Box
Toggle Button
Axes
Panel
Button Group
Activex
Control
Align objects
Menu Editor
Tab order
Editor
M-file Editor
Property
inspector
Object
Browser
Run
Detalles
Seleccin de un objeto
Botn
Barra de desplazamiento
Botn de seleccin circular
Botn de seleccin tipo lista
Casilla de edicin
Casilla de texto fijo
Men desplegable
Men en lista
Botn con memoria
Pantalla para visualizacin de grficos
Opcin para generar un panel
Opcin para agrupar botones
Opcin para generar controles ActiveX
Opcin para alinear objetos
Editor de opciones de men
Opcin para cambiar el orden de las ventanas en el
editor
Editor de los ficheros .m
Editor propiedades de los controles
Buscador de Objetos
Botn de compilacin
Un archivo .FIG, que es el que contiene los elementos grficos as como las
propiedades de la interfaz.
Un archivo .M que es el contiene el cdigo con las correspondencias de los
botones de control de la interfaz. Cada vez que se introduzca un elemento
grfico en el .FIG se generar unas lneas de programa automticamente
asociadas a ese tipo de control. Estas lneas de programas son vacas, es decir, es
como un contenedor que necesita que ser llenado para llevar a cabo alguna
accin durante la ejecucin del programa. Este modo de trabajo es como el de
LABWINDOWS, VISUAL BASIC, etc
Para que haya una correspondencia entre elemento grfico y el cdigo, cada vez que se
pulse un botn se genera un evento, que provoca la ejecucin de la funcin asociada a
este elemento. Esta funcin es la callback que se anunciaba con anterioridad.
A travs de la Ilustracin 16 se pueden diferenciar 2 barras: la paleta de componentes, y
la de iconos varios.
36
Memoria Tcnica
Ventana 1
(figure)
Ejes 1 (axes)
Ejes 2 (axes)
Lneas (lines)
Ventana 2
(figure)
Controles
(uicontrol)
Superfcies
(surfaces)
Mens
(uimenu)
Texto (text)
Imagen
(image)
Polgono
(patch)
El objeto ms general es la pantalla o panel, es la raz de todos los dems y solo puede
haber un objeto pantalla. Una pantalla puede contener una o ms ventanas (figures). A
su vez cada una de las ventanas puede tener uno o ms ejes de coordenadas (axes) en los
que se puede representar objetos de ms bajo nivel. Una ventana puede tambin puede
tener tambin controles (uicontrols) como botones de seleccin o de opcin, y mens.
Finalmente, los ejes pueden contener los cinco tipos de elementos grficos que permite
37
Memoria Tcnica
MATLAB: lneas (lines), polgonos (patch), superficies (surfaces), imgenes tipo
bitmap (image) y texto (text). La jerarqua de objetos indica que en MATLAB hay
objetos padre e hijos. Por ejemplo, el objeto ventana es hijo de pantalla, y a su vez cada
objeto ventana es padre de los ejes. En el momento que se borre un objeto de MATLAB
se borrarn todos todos los objetos que son descendientes. Es decir, al borrar el objeto
eje se borrarn las lneas, superficies, texto, imagen y polgono.
38
Memoria Tcnica
4. Memoria de clculo
En esta parte se ver la parte prctica del proyecto, en la que se explicar la
configuracin de hardware y de software, as como los clculos realizados para el
diseo del controlador y la explicacin del programa mediante un diagrama de flujo.
VARIADOR DE TENSIN
220Vca
Vcc+
SH_OUT
0V
IDE20-E/S
SH_IN
Vcc_puente
GND_puente
M+
M-
F1
M+
M-
0V
MODULO
CONTROL
n (V)
9PIN 25 PIN
CON CON
SALIDAS
Varmadura
ENTRADAS
F2
Vexcitacin
25 PIN 9PIN
CON CON
MOTOR+CARGA
PLACA DAQ
39
Memoria Tcnica
1
2
3
4
5
1
2
3
Descripcin de la seal
ENTRADAS
Medida Sensor Hall
Sobrecorriente Shall y
MC33153
Cruce Rama B
Cruce Rama A
Lectura Velocidad (modulo
ext.)
SALIDAS
Velocidad
Rampa
Sentido de giro
Pin
IDE
Placa# Pin DAQ#
Rango
Tensin
(V)
20 ACH0
12
11 DIO3
12 DIO2
13 DIO1
0-5
0-5
0-5
- ACH1
10
19 DAC0OUT
18 DAC1OUT
17 DIO0
40
0-5
0-5
0-5
Memoria Tcnica
El listado de pines del conector IDE del driver de corriente continua se muestra en la
siguiente tabla.
NPIN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
IN/OUT de la placa al PC
OUT
OUT
OUT
OUT
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
OUT
OUT
OUT
IN
OUT
IN
IN
IN
IN
OUT
Descripcin
-12 V
+12 V
GND
+5 V
Tabla 11: Lista de entradas salidas en el conector IDE de 20 pins del driver cc
41
Memoria Tcnica
42
Memoria Tcnica
Select a compiler:
[1] Lcc C version 2.4.1 in C:\ARCHIVOS DE
PROGRAMA\MATLAB\R2006A\sys\lcc
[2] Open WATCOM C/C++ version 1.3 in c:\watcom
[3] Microsoft Visual C/C++ version 6.0 in c:\visual
[0] None
Compiler:
Se marca la opcin 3, el compilador de Microsoft, y aparece el siguiente mensaje:
43
Memoria Tcnica
>>rtwintgt -setup
You are going to install the Real-Time Windows Target
kernel.
Do you want to proceed? [y] :
Se confirma con un yes, entonces el programa confirma la correcta instalacin del
kernel.
>> rtwho
Real-Time Windows Target version 2.6.1 (C) The
MathWorks, Inc. 1994-2005
Running on Uniprocessor APIC computer.
MATLAB performance = 100.0%
Kernel timeslice period = 1 ms
En la respuesta que produce debera haber reconocido el driver de la placa de
adquisicin de datos. Para indicarle manualmente el driver de la placa de adquisicin
habr que teclear:
>> rtload
44
Memoria Tcnica
Ilustracin 22: Pantalla de seleccin manual del driver de la placa de adquisicin de datos
>> rtwho
Real-Time Windows Target version 2.6.1 (C) The
MathWorks, Inc. 1994-2005
Running on Uniprocessor APIC computer.
MATLAB performance = 100.0%
Kernel timeslice period = 1 ms
DRIVERS:
Parameters
Name
Address
0x2
[0 0 0 0 0]
Para deshacer los cambios existe un comando que deshace la seleccin del driver:
>>rtunload
45
Memoria Tcnica
cerrado son mtodos en que la sintona de los parmetros del controlador se realiza
aplicando las variables obtenidas empricamente sobre las formulas de unas tablas.
El mtodo escogido es el analtico porque se ha pensado que era el ms interesante, ya
que permite utilizar los conocimientos de teora de control y es ms atractivo para el
alumnado. Para la consecucin de este mtodo es necesario determinar la planta de todo
el sistema que controla el motor de corriente continua. Para ello se hacen pruebas en
lazo abierto del sistema segn la Ilustracin 23. Se utiliza la carga y el modulo de
Leybold para obtener la lectura de velocidad.
Para capturar los parmetros que definen la respuesta del sistema se utiliza un modelo
en Simulink que permita introducir una consigna y visualizar los valores de la salida,
aunque tambin se utilizado el osciloscopio para asegurar que la respuesta sea correcta.
Los valores de salida permitirn reconstruir y estudiar los valores que definen la
respuesta del motor de corriente contnua en lazo abierto. La frecuencia de muestreo
escogida es superior a 10 veces la frecuencia del sistema, para evitar el fenmeno de
aliasing, y as obtener una buena representacin.
(a)
(b)
46
Memoria Tcnica
(c)
(d)
Ilustracin 24: Modelo creado para la obtencin de la planta y la respuesta obtenida para el escaln
unitario (figura a y b) con un tiempo de muestreo de 0,001s. Y la obtencin de la planta mediante el
osciloscopio (figura c y d).
Ilustracin 25: Respuesta de un sistema de primer orden a una entrada de tipo escaln unitaria.
G( s) =
( 10 )
K
s +1
A travs del valor final que es 1,1241 se podr obtener el valor de la constante de
tiempo que corresponde al 63,2% del valor final, grficamente el valor es de 0,1763 s.
El valor de la ganancia K se determina mediante el Teorema del Valor Final. Es decir,
se impone en rgimen permanente el valor final de salida conocido.
47
Memoria Tcnica
( 11 )
y ss = lim s Y ( s )
s 0
( 12 )
6,376
s + 5,762
( 13 )
-1 1 e Ts
G ( z ) = Z L
G ( s)
s
t =nT
Se sustituye la expresin ( 12 ) en la ( 13 ) y se obtiene:
( 14 )
1 e Ts 6,376
G ( z ) = Z L -1
s + 5,762 t = nT
s
G ( z ) = 1,1066
( 15 )
1 e 5, 762T
z e 5,762T
f s > 2 BW
Siendo el ancho de banda:
48
Memoria Tcnica
( 17 )
BW = f max f min
Para nuestro sistema consideramos que f min = 0 , por tanto la expresin ( 16 ) quedar:
( 18 )
f s > 2 f max
El teorema de Nyquist slo indica el valor mnimo necesario para que el muestreo
resulte eficaz. Por encima de este valor, cuanto mayor sea el nmero de muestras
tomadas ms fiable ser la representacin. Cuantas ms muestras se tengan, mejor se
podr reconstruir la seal; aunque, a mayor frecuencia de muestreo mayor ser el ancho
de banda, es decir que necesitaremos mayor nmero de bits, mayor tamao de buffer, lo
que ralentiza el procesado de la seal y encarece el equipo, que necesitar ms memoria,
ms procesador, etc.
Otro factor a tener en cuenta es que aunque se siga aumentando la frecuencia de
muestreo, la calidad de la seal reconstruida no continua incrementndose
indefinidamente. Por ello, la experiencia establece un valor aproximado para determinar
la frecuencia de muestreo.
( 19 )
f s 10 f max
= 0,1763 s f =
( 20 )
= 5,67 Hz
f s = 113,44 Hz Ts 0,0088
49
Memoria Tcnica
Memoria Tcnica
a las variaciones internas en los parmetros del sistema. Aunque, en sistemas sin
perturbaciones y donde se conozcan con anticipacin las entradas es aconsejable utilizar
un control en lazo abierto.
Algunos aspectos que habr que tener en cuenta en el diseo del controlador es la
frecuencia de muestreo a seleccionar en la aplicacin en tiempo real, porque afectar a
la planta del sistema, modificando la ganancia y la dinmica del sistema. Por lo tanto, el
diseo de los controladores se har para los tiempos de muestreo reflejados en la Tabla
12, mediante el mtodo de diseo del lugar de las races. A continuacin se muestra la
estructura bsica de un controlador PID discreto.
kp
+
E
+
kiz/(z-1)
+
kd(z-1)/z
Ilustracin 27: Estructura de controlador discreto con acciones proporcional, integral y derivativa
H ( z ) (kp + ki + kd ) z 2 (kp + 2 kd ) z + kd
=
E( z)
z2 z
( 24 )
H ( z ) (kp + ki) z kp
=
E ( z)
z 1
Accin proporcional
( 26 )
H ( z)
= kp
E( z)
En los siguientes apartados se estudian las acciones del controlador por separado y
combinadas, para la consecucin de un control que nos conserve las propiedades de la
planta original y que realice una gestin adecuada de la velocidad.
51
Memoria Tcnica
4.4.1. Controlador P
La estructura de un controlador P introduce una ganancia a la entrada de la planta. La
estructura es la que se muestra en la Ilustracin 28. Para sistemas de tipo cero, el efecto
del controlador proporcional es el siguiente:
Disminuye el tiempo de subida
Aumenta el sobrepico
No provoca grandes cambios en el tiempo de establecimiento
Disminuye el error en rgimen permanente, pero no lo elimina
R(z)
Controlador
Planta
Y(z)
+
kp
G(z)
Ilustracin 28: Diagrama de bloques del controlador P con la planta del sistema
Y ( z)
kp G ( z )
=
R ( z ) 1 + kp G ( z )
La expresin del error:
E( z) =
( 28 )
R( z )
1 + kp G ( z )
( z 1)
Y ( z)
z 1
z
yss = lim
52
Memoria Tcnica
En este caso, al ser un sistema de primer orden, mirar el lugar de las races no aporta
informacin significativa debido a que no se introduce ningn polo o cero. Por tanto no
habr grandes cambios dentro de los valores de ganancia para los que el sistema es
estable.
-4
Root Locus
Root Locus
x 10
1
6
0.8
0.6
0.4
Imaginary Axis
Imaginary Axis
0.2
0
-0.2
-2
-0.4
-0.6
-4
-0.8
-6
-1
-1
-0.5
0.5
0.9936
0.9938
0.994
0.9942
0.9944
0.9946
0.9948
0.995
Real Axis
Real Axis
Step Response
Step Response
x 10
1
0.9
0.8
0.7
-5
Amplitude
Amplitude
0.6
-10
0.5
0.4
0.3
-15
0.2
0.1
-20
10
12
14
16
18
20
Time (sec)
10
12
14
16
18
Time (sec)
Ilustracin 30: Respuestas del sistema en lazo cerrado para tiempos 0,01 y 0,001 con sus respectivos
valores calculados de la constante proporcional.
20
Memoria Tcnica
que se hace positivo y mayor que la unidad, es decir que tenemos inestabilidad en
nuestro sistema de primer orden. Habr que utilizar un metodo discreto que permita
dimensionar un valor de kp que obligue al sistema a comportarse de manera estable, el
escogido es el test de Jury.
( 30 )
P ( z ) = a0 z n + a1 z n 1 + ... + a n 1 z + a 0
P (1) > 0
(1) n P (1) > 0
1.5
Step Response
Step Response
x 10
2
1.8
1.6
1.4
0.5
Amplitude
Amplitude
1.2
1
0.8
-0.5
0.6
0.4
-1
0.2
0
-1.5
0
50
100
150
200
250
50
100
150
200
250
Time (sec)
Time (sec)
(a) kp = 32
(b) kp = 31
Step Response
Step Response
0.7
0.9
0.6
0.8
0.7
0.5
Amplitude
Amplitude
0.6
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
10
12
14
16
18
20
Time (sec)
10
15
20
25
30
Time (sec)
(c) kp=15
(d) kp = 1
Ilustracin 31: Respuestas simuladas con los valores obtenidos en el test de Jury
54
35
40
45
Memoria Tcnica
Los margenes de estabilidad de la constante proporcional obtenidos con el test de Jury
para el tiempo de muestreo a 0,001 segundos es:
313,52 > kp > 0,943
Los valores definitivos de la constante proporcional teniendo en cuenta la estabilidad se
muestran en la Tabla 14.
Amplitude
2.5
1.5
0.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Time (sec)
(a) Representacin tensin de salida en (b) Representacin tensin de salida en funcin del
funcin del nmero de muestras. Respuesta tiempo. Respuesta simulacin controlador a
real controlador a Ts=0,001s kp=93,4
Ts=0,001s con kp=93,4
6.376
93.4
s+5.762
Step
Gain
Saturation
Transfer Fcn
Zero-Order
Hold
Scope
55
Memoria Tcnica
2.5
250
200
Amplitud (V)
Amplitud (V)
1.5
150
100
0.5
50
0.1
0.2
0.3
0.4
0.5
0.6
Tiempo (s)
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
Tiempo (s)
0.7
0.8
0.9
56
Memoria Tcnica
4.4.2. Controlador PI
El controlador PI, al contener la parte integral, a diferencia del anterior incrementa el
tiempo de establecimiento y elimina el error en estado estacionario. Con la accin
combinada de la parte integral y proporcional habr que reducir el sobrepico y el tiempo
de establecimiento. En la siguiente ilustracin se muestra el esquema de bloques tpico
de un sistema en lazo cerrado con un controlador PI.
R(z)
+
-
Controlador PI
Planta
( kp + ki ) z kp
z 1
G(z)
Y(z)
Ilustracin 34: Diagrama de bloques del controlador PI con la planta del sistema
Y ( z)
z
= kp + ki
R( z )
z 1
Para realizar la sintona del controlador se recurre al mtodo del lugar geomtrico de las
races, combinando las simulaciones con MATLAB como comprobacin. A modo de
ejemplo se utilizar el caso en que el tiempo de muestreo es de 0,001 s.
La planta introduce un polo en 0,994 y, segn la expresin ( 25 ), al introducir el
controlador PI estamos introduciendo un polo en +1 y un cero que habr que decidir su
colocacin para obtener la respuesta deseada. Para la bsqueda de las variables que
definen el sistema se impondr el valor de la constante proporcional como 10. Ahora
quedar buscar el valor de la constante ki. Mediante simulacin se determina que la
mejor posicin del cero del controlador est entre el origen y el polo de la planta, es
decir en 0,98.
Root Locus
x 10
1
0.8
0.6
Root Locus
0.2
Imaginary Axis
Imaginary Axis
0.4
-3
0
-0.2
-1
-2
-0.4
-0.6
-3
-0.8
-4
-1
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
0.992
Real Axis
0.994
0.996
0.998
Real Axis
57
1.002
Memoria Tcnica
2.5
Amplitude
1.5
0.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Time (sec)
(a) Representacin tensin de salida en funcin (b) Representacin tensin de salida en funcin
del nmero de muestras. Respuesta real del tiempo. Respuesta simulacin controlador a
controlador a Ts=0,001s
Ts=0,001s
58
Memoria Tcnica
59
Memoria Tcnica
a Matlab para la captura de variables a visualizar. La ltima columna es el indicador si
el sistema ha respuesto correctamente a la frecuencia de trabajo.
Para conocer la relacin entre los parmetros anteriores se ha determinado la siguiente
expresin:
Npt =
( 35 )
pt
t
Ts
Donde:
Npt: Es el numero total de puntos que se pueden visualizar durante la ejecucin de la
aplicacin en tiempo real.
pt: Es el numero de puntos que se capturan por intervalo de tiempo muestreado. Por
defecto es igual a la unidad, y es aconsejable que se deje as.
Ts: Es el periodo de muestreo seleccionado en la aplicacin en tiempo real.
( 36 )
Npt
[ puntos ]
=
t
[segundos ]
( 37 )
Ts Npt
= Ts 2 SR
pt
60
Memoria Tcnica
61
Memoria Tcnica
Ilustracin 38: Aspecto del modelo de Simulink en lazo cerrado con controlador y con carga
Observando la parte principal del modelo, es decir el control, podemos ver que
mediante la variacin del bloque Constant se podr modificar el valor del escaln. El
62
Memoria Tcnica
bloque Sortida9 permitir visualizar las diferencias entre el valor de entrada respecto al
de salida. Mediante el bloque Sortida2 se podr visualizar el error del controlador. Se ha
puesto un limitador en la salida para absorber cualquier variacin imprevista superior a
unos valores de 0 a 5 V. De esta manera se protege la entrada del driver CC que trabaja
con rangos de tensiones TTL. Despus del limitador se encuentra el bloque de salida
que inyectar el valor de la velocidad al driver de cc en ese instante de tiempo. El valor
real de la velocidad del conjunto motor+carga es capturado por el tacmetro de la carga
y reinyectado en el sumador para volver a calcular el valor velocidad en el siguiente
instante de tiempo, haciendo que el error tienda a cero.
El valor de la constante Constante2 es el valor de la rampa, que como hemos dicho
anteriormente el driver cc trabaja con lgica TTL, los valores admisibles son de 0 a 5 V
y para que se cumpla esta condicin esta el limitador. Cuanto ms alto sea el valor de la
constante ms lenta ser la aceleracin y la frenada.
El valor de la constante Constant1 es el valor para modificar el sentido de giro, que en
este modelo la opcin queda deshabilitada a travs del GUI debido a conflictos con el
modulo D&B de LEYBOLD.
A mano de derecha de la Ilustracin 38 quedan las entradas:
Sobreintensidad en la rama A
Sobreintensidad en la rama B
Sobreintensidad en el sensor Hall
Medicin procedente del sensor Hall
63
Memoria Tcnica
En esta opcin es posible realizar cambios en el sentido de giro del motor, adems de
poder regular la rampa de aceleracin y deceleracin como se puede hacer en los otros
modelos.
La Ilustracin 40 muestra el cambio en el sentido de giro del motor, se puede ver como
primeramente como acelera a una rampa de valor 2 hasta conseguir el valor de la
consigna que es 4, es a partir de este momento que se solicita el cambio de giro. Cuando
se realiza el cambio de giro sera de esperar que fuera decrementando hasta el valor de
-4, pero por lo contrario el tramo de 2 a -2 lo realiza de manera vertiginosa. Cuando
alcanza el valor de -4 lo obligamos a ir a consigna cero.
Memoria Tcnica
Ilustracin 41: Aspecto del modelo en lazo cerrado sin controlador y con carga
Para conocer los detalles del modelo ir al apartado 4.5.1.1, ya que siguen el mismo
patrn.
Cuando se abra un modelo en lazo cerrado, como por ejemplo la opcin 1 3, el botn
del sentido de giro permanecer invisible.
Memoria Tcnica
empricamente el diseo, o bien simplemente para ver el efecto de la variacin de una
accin (proporcional, integral o derivativa). Tambin existe la posibilidad de hacer un
ajuste manual directamente sobre el bloque de la funcin de transferencia. Esta ltima
opcin se ha contemplado para el caso que se haga un diseo en papel del controlador,
en que sea calculado todo el bloque.
66
Memoria Tcnica
ese momento cuando los datos son pasados al Workspace de Matlab y pueden ser
utilizados para hacer grficas u operaciones. Esta limitacin ha sido confirmada por el
servicio tcnico de Matlab, que respondi que en futuras versiones lo resolveran
(consultar anexos de cartas a Matlab).
67
Memoria Tcnica
Ilustracin 46: Opciones de grfico de las de la interfaz, opcin AND y Scope respectivamente
Velocidad
Error Controlador
Sensor Hall
Sobreintensidad Rama A
Sobreintensidad Rama B
Sobreintensidad Sensor Hall
Entrada
Velocidad de Salida Control
Velocidad Salida Control sin limitador, y
Memoria Tcnica
coordenadas: Xmax, Xmin, Ymax e Ymin. Para que los valores tengan efecto se deber
deseleccionar la configuracin automtica de los ejes (el radiobutton Eixos Auto).
Cuando se marque la opcin de Eixos Auto el grfico volver a tener los valores por
defecto, es decir se visualizar todo el grfico. En ambos casos se deber confirmar con
el botn plota.
Ilustracin 48: Marco con las opciones para visualizar las zonas que sean de inters
Especificar la ruta donde se desea guardar los ficheros, se aconseja que sea la
que coge por defecto, que es la del directorio de trabajo de nuestra sesin de
trabajo con Matlab.
Escribir el nombre del fichero que se desea guardar. En caso que no se escriba
un nombre escoger el nombre por defecto matlab.dat.
Pulsar el botn de guardar.
Ilustracin 49: Aspecto de la interfaz antes de grabar o cargar y una vez se carga la variable y su ruta
69
Memoria Tcnica
En la Ilustracin 51 se pueden apreciar los botones que nos permiten cerrar la aplicacin
de tiempo real, es decir, la GUI y el modelo que se est utilizando. La diferencia entre
Tanca y Tanca i Salva, es que el primero cierra la aplicacin sin guardar cambios y el
segundo cierra guardando los cambios producidos en el modelo. Hay que remarcar que
al arrancar la GUI la siguiente vez, se actualizarn todos los datos del modelo en los
campos correspondientes de la aplicacin: consigna, valor retraso, tiempos de muestreo,
inicial y final, etc.
70
Memoria Tcnica
Inicio de Programa:
RTWT_OpeningFcn
No
Lazo
Cerrado? Sin
Control
Lazo
Cerrado?
Control Z
No
Si
No
Lazo
Abierto?
Si
Si
Abrir modelo:
rtw_cl2
(si es que no est abierto)
Abrir modelo:
rtw_cl
(si es que no est abierto)
Abrir modelo:
rtw
(si es que no est abierto)
Si
Evento?
No
Cerrar?
Si
Fin Programa
Si
71
Cerrar
Salvando?
Memoria Tcnica
Funcin de apertura
Parmetros de entrada
Parmetros del controlador
Parmetros de ejecucin
Visualizacin de grficos
Guardar y cargar datos
Ventana de dilogo y cerrar aplicacin
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Choose default command line output for RTWT
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
La funcin inici se ejecuta al arrancar la aplicacin por primera vez y lo que hace es
capturar todos los valores que tiene el modelo y pasarlos a la GUI o aplicacin. Esta
72
Memoria Tcnica
rutina se encarga de capturar la ruta de trabajo que ser la utilizada para grabar los datos
del Wokspace de Matlab, es decir, los parmetros obtenidos en la ejecucin que podrn
ser visualizados posteriormente y siempre que se desee.
Como se ha dicho con anterioridad, la rutina se encarga de capturar los valores del
modelo y los pone dentro de las editboxes correspondientes. Por ejemplo, se capturan
los valores de:
Consigna
Rampa
Tiempo de retardo
Valor de la inversin de giro
Inicializacin del contador del grid.
Inicializacin de los valores para plotar por defecto
Antes de capturar los valores del modelo determinar que modelo es el que est abierto
para saber la ruta donde buscarlos.
function inici(handles)
cl=evalin('base','cl');
ol=evalin('base','ol');
cl2=evalin('base','cl2');
% Se abre por primera vez el modelo para coger los valores
% en el modelo y ponerlos en la GUI, en el caso que sea la
% se haya abierto el programa.
% % % % % % % % % % % % INICIO PARAM.GENERALES % % % % % %
% %
% Se capturan los valores de los parametros generales, son
no
% dependen del modelo escogido
que tiene
primera vez
% % % % % % %
aquellos que
% Se coge la ruta por defecto de matlab para poder grabar las variables
en
% un fichero .MAT
ruta=cd;
set(handles.edit_ruta,'String',ruta);
% Se hace invisible la editbox del nombre de la variable a guardar en el
WS
set(handles.edit_nomvar,'Visible','off');
% Variable para el grid para que actue como un pushbutton pero sin
% enclavarse
cnt=0;
assignin('base','cnt',cnt);
% Parametros para plotar por defecto
set(handles.rboto_and,'Value',1);
set(handles.rboto_or,'Value',0);
set(handles.rboto_scope,'Value',0);
set(handles.popupmenu1,'Value',1);
pand=1;or=0;scope_stat=0;popval=1;
assignin('base','pand',pand);
assignin('base','or',or);
assignin('base','scope',scope_stat);
assignin('base','popval',popval);
% % % % % % % % % % % % FIN PARAM.GENERALES % % % % % % % % % % % % % %
% % %
if cl==1
73
Memoria Tcnica
if isempty(find_system('Name','rtw'))open_system('rtw');end
if isempty(find_system('Name','rtwol')) else
close_system('rtwol',1);end
if isempty(find_system('Name','rtw_cl2')) else
close_system('rtw_cl2',1);end
% Se cogen los valores del modelo y se ponen dentro de las editboxes
% Consigna
set(handles.edit_consigna,'String',get_param('rtw/Constant','Value'));
% Rampa
set(handles.edit_rampa,'String',get_param('rtw/Constant2','Value'));
% Tiempo de retardo para la rampa y el escaln
set(handles.edit_td, 'String',get_param('rtw/Step','time'));
limitapunts(handles);
controlador(handles);
end
if ol==1
if isempty(find_system('Name','rtwol'))open_system('rtwol');end
if isempty(find_system('Name','rtw')) else close_system('rtw',1);end
if isempty(find_system('Name','rtw_cl2')) else
close_system('rtw_cl2',1);end
% Se cogen los valores del modelo y se ponen dentro de las editboxes
% Consigna
set(handles.edit_consigna,'String',get_param('rtwol/Constant','Value'));
% Rampa
set(handles.edit_rampa,'String',get_param('rtwol/Constant2','Value'));
% Tiempo de retardo para la rampa y el escaln
set(handles.edit_td, 'String',get_param('rtwol/Step','time'));
%Sentido de giro
set(handles.tboto_inversio,'Value',str2num(get_param('rtwol/Constant1','
Value')));
limitapunts(handles);
end
if cl2==1
if isempty(find_system('Name','rtw_cl2'))open_system('rtw_cl2');end
if isempty(find_system('Name','rtwol')) else
close_system('rtwol',1);end
if isempty(find_system('Name','rtw')) else close_system('rtw',1);end
% Se cogen los valores del modelo y se ponen dentro de las editboxes
% Consigna
set(handles.edit_consigna,'String',get_param('rtw_cl2/Constant','Value')
);
% Rampa
set(handles.edit_rampa,'String',get_param('rtw_cl2/Constant2','Value'));
% Tiempo de retardo para la rampa y el escaln
set(handles.edit_td, 'String',get_param('rtw_cl2/Step','time'));
limitapunts(handles);
end
74
Memoria Tcnica
La rutina actualitza viene a ser la inversa de la rutina inici, ya que su funcin es capturar
los valores que se encuentran dentro de las editboxes y ponerlos dentro de los bloques
del modelo para que los cambios realizados en la GUI tengan efecto durante la
ejecucin de la aplicacin. La filosofa de funcionamiento es la misma que en la rutina
inici, donde tenemos unos parmetros generales y unos parmetros especficos de cada
modelo. A continuacin se pueden ver las lneas de programa que detallan lo explicado.
function actualitza(handles)
ol=evalin('base','ol');
cl=evalin('base','cl');
cl2=evalin('base','cl2');
if cl==1
if isempty(find_system('Name','rtw'))open_system('rtw');end
if isempty(find_system('Name','rtwol')) else
close_system('rtwol',1);end
if isempty(find_system('Name','rtw_cl2')) else
close_system('rtw_cl2',1);end
%figure(RTWT);
% Se coge el valor de la editbox i lo pone el bloque del modelo
set_param('rtw/Constant','Value',...
get(handles.edit_consigna,'String'))
set_param('rtw/Constant2','Value',...
get(handles.edit_rampa,'String'))
% Tiempo de retardo para el escalon y la rampa
set_param('rtw/Step','Time',get(handles.edit_td,'String'));
set_param('rtw/Step1','Time',get(handles.edit_td,'String'));
% Se coge el valor de la editbox y se coloca como parametro general
de
% la simulacin
%PARAMETROS DE LA SIMULACION
set_param('rtw','FixedStep',get(handles.edit_ts, 'String'));
set_param('rtw','Starttime',get(handles.edit_ti,'String'));
set_param('rtw','Stoptime',get(handles.edit_tf,'String'));
limitapunts(handles);
controlador(handles);
end
if ol==1
if isempty(find_system('Name','rtwol'))open_system('rtwol');end
if isempty(find_system('Name','rtw')) else close_system('rtw',1);end
if isempty(find_system('Name','rtw_cl2')) else
close_system('rtw_cl2',1);end
%figure(RTWT);
set_param('rtwol/Constant1','Value',num2str(get(handles.tboto_inversio,'
Value')));
% Se coge el valor de la editbox i lo pone el bloque del modelo
set_param('rtwol/Constant','Value',get(handles.edit_consigna,'String'));
set_param('rtwol/Constant2','Value',get(handles.edit_rampa,'String'));
% Tiempo de retardo para el escalon y la rampa
set_param('rtwol/Step','Time',get(handles.edit_td,'String'));
set_param('rtwol/Step1','Time',get(handles.edit_td,'String'));
% Se coge el valor de la editbox y se coloca como parametro general
de
75
Memoria Tcnica
% la simulacin
%PARAMETROS DE LA SIMULACION
set_param('rtwol','FixedStep',get(handles.edit_ts, 'String'));
set_param('rtwol','Starttime',get(handles.edit_ti,'String'));
set_param('rtwol','Stoptime',get(handles.edit_tf,'String'));
limitapunts(handles);
end
if cl2==1
if isempty(find_system('Name','rtw_cl2'))open_system('rtw_cl2');end
if isempty(find_system('Name','rtwol')) else
close_system('rtwol',1);end
if isempty(find_system('Name','rtw')) else close_system('rtw',1);end
%figure(RTWT);
% Se coge el valor de la editbox i lo pone el bloque del modelo
set_param('rtw_cl2/Constant','Value',...
get(handles.edit_consigna,'String'))
set_param('rtw_cl2/Constant2','Value',...
get(handles.edit_rampa,'String'))
% Tiempo de retardo para el escalon y la rampa
set_param('rtw_cl2/Step','Time',get(handles.edit_td,'String'));
set_param('rtw_cl2/Step1','Time',get(handles.edit_td,'String'));
% Se coge el valor de la editbox y se coloca como parametro general
de
% la simulacin
%PARAMETROS DE LA SIMULACION
set_param('rtw_cl2','FixedStep',get(handles.edit_ts, 'String'));
set_param('rtw_cl2','Starttime',get(handles.edit_ti,'String'));
set_param('rtw_cl2','Stoptime',get(handles.edit_tf,'String'));
limitapunts(handles);
end
4.6.2.1. Consigna
Este parmetro es un editbox y como tal le corresponde un tag de la forma
edit_consigna. Cada vez que se genere un evento se realiza una llamada a actualitza,
que actualiza el valor de todos los elementos, incluido el presente.
function edit_consigna_Callback(hObject, eventdata, handles)
actualitza(handles);
76
Memoria Tcnica
4.6.2.2. Rampa
Este parmetro es un editbox y como tal le corresponde un tag de la forma edit_rampa.
Cada vez que se genere un evento se realiza una llamada a actualitza, que actualiza el
valor de todos los elementos, incluido el presente.
function edit_rampa_Callback(hObject, eventdata, handles)
actualitza(handles);
77
Memoria Tcnica
78
Memoria Tcnica
p=(kp+ki+kd);
q=-(kp+2*kd);
r= kd;
u=1;
v=-1;
w=0;
num=[p q r];
den=[u v w];
numdz=strcat('[', num2str(num),']');
dendz=strcat('[', num2str(den),']');
set_param('rtw/Discrete Transfer Fcn','Denominator',dendz);
set_param('rtw/Discrete Transfer Fcn','Numerator',numdz);
79
Memoria Tcnica
80
Memoria Tcnica
function boto_stop_Callback(hObject, eventdata, handles)
ol=evalin('base','ol');
cl=evalin('base','cl');
cl2=evalin('base','cl2');
if cl==1
set_param('rtw','SimulationCommand','stop');
set_param('rtw','SimulationCommand','disconnect');
set(handles.text_dialeg,'String',...
'Sha parat lExecuci de laplicaci "Real
Time"!');
end
if ol==1
set_param('rtwol','SimulationCommand','stop');
set_param('rtwol','SimulationCommand','disconnect');
set(handles.text_dialeg,'String',...
'Sha parat lExecuci de laplicaci "Real
Time"!');
end
if cl2==1
set_param('rtw_cl2','SimulationCommand','stop');
set_param('rtw_cl2','SimulationCommand','disconnect');
set(handles.text_dialeg,'String',...
'Sha parat lExecuci de laplicaci "Real
Time"!');
end
assignin('base','cl',cl);
assignin('base','ol',ol);
assignin('base','cl2',cl2);
4.6.4.6. Compilacin
Este parmetro es un pushbutton y como tal le corresponde un tag de la forma
boto_compila. Al pulsar este botn se inicia la compilacin del modelo que corresponda
indicando el comienzo y el final de este proceso a travs de la casilla de dilogo.
function boto_compila_Callback(hObject, eventdata, handles)
ol=evalin('base','ol');
cl=evalin('base','cl');
cl2=evalin('base','cl2');
if cl==1
set(handles.text_dialeg,'String',...
'Compilant...');
pause(0.5);
rtwbuild('rtw');
%figure(RTWT);
set(handles.text_dialeg,'String',...
'Finalitzada tasca de compilar');
end
if ol==1
set(handles.text_dialeg,'String',...
'Compilant...');
81
Memoria Tcnica
pause(0.5);
rtwbuild('rtwol');
%figure(RTWT);
set(handles.text_dialeg,'String',...
'Finalitzada tasca de compilar');
end
if cl2==1
set(handles.text_dialeg,'String',...
'Compilant...');
pause(0.5);
rtwbuild('rtw_cl2');
%figure(RTWT);
set(handles.text_dialeg,'String',...
'Finalitzada tasca de compilar');
end
assignin('base','cl',cl);
assignin('base','ol',ol);
assignin('base','cl2',cl2);
82
Memoria Tcnica
msge='Sha excedit el nmero mxim de punts...Reclcul amb la
freqncia de mostreig seleccionada:';
msge2='tf=';
msge3=strcat(msge,msge2,tf);
set(handles.text_dialeg,'String',...
msge3);
end
% Se ponen los valores en las casillas correspondientes
set(handles.edit_ti,'String',num2str(ti));
set(handles.edit_tf,'String',num2str(tf));
set(handles.edit_ts,'String',num2str(Ts));
% Se actualizan los valores en el modelo
if cl==1 && ol==0
set_param('rtw','Starttime',num2str(ti));
set_param('rtw','Stoptime',num2str(tf));
set_param('rtw','FixedStep',num2str(Ts));
elseif cl==0 && ol==1
set_param('rtwol','Starttime',num2str(ti));
set_param('rtwol','Stoptime',num2str(tf));
set_param('rtwol','FixedStep',num2str(Ts));
end
83
Memoria Tcnica
84
Memoria Tcnica
85
Memoria Tcnica
4.6.6.8. Zoom in
Este parmetro es un pushbutton y como tal le corresponde un tag de la forma boto_zi.
Cada vez que se pulse este botn, se reduce un 61,8% el tamao del rea de
visualizacin.
function boto_zi_Callback(hObject, eventdata, handles)
%handles.axes_plot.zoomIn
if 1
xm = str2double(get(handles.edit_xmin, 'String'));
xM = str2double(get(handles.edit_xmax, 'String'));
ym = str2double(get(handles.edit_ymin, 'String'));
yM = str2double(get(handles.edit_ymax, 'String'));
axis ([0.618*xm 0.618*xM 0.618*ym 0.618*yM]);
eixos_e = axis;
set(handles.edit_xmin, 'String', num2str(eixos_e(1,1)));
set(handles.edit_xmax, 'String', num2str(eixos_e(1,2)));
set(handles.edit_ymin, 'String', num2str(eixos_e(1,3)));
set(handles.edit_ymax, 'String', num2str(eixos_e(1,4)));
end
86
Memoria Tcnica
87
Memoria Tcnica
end
if ol==1
if popval==1
open_system('rtwol/Sortida3')
elseif popval==2
set(handles.text_dialeg,'String',...
'Opci no valida amb el model seleccionat');
elseif popval==3
open_system('rtwol/Entrada1')
elseif popval==4
open_system('rtwol/Sortida5')
elseif popval==5
open_system('rtwol/Sortida6')
elseif popval==6
open_system('rtwol/Sortida7')
elseif popval==7
open_system('rtwol/Sortida9')
elseif popval==8
open_system('rtw/Sortida3')
elseif popval==9
open_system('rtw/Sortida2')
end
end
if cl2==1
if popval==1
open_system('rtw/Sortida3')
elseif popval==2
open_system('rtw/Sortida2')
elseif popval==3
open_system('rtw/Entrada1')
elseif popval==4
open_system('rtw/Sortida5')
elseif popval==5
open_system('rtw/Sortida6')
elseif popval==6
open_system('rtw/Sortida7')
elseif popval==7
open_system('rtw/Sortida9')
elseif popval==8
open_system('rtw/Sortida1')
elseif popval==9
open_system('rtw/Sortida4')
end
end
end
if pand==1
hold
if popval == 1
x = evalin('base','velocitat(:,2)');
plot(x,'b');
elseif popval==2
x = evalin('base','error(:,2)');
plot(x,'r');
elseif popval==3
88
Memoria Tcnica
x = evalin('base','shall(:,2)');
plot(x,'y');
elseif popval==4
x = evalin('base','sia(:,2)');
plot(x,'g');
elseif popval==5
x = evalin('base','sib(:,2)');
plot(x,'c');
elseif popval==6
x = evalin('base','sishall(:,2)');
plot(x,'m');
elseif popval==7
x = evalin('base','entrada(:,2)');
plot(x,'r');
elseif popval==8
x = evalin('base','sortida(:,2)');
plot(x,'y');
elseif popval==9
x = evalin('base','sortida3(:,2)');
plot(x,'g');
end
if or == 1
if popval == 1
x = evalin('base','velocitat(:,2)');
plot(x);
elseif popval==2
x = evalin('base','error(:,2)');
plot(x);
elseif popval==3
x = evalin('base','shall(:,2)');
plot(x);
elseif popval==4
x = evalin('base','sia(:,2)');
89
Memoria Tcnica
plot(x);
elseif popval==5
x = evalin('base','sib(:,2)');
plot(x);
elseif popval==6
x = evalin('base','sishall(:,2)');
plot(x);
elseif popval==7
x = evalin('base','entrada(:,2)');
plot(x);
elseif popval==8
x = evalin('base','sortida(:,2)');
plot(x,'y');
elseif popval==9
x = evalin('base','sortida3(:,2)');
plot(x,'g');
end
if cnt==1
grid on;
else
grid off;
end
90
Memoria Tcnica
function edit_nomvar_Callback(hObject, eventdata, handles)
a=get(hObject,'String');
assignin('base','a',a);
91
Memoria Tcnica
else
set(handles.edit_nomvar,'Visible','on');
set(handles.text_dialeg,'String',...
'Introduiexi el nom pel fitxer .MAT a guardar');
a=get(handles.edit_nomvar,'String');
assignin('base','a',a);
%Es torna a comprovar que shagui introduit un nom
evalin('base','exist a');
f=evalin('base','ans');
if(f)
evalin('base','save (a)');
set(handles.text_dialeg,'String',...
'Fitxer .MAT Guardat');
else
set(handles.text_dialeg,'String',...
'Si us plau, introduiexi el nom pel fitxer .MAT a guardar');
end
end
92
Memoria Tcnica
evalin('base','exist a');
f=evalin('base','ans');
e=evalin('base','isempty(a)');
if(f==1 && e==0)
evalin('base','load (a)');
set(handles.text_dialeg,'String',...
'Fitxer .MAT Carregat');
else
set(handles.text_dialeg,'String',...
'Introdueix a la casella el nom del fitxer .MAT a
carregar');
end
end
4.6.8.2. Salvar
Existen dos elementos que son del tipo pushbutton y tienen el formato boto_tanca y
boto_s_i_g.
function boto_tanca_Callback(hObject, eventdata, handles)
if isempty(find_system('Name','rtw')) else close_system('rtw');end
if isempty(find_system('Name','rtwol')) else close_system('rtwol');end
close
function boto_s_i_g_Callback(hObject, eventdata, handles)
close_system('rtw',1);
close_system('rtwol',1);
close
93
Memoria Tcnica
5. Conclusiones
Se puede decir que se han cumplido satisfactoriamente los propsitos planteados
inicialmente, aunque han quedado temas por desarrollar y se han detectado limitaciones
del sistema RTWT de Matlab, que en futuro podrn ser solventadas. Pero lo que es ms
importante, es que se ha conseguido sentar las bases para trabajos futuros en un entorno
muy desconocido como es el trabajo con sistemas reales y en tiempo real mediante
Matlab.
Se ha utilizado con xito y ha quedado documentada la informacin referente a las
herramientas:
GUIDE
Toolbox de Real-Time con Simulink
Controlador discreto para un motor de corriente continua, y que podr ser
utilizado para el control de velocidad de cualquier otro motor con algunas
adaptaciones.
Driver de corriente continua desarrollado ntegramente en el laboratorio de la
URV.
El modulo de control de Leybold.
94
Memoria Tcnica
6. Bibliografa
[1] Pol Toldr Fernndez, Implementaci dun driver commutat a alta freqncia per un accionament
regulat amb motor DC, PFC URV,2004.
[2] Rafael Moragues, Sistema de control en temps real a travs de MATLAB/SIMULINK, PFC URV,
2004.
[3] David Oliveras, Desenvolupament d'una Plataforma Hardware/Software per a l'Experimentaci
d'Accionaments DC, PFC URV, 2005.
[4] Pedro Garcs, Apuntes de la asignatura de Ingeniera de Control II, URV 2004.
[5] Sistemas de control en tiempo discreto, Katsuhiko Ogata, Ed. Pentice Hall, 2 edicin.
[6] Ayudas de Matlab dentro de Programa.
[7] http://www.mathworks.com
[8] The MathWorks, Real-Time Windows Target Users Guide (Version 2).
95
Anexos
7. Anexos
En el siguiente captulo se dar aquella informacin que es interesante pero que no es
imprescindible para entender el funcionamiento de la aplicacin en tiempo real, y que
de alguna manera no ha tenido cabida en la memoria tcnica.
Block
Fixed-Point State-Space
Support Notes
SN1
SN1, SN2
SN1. SN2
SN1, SN2
SN1. SN2
SN1. SN2
SN1, SN2
SN1. SN2
SN1, SN2
SN1, SN2
SN1. SN2
SN1. SN2
SN1. SN2
SN1. SN2
SN1
96
SN1. SN2
Anexos
Discrete:
Increment/Decrement
Continuous
Discontinuities
Discrete
SN1
Decrement To Zero
SN1
SN1
SN1
Derivative
Integrator
State-Space
SN3. SN4
SN3. SN4
SN3. SN4
Transfer Fen
SN3. SN4
Transport Delay
SN3. SN4
SN3. SN4
SN3. SN4
Zero-Pole
Backlash
Coulomb & Viscous Friction
SN3. SN4
SN2
SN1
Dead Zone
Dead Zone Dynamic
SN1
Hit Crossing
SN4
Quantizer
Rate Li miter
SN5
SN1. SN5
Relay
Saturation
Saturation Dynamic
SN1
Wrap To Zero
SN1
Difference
Discrete Derivative
SN1
SN2. SN6
Discrete Filter
SN2
Discrete State-Space
SN2
97
Anexos
SN2
Discrete Zero-Pole
SN2
Discrete-Time Integrator
SN2. SN6
First-Order Hold
SN4
Integer Delay
SN2
Memory
Transfer Fen First Order
SN1
SN1
SN1
Unit Delay
Weighted Moving Average
SN2
Zero-Order Hold
Bit Clear
Bit Set
Bitwise Operator
Combinatorial Logic
Compare to Constant
Compare to Zero
Detect Change
SN2
Detect Decrease
SN2
SN2
SN2
Detect Increase
SN2
SN2
SN2
Extract Bits
Interval Test
Interval Test Dynamic
Loaical Operator
98
Anexos
Lookup Tables
Math Operations
Relational Operator
Shift Arithmetic
Cosine
Direct Lookup Table (n-D)
SN1
SN2
Interpolation (n-D)
Lookup Table
Sine
Abs
Algebraic Constraint
SN1
Not supported
Assignment
Bias
Complex to Magnitude-Angle
SN2
Complex to Real-lmag
Concatenate
Dot Product
Gain
Maanitude-Anale to Complex
SN2
99
Anexos
Model Verification
Polynomial
Product
Real-lmaa to Complex
SN2
Reshape
Rounding Function
Sign
Sine Wave Function
Slider Gain
Sum
Trigometric Function
SN7
Unary Minus
Weighted Sample Time Math
Assertion
Check Discrete Gradient
Atomic Subsystem
Configurable Subsystem
Enabled Subsystem
100
Anexos
Signal Attributes
Signal Routing
Function-Call Generator
Function-Call Subsystem
If
If Action Subsystem
Model
Subsystem
Switch Case
Triggered Subsystem
JC
Probe
Rate Transition
SN4
SN2. SN5
Sianal Conversion
Signal Specification
Width
Bus Assianment
Bus Creator
Bus Selector
Data Store Memory
Demux
Environment Controller
101
Anexos
Sinks
Sources
From
Goto
Goto Tag Visibility
Index Vector
Manual Switch
SN4
Merge
Multiport Switch
SN2
Mux
Selector
Switch
Display
Floating Scope
SN2
SN8
SN8
Output (Out1)
Scope
SN8
Stop Simulation
Terminator
Not supported
To File
SN4
To Workspace
SN8
XY Graph
SN8
SN5
Chirp Signal
SN4
Clock
SN4
Constant
Counter Free-Running
Counter Limited
SN4
SN1
Diaital Clock
SN4
From File
SN8
From Workspace
SN8
Ground
Inport(lni)
Pulse Generator
SN5. SN9
Ramp
SN4
102
Anexos
User-Defined
Random Number
Repeating Sequence
SN10
SN1. SN5
SN1
Signal Builder
SN4
Sianal Generator
SN4
Sine Wave
SN6. SN9
Step
Uniform Random Number
SN4
Fen
MATLAB Fen
SN11
S-Function
S-Function Builder
SN12
SN1
SN2
SN3
SN4
SN5
SN6
SN7
SN8
SN9
Note
Real-Time Workshop supports the block and requires no special notes.
Real-Time Workshop does not explicitly group primitive blocks that
constitute a nonatomic masked subsystem block in the generated
code. This flexibility allows for more optimal code generation. In certain
cases, you can achieve grouping by configuring the masked subsystem
block to execute as an atomic unit by selecting the Treat as atomic
unit option.
Generated code relies on memepy or memset (string, h) under certain
conditions.
Consider using the Simulink Model Discretizer to map continuous
blocks into discrete equivalents that support code generation. To start
the Model Discretizer, click Tools > Control Design.
Not recommended for production code.
Cannot use inside a triggered subsystem hierarchy.
Depends on absolute time when used inside a triggered subsystem
hierarchy.
The three functions asinh, acosh, and atanhare not supported by
all compilers. If you use a compiler that does not support these
functions, Real-Time Workshop issues a warning message for the
block and the generated code fails to link.
Ignored for code generation.
Does not refer to absolute time when configured for sample-based
operation. Depends on absolute time when in time-based operation.
103
Anexos
SN10
SN11
SN12
MathWorks,
104
Anexos
To Workspace o Scope? He observado que el mximo numero de
puntos es de 1000 puntos
- Cual es la relacin entre el tiempo de muestreo del Simulation
Parameters del Simulink y el tiempo de cada uno de los bloques.
Atentamente,
Augusto Cilento
De: support@mathworks.de
Data: Dilluns, Juny 6, 2005 9:40 am
Assumpte: RE: Matlab trabajando en tiempo real
Hola Sr Cliento
- Con el hardware y software que tenemos se puede muestrear hasta los
40 kHz?
Esto no se sabe hasta que se prueba. Por favor mira la pagina
siguiente:
http://www.mathworks.com/support/solutions/data/118N6Z.html?solution=1-18N6Z
- Cual es la limitacin de puntos guardando datos en Tiempo Real con
To Workspace o Scope? He observado que el mximo numero de
puntos es de 1000 puntos
En el bloque Scope y To Workspace hay una casilla "Limit Data Points
To Last". Tiene el valor 1000?
- Cual es la relacin entre el tiempo de muestreo del Simulation
Parameters del Simulink y el tiempo de cada uno de los bloques.
El tiempo de muestro del bloque es igual
precendente si su casilla tiene un valor
tienen un valor -1 es igual al tiempo de
Configuration Parameters). He aadido un
From: august.cilento@estudiants.urv.cat
Sent: 2006-08-21 11:48:33 AM
To: soporte@mathworks.es
Subject: RE: RE: RE: RE: Respondre el missatge:
RE:Matlabtrabajandoentiemporeal
Hello Tobias,
Can you explain me, how can I display a block scope into a GUI and see
that in real-time by means of "external mode" ? Can I export this data
to grafical user interface axes? I need work in signal tracing mode
(acquiring and visualizing signals while running a target
application).
105
Anexos
Hello August
I tried to call you on the number +34 977 55 96 59. The person
who took off the phone said that he doesn't know you. Do you
have another phone number?
Thank you
Tobias
De: soporte@mathworks.es
Data: Dimarts, Agost 22, 2006 16:28
Assumpte: RE: RE:Matlabtrabajandoentiemporeal
Per a: august.cilento@estudiants.urv.cat
> Hello August
>
> I'm still investigating if the data can be displayed in a GUI. I
> will tell you when I have further information about it.
>
> You wrote:
>
https://estudiants.urv.cat/popup.html?nopop
2 de 4 14/09/2006 16:40
>
> 2. Granted that the size of buffer of data is very
> small, would be possible to do more than a simulation and chain
> all the values obtained within a same variable, thus to obtain
> more points for a representation?
>
> Unfortunately this is not possible. Please check if the
> following hints help:
>
>
> Solution Id: 1-1J9KLJ
>
> Summary: Why do I receive an error stating that the external
> mode packet buffer is too small in Real-Time Windows Target
> 2.5.2 (R14SP2)?
>
> Solution:
> There is a bug in Real-Time Windows Target 2.5.2 (R14SP2) in
> the way that Real-Time Windows Target interacts with external
> mode. This bug is under investigation and no fully tested
> workarounds exist. However, the following are three techniques
> that may resolve the problem. This is a machine-dependent issue,
> and the techniques cannot be guaranteed to work on all machines.
>
106
Anexos
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
From: august.cilento@estudiants.urv.cat
Sent: 2006-08-24 04:50:16 AM
To: soporte@mathworks.es
Subject: RE: RE:Matlabtrabajandoentiemporeal
Hello Tobias,
You clarified me some doubts about buffer size, I will prove it.
3. Which is approximately the maximum number of points/frequency of
sampling for asimulation? But as it could obtain the relation?
Do you mean the number of points that can be saved?
Yes, I mean the maximum I number of points by unit of time (at minimum
increase of time or maximum frequency).
Thank you
De: soporte@mathworks.es
Data: Dimarts, Desembre 04, 2006 16:28
Assumpte: RE: RE:Matlabtrabajandoentiemporeal
Per a: august.cilento@estudiants.urv.cat
Dear August
I'm sorry about the delay in my reply. Unfortunately there is no
formula to calculate the maximum buffer size. I have made tests on
several
computers. I found out that the "out of memory" error occurs between
20'000'000 and 40'000'000 time steps. Unfortunately it is not yet
possible to
prealocate the memory which will be used by the scopes. I have
forwarded such a request to development to be considered in a future
release of
matlab.
Do you need to log every sample or can you just log every tenth? If
the second applies please specify the field "Sampling" in the scope
block:
Scope, Floating Scope, Signal Viewer Scope :: Blocks (Simulink)
107
Anexos
http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/slref/s
cope.shtml
Regards Tobias
108