Contenuto principale

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 risulterà errata 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 nella sua realizzazione stato-spazio controllabile e canonica 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 dimensione 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 dato double.

Questa porta 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 dato 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 accelerate 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 appropriato, 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 per determinare se l'errore nei calcoli di stato sia accettabile nella scelta della dimensione del passo. Questo parametro specifica la tolleranza assoluta da utilizzare per gli stati del sistema implementato da questo blocco.

  • auto: utilizza la tolleranza assoluta specificata dal parametro di configurazione Absolute tolerance.

  • Reale, positivo, scalare: utilizza il valore specificato come tolleranza assoluta per tutti gli stati.

  • Vettore reale positivo: specifica una tolleranza assoluta per ogni stato. Il numero di elementi del vettore deve corrispondere al numero di stati del sistema.

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 | positive real vector
Tipi di dati: string | char

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

Se non si specifica un nome personalizzato per ogni stato del sistema:

  • Ogni nome specificato viene utilizzato per più di uno stato.

  • Il numero di stati deve essere divisibile esattamente per il numero di nomi specificati.

Ad esempio, se il sistema ha quattro stati, è necessario specificare uno, due o quattro nomi. Se si specificano due nomi, i primi due stati utilizzano il primo nome e gli ultimi due stati utilizzano il secondo nome.

Per specificare il nome di un singolo stato personalizzato utilizzando Property Inspector la finestra di dialogo Block Parameters (Parametri del blocco), racchiudere il nome tra virgolette singole (''). Ad esempio, per specificare il nome position, inserire 'position'. Se si omettono le virgolette singole, il software interpreta il valore come il nome di una variabile di MATLAB®.

Per utilizzare i nomi predefiniti degli stati, specificare questo parametro come vettore di caratteri vuoto ('').

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)
Tipi di dati: char | 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