Contenuto principale

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

Transfer Fcn

Modellare un sistema lineare come funzione di trasferimento

  • Transfer Fcn block

Librerie:
Simulink / Continuous

Descrizione

Il blocco Transfer Fcn modella un sistema lineare mediante una funzione di trasferimento della variabile s nel dominio di Laplace. Il blocco può modellare sistemi a singolo input/singolo output (SISO) e a singolo input/multiplo output (SIMO).

Condizioni per utilizzare questo blocco

Il blocco Transfer Fcn presuppone le seguenti condizioni:

  • La funzione di trasferimento presenta la forma

    H(s)=y(s)u(s)=num(s)den(s)=num(1)snn1+num(2)snn2++num(nn)den(1)snd1+den(2)snd2++den(nd),

    ,

    dove u e y sono rispettivamente l'input e l'output del sistema, nn e nd sono rispettivamente il numero di coefficienti del numeratore e del denominatore. num(s) e den(s) contengono i coefficienti del numeratore e del denominatore in potenze decrescenti di s.

  • L'ordine del denominatore deve essere maggiore di o uguale all'ordine del numeratore.

  • Per un sistema a multiplo output, tutte le funzioni di trasferimento hanno lo stesso denominatore e tutti i numeratori hanno lo stesso ordine.

Modellazione di un sistema a singolo output

Per un sistema a singolo output, l'input e l'output del blocco sono segnali scalari nel dominio del tempo. Per modellare questo sistema:

  1. Inserire un vettore per i coefficienti del numeratore della funzione di trasferimento nel campo Numerator coefficients.

  2. Inserire un vettore per i coefficienti del denominatore della funzione di trasferimento nel campo Denominator coefficients.

Modellazione di un sistema a multiplo output

Per un sistema a multiplo output, l'input del blocco è uno scalare e l'output è un vettore, dove ogni elemento è un output del sistema. Per modellare questo sistema:

  1. Inserire una matrice nel campo Numerator coefficients.

    Ciascuna riga di questa matrice contiene i coefficienti del numeratore di una funzione di trasferimento che determina uno degli output del blocco.

  2. Inserire un vettore dei coefficienti del denominatore comuni a tutte le funzioni di trasferimento del sistema nel campo Denominator coefficients.

Specifica delle condizioni iniziali

Una funzione di trasferimento descrive la relazione tra l'input e l'output nel dominio di Laplace (frequenza). In particolare, è definita come la trasformata di Laplace della risposta (output) di un sistema con condizioni iniziali pari a zero a un input impulsivo.

Operazioni come la moltiplicazione e la divisione delle funzioni di trasferimento si basano sullo stato iniziale pari a zero. Ad esempio, è possibile scomporre una singola funzione di trasferimento complicata in una serie di funzioni di trasferimento più semplici. Applicarle in sequenza per ottenere una risposta equivalente a quella della funzione di trasferimento originale. Questa operazione non sarà corretta se una delle funzioni di trasferimento assume uno stato iniziale diverso da zero. Inoltre, una funzione di trasferimento ha infinite realizzazioni nel dominio del tempo e gli stati della maggior parte di queste realizzazioni non hanno alcun significato fisico.

Per questi motivi, Simulink® preimposta le condizioni iniziali del blocco Transfer Fcn su zero. Per specificare le condizioni iniziali per una data funzione di trasferimento, convertire la funzione di trasferimento nel suo stato-spazio controllabile e canonico utilizzando tf2ss. Quindi, utilizzare il blocco State-Space. L'utilità tf2ss fornisce le matrici A, B, C e D per il sistema.

Per ulteriori informazioni, digitare help tf2ss o vedere la documentazione di Control System Toolbox™.

Visualizzazione della funzione di trasferimento sul blocco

Il blocco Transfer Fcn visualizza la funzione di trasferimento a seconda di come si specificano i parametri del numeratore e del denominatore.

  • Se si specifica ogni parametro come espressione o vettore, il blocco mostra la funzione di trasferimento utilizzando i coefficienti specificati per le potenze di s. Se si specifica una variabile tra parentesi, il blocco valuta la variabile.

    Ad esempio, se si specifica il valore del parametro Numerator coefficients come [3 2 1] e il valore del parametro Denominator coefficients come (den), dove den è una variabile del workspace con un valore di [7 5 3 1], il blocco visualizza l'equazione utilizzando i valori specificati.

    Transfer Fcn block that displays the numerator and denominator of the transfer function both as a polynomial function of s.

    Suggerimento

    Quando la grandezza del blocco è troppo piccola per contenere l'intero numeratore o denominatore, l'icona del blocco visualizza il numeratore come num(s) e il denominatore come den(s).

    A Transfer Fcn block that is not wide enough to display the equation.

    Se si desidera che il blocco mostri l'equazione per la funzione di trasferimento che implementa, ridimensionare il blocco trascinando un angolo.

    A pointer is positioned to drag the lower-right corner of the Transfer Fcn block, resizing the block so it is wide enough to display the equation that represents the transfer function.

  • Se si specifica ogni parametro come variabile, il blocco mostra il nome della variabile seguito da (s).

    Ad esempio, se si specifica il parametro Numerator coefficients come num e il parametro Denominator coefficients come den, l'icona del blocco mostra il numeratore della funzione di trasferimento come num(s) e il denominatore come den(s).

    Transfer Fcn block with the Numerator coefficients parameter specified as num and the Denominator coefficients parameter specified as den.

Esempi

Porte

Input

espandi tutto

Segnale di input, specificato come scalare con tipo di dati double.

Questo porto ha passaggio diretto solo quando il numeratore della funzione di trasferimento è 0.

Tipi di dati: double

Output

espandi tutto

Segnale di output, fornito come scalare o vettore con tipo di dati double.

  • Per un sistema a singolo output, l'input e l'output del blocco sono segnali scalari nel dominio del tempo.

  • Per un sistema a multiplo output, l'input è uno scalare e l'output è un vettore, dove ogni elemento è un output del sistema.

Tipi di dati: double

Parametri

espandi tutto

Definire i coefficienti del numeratore della funzione di trasferimento.

  • Per un sistema a singolo output, inserire un vettore per i coefficienti del numeratore della funzione di trasferimento.

  • Per un sistema a multiplo output, inserire una matrice. Ciascuna riga di questa matrice contiene i coefficienti del numeratore di una funzione di trasferimento che determina uno degli output del blocco.

Utilizzo programmatico

Parametro dei blocchi: Numerator
Tipo: vettore di caratteri, stringa
Valori: vettore | matrice
Impostazione predefinita: '[1]'

Definire il vettore riga dei coefficienti del denominatore.

  • Per un sistema a singolo output, inserire un vettore per i coefficienti del denominatore della funzione di trasferimento.

  • Per un sistema a multiplo output, inserire un vettore contenente i coefficienti del denominatore comuni a tutte le funzioni di trasferimento del sistema.

Utilizzo programmatico

Parametro dei blocchi: Denominator
Tipo: vettore di caratteri | stringa
Valori: vettore
Impostazione predefinita: '[1 1]'

Livello di capacità di sincronizzazione dei coefficienti del numeratore e del denominatore per le modalità di simulazione accelerata e le simulazioni distribuite utilizzando Simulink Compiler™. Impostare questo parametro su Auto per consentire a Simulink di scegliere il livello appropriato di capacità di sincronizzazione dei parametri.

Impostare questo parametro su Optimized per generare una rappresentazione dei coefficienti del numeratore e del denominatore nel codice generato per le simulazioni accelerate e distribuite, ottimizzata per migliori prestazioni di simulazione.

Impostare questo parametro su Unconstrained per generare una rappresentazione completamente sincronizzabile (tra le simulazioni) dei coefficienti del numeratore e del denominatore nel codice generato per le simulazioni accelerate e distribuite. Per lasciare che Simulink determini il livello di capacità di sincronizzazione appropriate, selezionare Auto.

Utilizzo programmatico

Parametro dei blocchi: ParameterTunability
Tipo: vettore di caratteri, stringa
Valori: 'Auto' | 'Optimized' | 'Unconstrained'
Impostazione predefinita: 'Auto'

I risolutori a passo variabile utilizzano tolleranze assolute e relative nella scelta della dimensione del passo per determinare se l'errore nei calcoli di stato è accettabile.

Per ereditare la tolleranza assoluta dal parametro di configurazione Absolute tolerance, specificare questo valore del parametro come auto o -1.

Per specificare una tolleranza assoluta per questo blocco che sovrascrive il valore specificato per il parametro di configurazione Absolute tolerance:

  • Inserire un valore scalare reale e positivo da utilizzare per calcolare tutti gli stati del blocco.

  • Inserisci un vettore reale con dimensioni che corrispondono alle dimensioni degli stati continui del blocco.

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: AbsoluteTolerance
Valori: 'auto' (predefinito) | '-1' | positive real scalar number | vector of positive real scalar numbers
Tipi di dati: char | string

Esempio set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

Utilizzare questo parametro per assegnare opzionalmente nomi agli stati di questo blocco. I nomi assegnati si applicano solo agli stati di questo blocco.

  • Per utilizzare i nomi predefiniti degli stati, lasciare in bianco questo campo ('').

  • Per assegnare un singolo nome a un singolo stato, inserire il nome tra virgolette. Ad esempio, per assegnare un nome a un singolo stato position, inserire 'position'.

  • Per assegnare nomi a più stati, specificare questo valore del parametro come array di celle di vettori di caratteri. Ogni nome nell'array di celle deve essere univoco. Ad esempio, per assegnare i nomi a, b e c, inserire {'a','b','c'}.

  • Per specificare i nomi utilizzando una variabile MATLAB, inserire il nome della variabile senza virgolette. Ad esempio, per utilizzare la variabile names per specificare i nomi degli stati, inserire names.

È possibile specificare un numero di nomi inferiore al numero di stati nel blocco. In questo caso, i nomi degli stati vengono utilizzati per più stati e il numero degli stati deve dividersi equamente per il numero dei nomi degli stati. Ad esempio, quando si specificano due nomi per un blocco che presenta quattro stati, il primo nome viene utilizzato per i primi due stati e il secondo nome per gli ultimi due stati.

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: ContinuousStateAttributes
Valori: '' (predefinito) | valid MATLAB variable name
Tipi di dati: char | string | cell

Esempio set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

Caratteristiche del blocco

Tipi di dati:

double

Passaggio diretto

noa

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

a Le caratteristiche del passaggio diretto per questo blocco dipendono dai valori dei parametri del blocco.

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a