c2d
Convertire il modello da tempo continuo a tempo discreto
Descrizione
discretizza il modello di sistema dinamico a tempo continuo sysd = c2d(sysc,Ts)sysc utilizzando il blocco di ordine zero sugli input e un tempo di campionamento di Ts.
Esempi
Discretizzare la seguente funzione di trasferimento a tempo continuo:
Questo sistema presenta un ritardo di input di 0,3 s. Discretizzare il sistema utilizzando l'approssimazione a triangolo (blocco del primo ordine) con tempo di campionamento Ts = 0,1 s.
H = tf([1 -1],[1 4 5],'InputDelay', 0.3); Hd = c2d(H,0.1,'foh');
Paragonare le risposte al gradino dei sistemi a tempo continuo e discretizzati.
step(H,'-',Hd,'--')

Discretizzare la seguente funzione di trasferimento ritardata utilizzando un blocco di ordine zero in input e una velocità di campionamento di 10 Hz.
h = tf(10,[1 3 10],'IODelay',0.25);
hd = c2d(h,0.1)hd =
0.01187 z^2 + 0.06408 z + 0.009721
z^(-3) * ----------------------------------
z^2 - 1.655 z + 0.7408
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties
In questo esempio, il modello discretizzato hd presenta un ritardo di tre periodi di campionamento. L'algoritmo di discretizzazione assorbe il ritardo residuo del semiperiodo nei coefficienti di hd.
Paragonare le risposte al gradino dei modelli a tempo continuo e discretizzati.
step(h,'--',hd,'-')

Da R2024a
Creare un modello stato-spazio a tempo continuo con due stati e un ritardo di input.
sys = ss(tf([1,2],[1,4,2])); sys.InputDelay = 2.7
sys =
A =
x1 x2
x1 -4 -2
x2 1 0
B =
u1
x1 2
x2 0
C =
x1 x2
y1 0.5 1
D =
u1
y1 0
Input delays (seconds): 2.7
Continuous-time state-space model.
Model Properties
Discretizzare il modello utilizzando il metodo di discretizzazione di Tustin e un filtro di Thiran per modellare i ritardi frazionari. Tempo di campionamento Ts = 1 secondo.
opt = c2dOptions('Method','tustin','ThiranOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 =
A =
x1 x2
x1 -0.4286 -0.5714
x2 0.2857 0.7143
B =
u1
x1 0.5714
x2 0.2857
C =
x1 x2
y1 0.2857 0.7143
D =
u1
y1 0.2857
(values computed with all internal delays set to zero)
Internal delays (sampling periods): 1 1 1
Sample time: 1 seconds
Discrete-time state-space model.
Model Properties
Per impostazione predefinita, la funzione modella i ritardi supplementari come ritardi interni nel modello discretizzato. Per modellare i ritardi supplementari come stati nel modello discretizzato, impostare l'opzione DelayModeling di c2dOptions su 'state'.
opt2 = c2dOptions('Method','tustin','ThiranOrder',3,'DelayModeling','state'); sysd2 = c2d(sys,1,opt2)
sysd2 =
A =
x1 x2 x3 x4 x5
x1 -0.4286 -0.5714 -0.00265 0.06954 2.286
x2 0.2857 0.7143 -0.001325 0.03477 1.143
x3 0 0 -0.2432 0.1449 -0.1153
x4 0 0 0.25 0 0
x5 0 0 0 0.125 0
B =
u1
x1 0.002058
x2 0.001029
x3 8
x4 0
x5 0
C =
x1 x2 x3 x4 x5
y1 0.2857 0.7143 -0.001325 0.03477 1.143
D =
u1
y1 0.001029
Sample time: 1 seconds
Discrete-time state-space model.
Model Properties
Il modello discretizzato contiene adesso tre stati supplementari x3, x4 e x5 corrispondenti a un filtro di Thiran del terzo ordine. Poiché il ritardo temporale diviso per il tempo di campionamento è 2,7, il filtro di Thiran del terzo ordine ('ThiranOrder' = 3) può approssimare l'intero ritardo temporale.
Stimare una funzione di trasferimento a tempo continuo e discretizzarla.
load iddata1 sys1c = tfest(z1,2); sys1d = c2d(sys1c,0.1,'zoh');
Stimare una funzione di trasferimento a tempo discreto del secondo ordine.
sys2d = tfest(z1,2,'Ts',0.1);Paragonare la risposta del modello discretizzato della funzione di trasferimento a tempo continuo sys1d e del modello a tempo discreto stimato direttamente sys2d.
compare(z1,sys1d,sys2d)

I due sistemi sono pressoché identici.
Discretizzare un modello stato-spazio identificato per costruire un predittore un gradino avanti della risposta.
Creare un modello stato-spazio identificato a tempo continuo utilizzando i dati di stima.
load iddata2
sysc = ssest(z2,4);Prevedere la risposta prevista a 1 gradino avanti di sysc.
predict(sysc,z2)

Discretizzare il modello.
sysd = c2d(sysc,0.1,'zoh');Costruire un modello predittivo dal modello discretizzato sysd.
[A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);
Predictor è un modello a due input che utilizza i segnali di output e di input misurati ([z1.y z1.u]) per calcolare la risposta prevista a 1 gradino di sysc.
Simulare il modello predittivo per ottenere la stessa risposta del comando predict.
lsim(Predictor,[z2.y,z2.u])

La simulazione del modello predittivo fornisce la stessa risposta di predict(sysc,z2).
Argomenti di input
Modello a tempo continuo, specificato come modello di sistema dinamico, come tf, ss o zpk. sysc non può essere un modello di dati di risposta in frequenza. sysc può essere un sistema SISO o MIMO, ma il metodo di discretizzazione 'matched' supporta solo i sistemi SISO.
sysc può presentare ritardi di input/di output o interni; tuttavia, i metodi 'matched', 'impulse' e 'least-squares' non supportano i modelli stato-spazio con ritardi interni.
I seguenti sistemi lineari identificati non possono essere discretizzati direttamente:
Modelli
idgreyil cuiFunctionTypeè'c'. Convertire prima in modelloidss.Modelli
idproc. Convertire prima in modelloidtfo modelloidpoly.
Tempo di campionamento, specificato come scalare positivo che rappresenta il periodo di campionamento del sistema a tempo discreto risultante. Ts è espresso in TimeUnit, che è la proprietà sysc.TimeUnit.
Metodo di discretizzazione, specificato come uno dei seguenti valori:
'zoh': blocco di ordine zero (predefinito). Assume che gli input di controllo siano costanti a tratti nel tempo di campionamentoTs.'foh': approssimazione a triangolo (blocco del primo ordine modificato). Assume che gli input di controllo siano lineari a tratti nel tempo di campionamentoTs.'impulse': discretizzazione invariante all'impulso'tustin': metodo bilineare (Tustin). Per specificare questo metodo con il prewarping di frequenza (precedentemente noto come metodo'prewarp'), utilizzare l'opzionePrewarpFrequencydic2dOptions.'matched': metodo di corrispondenza a polo zero'least-squares': metodo dei minimi quadrati'damped': approssimazione smorzata di Tustin basata sulla formulaTRBDF2, solo per i modellisparss.
Per informazioni sugli algoritmi di ciascun metodo di conversione, vedere Continuous-Discrete Conversion Methods.
Opzioni di discretizzazione, specificate come un oggetto c2dOptions. Ad esempio, specificare la frequenza di prewarp, l'ordine del filtro di Thiran o il metodo di discretizzazione come opzione.
Argomenti di output
Modello a tempo discreto, restituito come modello di sistema dinamico dello stesso tipo del sistema di input sysc.
Quando sysc è un modello (IDLTI) identificato, sysd:
Include sia i componenti misurati che i componenti di rumore di
sysc. La varianza delle innovazioni λ del modello a tempo continuo identificatosysc, memorizzata nella relativa proprietàNoiseVariance, è interpretata come l'intensità della densità spettrale dello spettro del rumore. La varianza del rumore insysdè quindi data da λ/Ts.Non include la covarianza dei parametri stimati di
sysc. Se si desidera traslare la covarianza durante la discretizzazione del modello, utilizzaretranslatecov.
Mappatura delle condizioni iniziali a tempo continuo x0 e u0 del modello stato-spazio sysc al vettore di stato iniziale a tempo discreto x[0], restituita come matrice. La mappatura delle condizioni iniziali al vettore di stato iniziale è la seguente:
Per i modelli stato-spazio con ritardi temporali, c2d riempie la matrice G con zeri per tenere conto degli stati supplementari introdotti dalla discretizzazione di quei ritardi. Per una discussione sulla modellazione dei ritardi temporali nei sistemi discretizzati, vedere Continuous-Discrete Conversion Methods.
Cronologia versioni
Introduzione prima di R2006aIl comando c2d non aggiunge più stati supplementari quando si modellano ritardi aggiuntivi. Per impostazione predefinita, c2d utilizza adesso i ritardi interni e restituisce il modello discretizzato con lo stesso numero di stati. Questo determina un comportamento più prevedibile e semplifica la mappatura dello stato iniziale da tempo continuo a tempo discreto.
Per tornare al vecchio comportamento prima della release R2024a, creare un insieme di opzioni utilizzando c2dOptions e impostare DelayModeling su "state".
È ora possibile discretizzare i modelli mechss utilizzando il metodo di approssimazione bilineare di Tustin. Per i modelli mechss, il metodo 'tustin' calcola la forma del secondo ordine della discretizzazione di Tustin. Equivale ad applicare Tustin all'equivalente sparss del primo ordine del modello mechss.
È ora possibile utilizzare c2d per discretizzare modelli con offset, come i modelli lineari a griglia con parametri variabili.
Inoltre, c2dOptions offre due nuove opzioni
DelayModeling: specificare se modellare i ritardi supplementari come ritardi interni (impostazione predefinita) o come stati aggiuntivi.Consistency: imporre la coerenza degli stati e dei ritardi negli array stato-spazio. Questa opzione risulta utile quando si discretizzano modelli LPV o LTV a griglia.
Vedi anche
c2dOptions | d2c | d2d | thiran | translatecov (System Identification Toolbox) | Conversione della velocità del modello
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)