frd
Modelo de datos de respuesta en frecuencia
Descripción
Use frd
para crear modelos de datos de respuesta en frecuencia de valores reales o de valores complejos, o bien para convertir modelos de sistemas dinámicos al formato de modelo de datos de respuesta en frecuencia.
Los modelos de datos de respuesta en frecuencia almacenan datos complejos de respuesta en frecuencia con los puntos de frecuencia correspondientes. Por ejemplo, un modelo de datos de respuesta en frecuencia H(jwi) almacena la respuesta en frecuencia en cada frecuencia de entrada wi, donde i = 1,…,n. El objeto de modelo frd
puede representar modelos de datos de respuesta en frecuencia SISO o MIMO en tiempo continuo o tiempo discreto. Para más información, consulte Frequency Response Data (FRD) Models.
También puede usar frd
para crear modelos generalizados de datos de respuesta en frecuencia (genfrd
).
Creación
Puede obtener modelos frd
de una de las siguientes maneras.
Cree el modelo a partir de datos de respuesta en frecuencia con el comando
frd
. Por ejemplo, puede crear un modelofrd
con datos de respuesta en frecuencia tomados en frecuencias específicas.Para ver un ejemplo, consulte Modelo de datos de respuesta en frecuencia SISO.
Convierta un modelo lineal, como un modelo
ss
, en un modelofrd
calculando la respuesta en frecuencia del modelo en frecuencias especificadas.Para ver un ejemplo, consulte Convertir un modelo de espacio de estados a un modelo de datos de respuesta en frecuencia.
Estime el modelo con flujos de trabajo de estimación de respuesta en frecuencia sin conexión. Estos flujos de trabajo requieren Simulink® Control Design™.
Para más información, consulte Estimate Frequency Response at the Command Line (Simulink Control Design) y Estimate Frequency Response Using Model Linearizer (Simulink Control Design).
Sintaxis
Descripción
define las propiedades del modelo de datos de respuesta en frecuencia usando uno o más argumentos nombre-valor para cualquiera de las combinaciones de entrada-argumento anteriores.sys
= frd(___,Name,Value
)
interpreta las frecuencias en las unidades especificadas por sys
= frd(ltiSys
,frequency
,FrequencyUnits)FrequencyUnit
.
Argumentos de entrada
response
— Datos de respuesta en frecuencia
vector | arreglo multidimensional
Datos de respuesta en frecuencia, especificados como vector o arreglo multidimensional de números complejos.
Para los sistemas SISO, especifique un vector de valores de respuesta en frecuencia en los puntos de frecuencia especificados en
frequency
.Para los sistemas MIMO con
Nu
entradas yNy
salidas, especifique un arreglo deNy
porNu
porNf
, dondeNf
es el número de puntos de frecuencia.Para un arreglo de modelos de
S1
... porSn
conNu
entradas yNy
salidas, especifique un arreglo multidimensional de tamaño [Ny
Nu
Nf
S1
…Sn
].Por ejemplo, una
response
de tamaño [Ny
,Nu
,Nf
,3
,4
] representa los datos de respuesta para un arreglo de modelos de 3 por 4. Cada modelo tieneNy
salidas,Nu
entradas yNf
puntos de frecuencia.
Esta entrada establece la propiedad ResponseData.
frequency
— Puntos de frecuencia
vector
Puntos de frecuencia correspondientes a response
, especificados como vector que contiene Nf
puntos. El vector frequency
puede contener frecuencias positivas y negativas.
Esta entrada establece la propiedad Frequency.
ts
— Tiempo de muestreo
escalar
Tiempo de muestreo, especificado como un escalar.
La entrada establece la propiedad Ts.
ltiSys
— Sistema dinámico
modelo de sistema dinámico | arreglo de modelos
Sistema dinámico, especificado como un modelo de sistema dinámico SISO o MIMO, o bien un arreglo de modelos de sistemas dinámicos. Se admiten los siguientes tipos de sistemas dinámicos:
Modelos LTI numéricos de tiempo continuo o de tiempo discreto, como modelos
tf
,zpk
,ss
opid
.Modelos LTI generalizados o con incertidumbre, como modelos
genss
ouss
(Robust Control Toolbox). El uso de modelos con incertidumbre requiere Robust Control Toolbox™.El modelo resultante
frd
asume:Los valores actuales de los componentes ajustables para bloques de diseño de control ajustables.
Los valores nominales del modelo para bloques de diseño de control con incertidumbre.
Modelos LTI identificados, como modelos
idtf
(System Identification Toolbox),idss
(System Identification Toolbox),idproc
(System Identification Toolbox),idpoly
(System Identification Toolbox) yidgrey
(System Identification Toolbox). El uso de modelos identificados requiere System Identification Toolbox™.
Propiedades
ResponseData
— Datos de respuesta en frecuencia
arreglo multidimensional de números complejos
Datos de respuesta en frecuencia, especificados como arreglo multidimensional de números complejos.
Para los sistemas SISO,
ResponseData
es un arreglo de valores de respuesta en frecuencia de1
por1
porNf
en los puntos de frecuenciaNf
especificados en la propiedadFrequency
.Para los sistemas MIMO con
Nu
entradas yNy
salidas,ResponseData
es un arreglo deNy
porNu
porNf
, dondeNf
es el número de puntos de frecuencia.Por ejemplo,
ResponseData(ky,ku,kf)
representa la respuesta en frecuencia desde la entradaku
hasta la salidaky
en la frecuenciaFrequency(kf)
.Para un arreglo de modelos de
S1
... porSn
conNu
entradas yNy
salidas,ResponseData
es un arreglo multidimensional de tamaño [Ny
Nu
Nf
S1
…Sn
].Por ejemplo, unos
ResponseData
de tamaño [Ny
,Nu
,Nf
,3
,4
] representan los datos de respuesta para un arreglo de modelos de 3 por 4. Cada modelo tieneNy
salidas,Nu
entradas yNf
puntos de frecuencia.
Frequency
— Puntos de frecuencia
vector
Puntos de frecuencia correspondientes a ResponseData
, especificados como vector que contiene Nf
puntos en las unidades especificadas por FrequencyUnit
.
FrequencyUnit
— Unidades para vector de frecuencia
'rad/TimeUnit'
(predeterminado) | 'cycles/TimeUnit'
| 'rad/s'
| 'Hz'
| 'kHz'
| 'MHz'
| 'GHz'
| 'rpm'
Unidades del vector de frecuencia en la propiedad Frequency
, especificadas como uno de los siguientes valores:
'rad/TimeUnit'
'cycles/TimeUnit'
'rad/s'
'Hz'
'kHz'
'MHz'
'GHz'
'rpm'
Las unidades 'rad/TimeUnit'
y 'cycles/TimeUnit'
están relacionadas con las unidades de tiempo especificadas en la propiedad TimeUnit
.
Cuando se cambia esta propiedad no se remuestrean ni se convierten los datos. Cuando se modifica la propiedad cambia solo la interpretación de los datos existentes. Utilice chgFreqUnit
para convertir los datos a distintas unidades de frecuencia.
IODelay
— Retardo de transporte
0
(predeterminado) | escalar | Arreglo de Ny
por Nu
Retardo de transporte, especificado como una de las siguientes opciones:
Escalar: especifica el retardo de transporte de un sistema SISO, o bien un retardo de transporte común a todos los pares entrada-salida de un sistema MIMO.
Arreglo de
Ny
porNu
: especifica retardos de transporte independientes para cada par entrada-salida de un sistema MIMO. Aquí,Ny
es el número de salidas yNu
es el número de entradas.
Si se trata de un sistema de tiempo continuo, los retardos de transporte se deben especificar en las unidades dadas por la propiedad TimeUnit
. Si se trata de un sistema de tiempo discreto, los retardos de transporte se deben especificar como múltiplos enteros del tiempo de muestreo, Ts
.
InputDelay
— Retardo de entrada
0
(predeterminado) | escalar | Vector de Nu
por 1
Retardo de entrada para cada canal de entrada, especificado como una de las siguientes opciones:
Escalar: especifica el retardo de entrada de un sistema SISO, o bien un retardo común a todas las entradas de un sistema con varias entradas.
Vector de
Nu
por 1: especifica retardos de entrada independientes para cada entrada de un sistema con varias entradas, dondeNu
es el número de entradas.
Si se trata de un sistema de tiempo continuo, los retardos de entrada se deben especificar en las unidades dadas por la propiedad TimeUnit
. Si se trata de un sistema de tiempo discreto, los retardos de entrada se deben especificar como múltiplos enteros del tiempo de muestreo, Ts
.
Para más información, consulte Retardos de tiempo en sistemas lineales.
OutputDelay
— Retardo de salida
0
(predeterminado) | escalar | Vector de Ny
por 1
Retardo de salida para cada canal de salida, especificado como una de las siguientes opciones:
Escalar: especifica el retardo de salida de un sistema SISO, o bien un retardo común a todas las salidas de un sistema con varias salidas.
Vector de
Ny
por 1: especifica retardos de salida independientes para cada salida de un sistema con varias salidas, dondeNy
es el número de salidas.
Si se trata de un sistema de tiempo continuo, los retardos de salida se deben especificar en las unidades de tiempo dadas por la propiedad TimeUnit
. Si se trata de un sistema de tiempo discreto, los retardos de salida se deben especificar como múltiplos enteros del tiempo de muestreo, Ts
.
Para más información, consulte Retardos de tiempo en sistemas lineales.
Ts
— Tiempo de muestreo
0
(predeterminado) | escalar positivo | -1
Tiempo de muestreo, especificado como:
0
si se trata de un sistema de tiempo continuo.Un escalar positivo que representa el periodo de muestreo de un sistema de tiempo discreto.
Ts
se debe especificar en las unidades de tiempo dadas por la propiedadTimeUnit
.-1
si se trata de un sistema de tiempo discreto con un tiempo de muestreo indefinido.
Nota
Cambiar Ts
no discretiza ni remuestrea el modelo.
TimeUnit
— Unidades de la variable tiempo
'seconds'
(predeterminado) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...
Unidades de la variable tiempo, especificadas como una de las siguientes opciones:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Cambiar TimeUnit
no afecta a otras propiedades, pero sí cambia el comportamiento general del sistema. Use chgTimeUnit
para la conversión entre distintas unidades de tiempo sin modificar el comportamiento del sistema.
InputName
— Nombres de los canales de entrada
''
(predeterminado) | vector de caracteres | arreglo de celdas de vectores de caracteres
Nombres de los canales de entrada, especificados como una de las siguientes opciones:
Un vector de caracteres, para un modelo con una sola entrada.
Un arreglo de celdas de vectores de caracteres, para un modelo con varias entradas.
''
, para no especificar un nombre, para cualquier canal de entrada.
Como alternativa, se pueden asignar nombres a las entradas de un modelo de varias entradas mediante la expansión automática de vectores. Por ejemplo, si sys
es un modelo de dos entradas, se puede introducir lo siguiente:
sys.InputName = 'controls';
En este caso, el valor se expandirá automáticamente y los nombres de las entradas serán {'controls(1)';'controls(2)'}
.
Se puede usar la notación abreviada u
para hacer referencia a la propiedad InputName
. Por ejemplo, sys.u
es equivalente a sys.InputName
.
Utilice InputName
para:
Identificar los canales en la visualización y las gráficas del modelo.
Extraer los subsistemas de un sistema MIMO.
Especificar puntos de conexión a la hora de interconectar modelos.
InputUnit
— Unidades de los canales de entrada
''
(predeterminado) | vector de caracteres | arreglo de celdas de vectores de caracteres
Unidades de los canales de entrada, especificadas como una de las siguientes opciones:
Un vector de caracteres, para un modelo con una sola entrada.
Un arreglo de celdas de vectores de caracteres, para un modelo con varias entradas.
''
para no especificar una unidad, para cualquier canal de entrada.
Use InputUnit
para especificar las unidades de las señales de entrada. InputUnit
no afecta al comportamiento del sistema.
InputGroup
— Grupos de canales de entrada
estructura
Grupos de canales de entrada, especificados como una estructura. Use InputGroup
para asignar los canales de entrada de un sistema MIMO a grupos y poder referirse a cada uno de los grupos con un nombre. Los nombres de los campos de InputGroup
son los nombres de los grupos y los valores de los campos son los canales de entrada de cada grupo. Por ejemplo, puede introducir lo siguiente para crear grupos de entradas llamados controls
y noise
que incluyan los canales de entrada 1
y 2
, y los canales de entrada 3
y 5
, respectivamente.
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
Luego, puede usar el siguiente comando para extraer el subsistema de las entradas del grupo controls
a todas las salidas.
sys(:,'controls')
De forma predeterminada, InputGroup
es una estructura sin campos.
OutputName
— Nombres de los canales de salida
''
(predeterminado) | vector de caracteres | arreglo de celdas de vectores de caracteres
Nombres de los canales de salida, especificados como una de las siguientes opciones:
Un vector de caracteres, para un modelo con una sola salida.
Un arreglo de celdas de vectores de caracteres, para un modelo con varias salidas.
''
, para no especificar un nombre, para cualquier canal de salida.
Como alternativa, se pueden asignar nombres a las salidas de un modelo de varias salidas mediante la expansión automática de vectores. Por ejemplo, si sys
es un modelo de dos salidas, se puede introducir lo siguiente:
sys.OutputName = 'measurements';
En este caso, el valor se expandirá automáticamente y los nombres de las salidas serán {'measurements(1)';'measurements(2)'}
.
También se puede usar la notación abreviada y
para hacer referencia a la propiedad OutputName
. Por ejemplo, sys.y
es equivalente a sys.OutputName
.
Utilice OutputName
para:
Identificar los canales en la visualización y las gráficas del modelo.
Extraer los subsistemas de un sistema MIMO.
Especificar puntos de conexión a la hora de interconectar modelos.
OutputUnit
— Unidades de los canales de salida
''
(predeterminado) | vector de caracteres | arreglo de celdas de vectores de caracteres
Unidades los canales de salida, especificadas como una de las siguientes opciones:
Un vector de caracteres, para un modelo con una sola salida.
Un arreglo de celdas de vectores de caracteres, para un modelo con varias salidas.
''
para no especificar una unidad, para cualquier canal de salida.
Use OutputUnit
para especificar las unidades de las señales de salida. OutputUnit
no afecta al comportamiento del sistema.
OutputGroup
— Grupos de canales de salida
estructura
Grupos de canales de salida, especificados como una estructura. Use OutputGroup
para asignar los canales de salida de un sistema MIMO a grupos y poder referirse a cada uno de los grupos con un nombre. Los nombres de los campos de OutputGroup
son los nombres de los grupos y los valores de los campos son los canales de salida de cada grupo. Por ejemplo, puede crear grupos de salidas llamados temperature
y measurement
que incluyan el canal de salida 1
, 3
y los canales de salida 5
, respectivamente.
sys.OutputGroup.temperature = [1]; sys.OutputGroup.measurement = [3 5];
Luego, puede usar el siguiente comando para extraer el subsistema de todas las entradas a las salidas del grupo measurement
.
sys('measurement',:)
De forma predeterminada, OutputGroup
es una estructura sin campos.
Name
— Nombre del sistema
''
(predeterminado) | vector de caracteres
Nombre del sistema, especificado como un vector de caracteres. Por ejemplo, 'system_1'
.
Notes
— Texto especificado por el usuario
{}
(predeterminado) | vector de caracteres | arreglo de celdas de vectores de caracteres
Texto especificado por el usuario que desee asociar con el sistema, especificado como un vector de caracteres, o bien un arreglo de celdas de vectores de caracteres. Por ejemplo, 'System is MIMO'
.
UserData
— Datos especificados por el usuario
[]
(predeterminado) | cualquier tipo de dato de MATLAB®
Datos especificados por el usuario que desee asociar con el sistema, especificado como cualquier tipo de dato de MATLAB.
SamplingGrid
— Cuadrícula de muestreo para arreglos de modelos
arreglo de estructuras
Cuadrícula de muestreo para arreglos de modelos, especificada como un arreglo de estructuras.
Use SamplingGrid
para hacer un seguimiento de los valores de las variables asociados con cada uno de los modelos de un arreglo de modelos, incluyendo arreglos de modelos identificados lineales de tiempo invariante (IDLTI).
Establezca los nombres de los campos de la estructura como nombres de las variables de muestreo. Establezca los valores de los campos como valores de las variables muestreadas asociadas con cada modelo del arreglo. Todas las variables de muestreo deben ser escalares numéricos y todos los arreglos de valores muestreados deben coincidir con las dimensiones del arreglo de modelos.
Por ejemplo, puede crear un arreglo de modelos lineales de 11 por 1, sysarr
, tomando instantáneas de un sistema lineal de tiempo variante en la unidad de tiempo t = 0:10
. El siguiente código almacena las muestras de tiempo junto con los modelos lineales.
sysarr.SamplingGrid = struct('time',0:10)
Del mismo modo, puede crear un arreglo de modelos de 6 por 9, M
, muestreando de forma independiente dos variables, zeta
y w
. El siguiente código aplica los valores de (zeta,w)
a M
.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
Cuando se visualiza M
, cada elemento del arreglo incluye los correspondientes valores zeta
y w
.
M
M(:,:,1,1) [zeta=0.3, w=5] = 25 -------------- s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25 ---------------- s^2 + 3.5 s + 25 ...
En el caso de los arreglos de modelos obtenidos por linealización de un modelo de Simulink para distintos valores de los parámetros o distintos puntos de funcionamiento, el software rellena SamplingGrid
automáticamente con los valores de las variables correspondientes a cada elemento del arreglo. Por ejemplo, los comandos de Simulink Control Design linearize
(Simulink Control Design) y slLinearizer
(Simulink Control Design) rellenan SamplingGrid
automáticamente.
De forma predeterminada, SamplingGrid
es una estructura sin campos.
Funciones del objeto
Las siguientes listas contienen una muestra representativa de las funciones que se pueden usar con los modelos del tipo frd
. En general, muchas funciones que se pueden aplicar a Modelos de sistemas dinámicos también se pueden aplicar a un objeto frd
. Los modelos frd
no funcionan con ninguna función de análisis en el dominio del tiempo.
Análisis de respuesta en frecuencia
bode | Diagrama de Bode de respuesta en frecuencia o datos de magnitud y fase |
sigma | Gráfica de valores singulares de un sistema dinámico |
nyquist | Diagrama de Nyquist de la respuesta en frecuencia |
nichols | Nichols chart of frequency response |
bandwidth | Ancho de banda de respuestas en frecuencia |
freqresp | Evaluate system response over a grid of frequencies |
margin | Margen de ganancia, margen de fase y frecuencias de cruce |
Transformación de modelos
chgFreqUnit | Change frequency units of frequency-response data model |
chgTimeUnit | Change time units of dynamic system |
frdfun | Apply a function to the frequency response value at each frequency of an
frd model object |
fselect | Select frequency points or range in FRD model |
interp | Interpolar el modelo FRD |
fcat | Concatenate FRD models along frequency dimension |
fnorm | Pointwise peak gain of FRD model |
Interconexión de modelos
Diseño de controladores
pidtune | Algoritmo de ajuste de PID para un modelo de planta lineal |
Ejemplos
Modelo de datos de respuesta en frecuencia SISO
Cree un objeto frd
a partir de datos de respuesta en frecuencia.
Para este ejemplo, cargue los datos de respuesta en frecuencia recopilados para un modelo de depósito de agua.
load wtankData.mat
Estos datos contienen los datos de respuesta en frecuencia recopilados para el rango de frecuencia de rad/s a rad/s.
Cree el modelo.
sys = frd(response,frequency)
sys = Frequency(rad/s) Response ---------------- -------- 0.0010 1.562e+01 - 1.9904i 0.0018 1.560e+01 - 2.0947i 0.0034 1.513e+01 - 3.3670i 0.0062 1.373e+01 - 5.4306i 0.0113 1.047e+01 - 7.5227i 0.0207 5.829e+00 - 7.6529i 0.0379 2.340e+00 - 5.6271i 0.0695 7.765e-01 - 3.4188i 0.1274 2.394e-01 - 1.9295i 0.2336 7.216e-02 - 1.0648i 0.4281 2.157e-02 - 0.5834i 0.7848 6.433e-03 - 0.3188i 1.4384 1.916e-03 - 0.1740i 2.6367 5.705e-04 - 0.0950i 4.8329 1.698e-04 - 0.0518i 8.8587 5.055e-05 - 0.0283i 16.2378 1.505e-05 - 0.0154i 29.7635 4.478e-06 - 0.0084i 54.5559 1.333e-06 - 0.0046i 100.0000 3.967e-07 - 0.0025i Continuous-time frequency response.
Represente sys
.
bode(sys)
Modelo de datos de respuesta en frecuencia MIMO de tiempo discreto
Para este ejemplo, considere datos de respuesta y frecuencias generados aleatoriamente.
Genere un arreglo complejo de 3 por 2 por 7 y un vector de frecuencia con siete puntos entre 0.01 y 100 rad/s. Establezca el tiempo de muestreo Ts
en 5 segundos.
rng(0) r = randn(3,2,7)+1i*randn(3,2,7); w = logspace(-2,2,7); Ts = 5;
Cree el modelo.
sys = frd(r,w,Ts)
sys = From input 1 to: Frequency(rad/s) output 1 output 2 output 3 ---------------- -------- -------- -------- 0.0100 0.5377 + 0.3192i 1.8339 + 0.3129i -2.2588 - 0.8649i 0.0464 -0.4336 + 1.0933i 0.3426 + 1.1093i 3.5784 - 0.8637i 0.2154 0.7254 - 0.0068i -0.0631 + 1.5326i 0.7147 - 0.7697i 1.0000 1.4090 - 1.0891i 1.4172 + 0.0326i 0.6715 + 0.5525i 4.6416 0.4889 - 1.4916i 1.0347 - 0.7423i 0.7269 - 1.0616i 21.5443 0.8884 - 0.1924i -1.1471 + 0.8886i -1.0689 - 0.7648i 100.0000 0.3252 - 0.1774i -0.7549 - 0.1961i 1.3703 + 1.4193i From input 2 to: Frequency(rad/s) output 1 output 2 output 3 ---------------- -------- -------- -------- 0.0100 0.8622 - 0.0301i 0.3188 - 0.1649i -1.3077 + 0.6277i 0.0464 2.7694 + 0.0774i -1.3499 - 1.2141i 3.0349 - 1.1135i 0.2154 -0.2050 + 0.3714i -0.1241 - 0.2256i 1.4897 + 1.1174i 1.0000 -1.2075 + 1.1006i 0.7172 + 1.5442i 1.6302 + 0.0859i 4.6416 -0.3034 + 2.3505i 0.2939 - 0.6156i -0.7873 + 0.7481i 21.5443 -0.8095 - 1.4023i -2.9443 - 1.4224i 1.4384 + 0.4882i 100.0000 -1.7115 + 0.2916i -0.1022 + 0.1978i -0.2414 + 1.5877i Sample time: 5 seconds Discrete-time frequency response.
Los datos especificados resultan en un modelo frd
de dos entradas y tres salidas.
Modelo de datos de respuesta en frecuencia con propiedades heredadas
Para este ejemplo, cree un modelo de datos de respuesta en frecuencia con propiedades heredadas de un modelo de función de transferencia.
Cree una función de transferencia sys1
con la propiedad TimeUnit
establecida en 'minutes'
y la propiedad InputDelay
establecida en 3.
numerator1 = [2,0]; denominator1 = [1,8,0]; sys1 = tf(numerator1,denominator1,'TimeUnit','minutes','InputDelay',3)
sys1 = 2 s exp(-3*s) * --------- s^2 + 8 s Continuous-time transfer function.
propValues1 = {sys1.TimeUnit,sys1.InputDelay}
propValues1=1×2 cell array
{'minutes'} {[3]}
Cree un modelo frd
con propiedades heredadas de sys1
.
rng(0) response = randn(1,1,7)+1i*randn(1,1,7); w = logspace(-2,2,7); sys2 = frd(response,w,sys1)
sys2 = Frequency(rad/minute) Response --------------------- -------- 0.0100 0.5377 + 0.3426i 0.0464 1.8339 + 3.5784i 0.2154 -2.2588 + 2.7694i 1.0000 0.8622 - 1.3499i 4.6416 0.3188 + 3.0349i 21.5443 -1.3077 + 0.7254i 100.0000 -0.4336 - 0.0631i Input delays (minutes): 3 Continuous-time frequency response.
propValues2 = {sys2.TimeUnit,sys2.InputDelay}
propValues2=1×2 cell array
{'minutes'} {[3]}
Observe que el modelo frd
sys2
tiene las mismas propiedades que sys1
.
Especificar nombres de estados y de entradas para un modelo de datos de respuesta en frecuencia
Para este ejemplo, cargue los datos de respuesta en frecuencia recopilados para un modelo de depósito de agua.
load wtankData.mat
El modelo tiene una entrada, Voltage (voltaje), y una salida, Water height (altura del agua).
Cree un modelo frd
especificando los nombres de las entradas y de las salidas.
sys = frd(response,frequency,'InputName','Voltage','OutputName','Height');
Represente la respuesta en frecuencia.
bode(sys)
Los nombres de las entradas y de las salidas aparecen en el diagrama de Bode. Poner nombre a las entradas y salidas puede resultar útil cuando se trate de gráficas de respuesta para sistemas MIMO.
Convertir un modelo de espacio de estados a un modelo de datos de respuesta en frecuencia
Para este ejemplo, calcule el modelo frd
del siguiente modelo de espacio de estados:
Cree un modelo de espacio de estados usando las matrices de espacio de estados.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Convierta el modelo de espacio de estados ltiSys
en un modelo frd
para frecuencias entre 0.01 y 100 rad/s.
w = logspace(-2,2,50); sys = frd(ltiSys,w);
Compare las respuestas en frecuencia.
bode(ltiSys,'b',sys,'r--')
Las respuestas son idénticas.
Arreglo de modelos de datos de respuesta en frecuencia
Para crear arreglos de modelos frd
, puede especificar un arreglo multidimensional de datos de respuesta en frecuencia.
Por ejemplo, cuando especifica los datos de respuesta como arreglo numérico de tamaño [NY
NU
NF
S1
... Sn
], la función devuelve un arreglo de S1
por ... por Sn
de modelos frd
. Cada uno de estos modelos tiene NY
salidas, NU
entradas y NF
puntos de frecuencia.
Genere un arreglo de 2 por 3 de datos de respuesta aleatorios con modelos de una salida y dos entradas en 10 puntos de frecuencia entre 0.1 y 10 rad/s.
w = logspace(-1,1,10); r = randn(1,2,10,2,3)+1i*randn(1,2,10,2,3); sys = frd(r,w);
Extraiga el modelo en el índice (2,1) del arreglo de modelos.
sys21 = sys(:,:,2,1)
sys21 = From input 1 to: Frequency(rad/s) output 1 ---------------- -------- 0.1000 0.6715 + 0.0229i 0.1668 0.7172 - 1.7502i 0.2783 0.4889 - 0.8314i 0.4642 0.7269 - 1.1564i 0.7743 0.2939 - 2.0026i 1.2915 0.8884 + 0.5201i 2.1544 -1.0689 - 0.0348i 3.5938 -2.9443 + 1.0187i 5.9948 0.3252 - 0.7145i 10.0000 1.3703 - 0.2248i From input 2 to: Frequency(rad/s) output 1 ---------------- -------- 0.1000 -1.2075 - 0.2620i 0.1668 1.6302 - 0.2857i 0.2783 1.0347 - 0.9792i 0.4642 -0.3034 - 0.5336i 0.7743 -0.7873 + 0.9642i 1.2915 -1.1471 - 0.0200i 2.1544 -0.8095 - 0.7982i 3.5938 1.4384 - 0.1332i 5.9948 -0.7549 + 1.3514i 10.0000 -1.7115 - 0.5890i Continuous-time frequency response.
Modelo de datos de respuesta en frecuencia con frecuencias negativas
Puede especificar valores de frecuencia negativos en un objeto frd. Esta funcionalidad resulta útil cuando desea capturar los datos de respuesta en frecuencia de modelos con coeficientes complejos.
Cree un vector de frecuencia con valores positivos y negativos.
w0 = sort([-logspace(-2,2,50) 0 logspace(-2,2,50)]);
Cree un modelo de espacio de estados con coeficientes complejos.
A = [-3.50,-1.25-0.25i;2,0]; B = [1;0]; C = [-0.75-0.5i,0.625-0.125i]; D = 0.5; Gc = ss(A,B,C,D);
Convierta el modelo en un modelo frd en las frecuencias especificadas.
sys = frd(Gc,w0);
Represente la respuesta en frecuencia de los modelos.
bode(Gc,'b',sys,'r--')
Las respuestas de la gráfica coinciden con bastante precisión. La gráfica muestra dos ramas para modelos con coeficientes complejos, una para las frecuencias positivas, con una flecha que apunta hacia la derecha, y otra para las frecuencias negativas, con una flecha que apunta hacia la izquierda. En ambas ramas, las flechas indican la dirección de las frecuencias que aumentan.
Historial de versiones
Introducido antes de R2006a
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)