Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Derivative

Calcolare la derivata continua approssimata del segnale continuo di input rispetto al tempo

  • Derivative block

Librerie:
Simulink / Continuous

Descrizione

Il blocco Derivative approssima la derivata continua del segnale di input continuo u rispetto al tempo di simulazione t. Utilizzare il blocco Derivative quando è necessario calcolare la derivata di un segnale differenziabile che presenta un tempo di campionamento continuo.

Un utilizzo improprio del blocco Derivative può comportare imprecisioni nei risultati della simulazione. Ove possibile, considerare queste alternative al blocco Derivative:

  • Riorganizzare le equazioni del sistema per risolvere un integrale anziché una derivata. Quindi, strutturare il modello sulla base delle nuove equazioni in modo che il software proceda all'integrazione utilizzando i blocchi, come il blocco Integrator anziché la differenziazione.

    Per un esempio, vedere Best-Form Mathematical Models.

  • Quando un blocco Transfer Fcn agisce inoltre sul segnale di input o di output del blocco Derivative, implementare la derivata per il segnale aggiungendo invece uno zero nella funzione di trasferimento.

  • Per calcolare la differenza finita, o quoziente di differenza, per un segnale discreto in un sistema discreto, utilizzare il blocco Discrete Derivative.

Quando è necessario utilizzare il blocco Derivative, utilizzare il blocco solo con segnali di input differenziabili che presentano un tempo di campionamento continuo.

  • Il software emette un avviso quando il segnale collegato a questa porta ha un tempo di campionamento discreto o fisso di minore importanza. (da R2023b)

  • Mentre, se il segnale di input ha un tempo di campionamento costante, il software non emette alcun avviso; la sincronizzazione del valore del segnale introduce una discontinuità nel segnale di input. La differenziazione attraverso queste discontinuità crea picchi nel segnale di output.

  • Per calcolare la differenza finita, o quoziente di differenza, per un segnale discreto in un sistema discreto, utilizzare il blocco Discrete Derivative.

Garanzia della precisione dell'approssimazione della derivata continua

Anche quando viene utilizzato in un contesto appropriato, la precisione del segnale di output del blocco Derivative dipende dalla grandezza del passo e potrebbe dipendere dalla dinamica del resto del sistema. Quando si utilizza il blocco Derivative è necessario assicurarsi che la precisione del segnale di output del blocco soddisfi i requisiti.

Utilizzare il valore del parametro Max step size (Grandezza massima del passo) per evitare che il risolutore a passo variabile esegua passi troppo ampi per soddisfare i requisiti di precisione. Per scegliere un valore appropriato per la grandezza massima del passo, potrebbe essere necessario eseguire diverse simulazioni.

Nelle simulazioni a passo variabile, il risolutore determina la grandezza di ciascun passo temporale maggiore monitorando l'errore nei calcoli degli stati continui in tutto il modello. Quando l'errore nel valore calcolato per uno stato continuo supera i livelli di tolleranza specificati, il risolutore riduce la grandezza del passo finché l'errore non rientra nella tolleranza.

Il blocco Derivative non presenta stati continui, quindi il risolutore non può regolare la grandezza del passo per garantire che i calcoli del blocco Derivative soddisfino i requisiti di tolleranza. Se il risolutore impiega un ampio passo temporale quando il valore del segnale di input cambia rapidamente, il blocco potrebbe produrre un valore di output inaspettato.

Porte

Input

espandi tutto

Il segnale di input deve essere reale e può avere valori di campionamento scalari o vettoriali. Utilizzare il blocco Derivative per approssimare la derivata continua solo per i segnali con tempo di campionamento continuo.

Tipi di dati: double

Output

espandi tutto

Il blocco Derivative approssima la derivata continua del segnale di input rispetto al tempo e fornisce il risultato come segnale continuo. Le dimensioni e la complessità del segnale di output corrispondono alle dimensioni e alla complessità del segnale di input, che deve essere reale.

Tipi di dati: double

Parametri

espandi tutto

Per modificare i parametri del blocco in modo interattivo, utilizzare Property Inspector. Sulla barra degli strumenti di Simulink®, nella scheda Simulation, nella galleria Prepare, selezionare Property Inspector.

La linearizzazione esatta per una derivata continua risulta difficile poiché non esiste una rappresentazione dello stato-spazio per l'equazione dinamica y=u˙. Il software approssima la linearizzazione del blocco Derivative aggiungendo un polo al sistema per creare una funzione di trasferimento che abbia la forma s/(cs+1).. Il polo agisce inoltre come filtro passa-basso con una frequenza di cutoff determinata dal valore di questo parametro, che riduce l'effetto del rumore.

E' buona norma specificare il valore di questo parametro come 1fb, dove fb è la frequenza di cutoff in radianti al secondo per il filtro passa-basso che risulta dall'aggiunta del polo. Scegliere una frequenza di cutoff maggiore o uguale alla velocità o frequenza di Nyquist per il sistema. Il valore predefinito del parametro inf corrisponde a una frequenza di cutoff di 0.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Per ottenere il valore del parametro del blocco in modo programmatico, utilizzare la funzione get_param.

Parametro: CoefficientInTFapproximation
Valori: inf (predefinito) | finite positive scalar number
Tipi di dati: char | string

Esempio set_param("MyModel/Derivative","CoefficientInTFapproximation","0.001") configures the Derivative block named Derivative in the model MyModel to use the coefficient 0.001 in the transfer function used for approximate linearization of the block. This coefficient value results in a cutoff frequency of 1000 radians per second.

Caratteristiche del blocco

Tipi di dati:

double

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Algoritmi

Il blocco Derivative calcola la differenza numerica Δu/Δt, per approssimare la derivata continua dudt,, dove Δu è la variazione del valore del segnale di input e Δt è la grandezza del passo temporale maggiore che il risolutore ha impiegato per raggiungere il tempo di simulazione attuale. La precisione dell'approssimazione della derivata continua dipende dalla velocità di variazione del segnale di input e dalla grandezza del passo.

Il valore di output iniziale del blocco Derivative è sempre 0. Tenendo conto del valore iniziale dell'output, questa equazione rappresenta la relazione precisa tra i segnali di input e di output del blocco.

y(t)=ΔuΔt=u(t)u(Tprevious)tTprevious|t>Tprevious,

  • t è il tempo di simulazione attuale.

  • Tprevious è il tempo dell'ultimo hit temporale maggiore nella simulazione.

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a

espandi tutto