LPV System
Simulare sistemi lineari a parametri variabili (LPV)
Librerie:
Control System Toolbox /
Linear Parameter Varying
Descrizione
Un sistema lineare a parametri variabili (LPV) è un modello stato-spazio lineare la cui dinamica varia in funzione di alcuni parametri variabili nel tempo chiamati parametri di pianificazione. In MATLAB®, un modello LPV è rappresentato nella forma stato-spazio utilizzando i coefficienti che dipendono dai parametri.
In termini matematici, è possibile rappresentare un sistema LPV come segue.
In questo caso:
u(t) sono gli input
y(t) sono gli output
x(t) sono gli stati del modello con il valore iniziale xinit
è il vettore delle derivative di stato per i sistemi a tempo continuo e il vettore di aggiornamento di stato x[k+1] per i sistemi a tempo discreto. In questo caso, k è l'indice intero che conta il numero di periodi di campionamento Ts.
A(p), B(p), C(p) e D(p) sono le matrici stato-spazio parametrizzate dal vettore dei parametri di pianificazione p.
I parametri p = p(t) sono funzioni misurabili degli input e degli stati del modello. Possono essere una quantità scalare o un vettore di diversi parametri. L'insieme dei parametri di pianificazione definisce lo spazio di pianificazione su cui viene definito il modello LPV.
dx0(p), x0(p), u0(p) e y0(p) sono gli offset dei valori di , x(t), u(t) e y(t) ad un dato valore del parametro p = p(t) o p[k].
Si possono ottenere gli offset restituendo informazioni aggiuntive sulla linearizzazione quando si richiamano funzioni come
linearize(Simulink Control Design) ogetIOTransfer(Simulink Control Design). Per un esempio, vedere LPV Approximation of Boost Converter Model (Simulink Control Design).
Attenzione
Evitare che C(p) e D(p) dipendano dall'output del sistema y poiché, in caso contrario, l'equazione stato-spazio risultante y = C(y)x + D(y)u crea un loop algebrico in quanto per calcolare il valore di output y è necessario conoscere il valore di output. Questo loop algebrico è soggetto a instabilità e divergenza. Provare invece a esprimere C e D in termini di tempo t, l'input del blocco u e gli output dello stato x.
Per motivi simili, evitare di pianificare A(p) e B(p) in base all'output di dx. Si noti che è prudente che A e B dipendano da y quando y è una combinazione fissa di stati e input (in altre parole, quando y = Cx + Du, dove C e D sono matrici costanti).
Il blocco implementa una rappresentazione del sistema LPV basata su una griglia. Scegliere una griglia di valori per i parametri di pianificazione. Per ciascun valore p = p*, specificare il sistema lineare corrispondente come oggetto del modello stato-spazio (ss o idss (System Identification Toolbox)). Utilizzare l'array dei modelli stato-spazio generato per configurare il blocco LPV System.
Il blocco accetta un array dei modelli stato-spazio con informazioni sui punti operativi. Il blocco estrae le informazioni sulle variabili di pianificazione dalla proprietà SamplingGrid dell'array LTI. Le variabili di pianificazione definiscono la griglia dei modelli LPV. Si tratta di quantità a valore scalare che possono essere funzioni di tempo, input e stati o costanti. Vengono utilizzate per cogliere le dinamiche locali nello spazio operativo. Il software esegue l'interpolazione dei valori di queste variabili. Il blocco utilizza questo array con tecniche di interpolazione ed estrapolazione dei dati per la simulazione.
Esempi
Si consideri un modello LPV a 2 input, 3 output e 4 stati. Utilizzare l'input u(2) e lo stato x(1) come parametri di pianificazione. Configurare il modello di Simulink® come mostrato nella figura seguente.

Si consideri un sistema lineare massa-molla-smorzatore la cui massa varia in funzione di un comando di carico esterno. L'equazione di governo è la seguente:
In questo caso, è la massa dipendente dal comando esterno , è il rapporto di smorzamento, è la rigidità della molla e è l'input di forzatura. è la posizione della massa ad un dato momento . Per un valore fisso di , il sistema è lineare ed è espresso come
,
dove è il vettore di stato e è il valore della massa per un dato valore di .
In questo esempio, si intende studiare il comportamento del modello su un intervallo di valori di input compreso tra 1 e 10 Volt. Per ciascun valore di , misurare la massa e calcolare la rappresentazione lineare del sistema. Si supponga che la massa sia legata all'input dalla relazione . Per valori di u compresi tra 1 e 10 si ottiene il seguente array di sistemi lineari.
c = 5; k = 300; u = 1:10; m = 10*u + 0.1*u.^2; for i = 1:length(u) A = [0 1; -k/m(i), -c/m(i)]; B = [0; 1/m(i)]; C = [1 0]; sys(:,:,i) = ss(A,B,C,0); end
La variabile è l'input di pianificazione. Aggiungere questa informazione al modello.
sys.SamplingGrid = struct('LoadCommand',u);Configurare il blocco LPV System:
Digitare
sysnel campo State-space array (Array stato-spazio).Collegare la porta di input
para un segnale sorgente monodimensionale che genera i valori del comando di carico. Se la sorgente fornisce valori compresi tra 1 e 10, il blocco utilizza l'interpolazione per calcolare il modello lineare ad una determinata istanza temporale. In caso contrario, il blocco utilizza l'estrapolazione.

Simulare il modello LPV con un input di forzatura costante di 100 N e valori casuali per la variabile di pianificazione del comando di carico.
model = "simMSDLPV";
open_system(model);

Questo esempio mostra come simulare un modello lineare a parametri variabili (LPV) della velocità di un motore utilizzando il blocco LPV System. Il blocco LPV System interpola un array stato-spazio per modellare la risposta LPV. In genere, è possibile ottenere tale array linearizzando in batch un modello non lineare su un intervallo di condizioni operative. Questo esempio fornisce un risultato linearizzato del modello di velocità del motore in scdspeedlpvData. Per ulteriori informazioni sulla linearizzazione di questo modello, vedere Linearize Engine Speed Model (Simulink Control Design).
Aprire il modello.
model = "scdspeedLPVCompare";
open_system(model);
Caricare il risultato della linearizzazione per implementare il modello LPV.
load scdspeedlpvData.matIl modello LPV è implementato all'interno del sottosistema LPV Model.

Il blocco LPV System utilizza l'angolo di accelerazione come input e l'output della velocità come variabile di pianificazione. I parametri del blocco sono configurati come mostrato in questa immagine. In questo caso, l'array stato-spazio sys e gli offset si ottengono linearizzando in batch il modello non lineare.

Simulare il modello e tracciare il paragone delle risposte.
sim(model);
plot(logsOut{1}.Values.Time,logsOut{1}.Values.Data)
grid on
legend("Nonlinear sim","LPV sim","LTI sim",Location="best")
Il modello LPV fornisce una buona approssimazione della risposta non lineare.
Esempi approfonditi
LPV Approximation of Boost Converter Model
Approximate a nonlinear Simscape™ Electrical™ model using a linear parameter varying model.
(Simulink Control Design)
Design and Validate Gain-Scheduled Controller for Nonlinear Aircraft Pitch Dynamics
Approximate nonlinear behavior of airframe pitch axis dynamics using linear parameter-varying model.
Using LTI Arrays for Simulating Multi-Mode Dynamics
Construct a Linear Parameter Varying (LPV) representation of a system that exhibits multi-mode dynamics.
Approximate Nonlinear Behavior Using Array of LTI Systems
You can use linear parameter varying models to approximate the dynamics of nonlinear systems.
(Simulink Control Design)
Limiti
I ritardi interni non possono essere estrapolati in modo che siano inferiori al loro valore minimo nell'array del modello stato-spazio.
Quando si utilizza una griglia sparsa di modelli lineari per definire il sistema LPV, si utilizza solo lo schema di interpolazione del vicino più prossimo. Questo può ridurre l'accuratezza dei risultati della simulazione. Si consiglia di lavorare con griglie rettangolari create utilizzando
ndgrid.
Porte
Input
Specificare il segnale di input u(t). Nel caso di ingressi multipli, questa porta accetta un segnale della dimensione dell'input.
Fornisce i segnali per le variabili che definiscono lo spazio di pianificazione (variabili della griglia di campionamento). Le variabili di pianificazione possono essere funzioni di tempo, input e stati o costanti. È possibile ottenere la dipendenza richiesta preparando un segnale di pianificazione utilizzando l'input di clock (per il tempo), il segnale di input (u), i segnali di stato di output (x) del blocco LPV o qualsiasi altro segnale esogeno, come richiesto.
Attenzione
Evitare che C(p) e D(p) dipendano dall'output del sistema y poiché, in caso contrario, l'equazione stato-spazio risultante y = C(y)x + D(y)u crea un loop algebrico in quanto per calcolare il valore di output y è necessario conoscere il valore di output. Questo loop algebrico è soggetto a instabilità e divergenza. Provare invece a esprimere C e D in termini di tempo t, l'input del blocco u e gli output dello stato x.
Per motivi simili, evitare di pianificare A(p) e B(p) in base all'output di dx. Si noti che è prudente che A e B dipendano da y quando y è una combinazione fissa di stati e input (in altre parole, quando y = Cx + Du dove C e D sono matrici costanti).
Da R2024b
Condizioni iniziali da utilizzare con il modello locale per avviare la simulazione, specificate come un vettore di lunghezza pari al numero di stati del modello.
Dipendenze
Per abilitare questa porta, impostare Initial condition source su external.
Output
Risposta del modello lineare a parametri variabili.
Valori degli stati del modello.
Dipendenze
Per abilitare questa porta, selezionare Output states sulla scheda Outputs dei parametri del blocco.
Valori delle derivative di stato. Le derivative di stato vengono talvolta utilizzate per definire i parametri di pianificazione. Tuttavia, evitare di pianificare A e B sulla base dell'output dx.
Dipendenze
Per abilitare questa porta, selezionare Output state derivatives (continuous-time) or updates (discrete-time) sulla scheda Outputs dei parametri del blocco.
Dati del modello stato-spazio locale nei passi temporali principali della simulazione, restituiti come un segnale bus in cui sono presenti questi elementi.
A: matrice di statoB: matrice di inputC: matrice di outputD: matrice feedthroughInputDelay: ritardo in ingressoOutputDelay: ritardo di outputInternalDelay: ritardi interni nel modello
Dipendenze
Per abilitare questa porta, selezionare Output interpolated state-space data sulla scheda Outputs dei parametri del blocco.
Dati di offset del modello LPV nei passi temporali principali della simulazione, restituiti come un segnale bus in cui sono presenti questi elementi.
InputOffsetOutputOffsetStateOffsetStateDerivativeOffset
Dipendenze
Per abilitare questa porta, selezionare Output interpolated offsets sulla scheda Outputs dei parametri del blocco.
Parametri
Per modificare i parametri del blocco in modo interattivo, utilizzare Property Inspector. Dalla barra degli strumenti di Simulink, nella scheda Simulation, nella galleria Prepare, selezionare Property Inspector.
Scheda del modello LPV
Un array di modelli stato-spazio (ss o idss (System Identification Toolbox)). Tutti i modelli dell'array devono utilizzare la stessa definizione degli stati.
L'array stato-spazio deve specificare i parametri di pianificazione e la griglia di interpolazione per il modello nella proprietà SamplingGrid. È inoltre possibile specificare gli offset del modello nella proprietà Offsets dell'array quando si imposta il parametro Operating Point Offsets su Use offsets in state-space array. Per ulteriori informazioni su queste proprietà, vedere la pagina di riferimento del modello ss.
Quando il blocco si trova in un modello con controllo di stato sincrono (vedere il blocco State Control (HDL Coder)), è necessario specificare un array dei modelli a tempo discreto.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | sys |
| Valori: | ss or idss model array name in quotes |
Esempio set_param(gcb,"sys","sysArrayName")
Da R2024b
Specificare la sorgente della condizione iniziale.
internal: specificare le condizioni iniziali degli stati utilizzando il parametro condizione iniziale.external: specificare le condizioni iniziali degli stati nella porta di input IC del blocco.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | InitialConditionSource |
| Valori: | internal (predefinito) | external |
Condizioni iniziali da utilizzare con il modello locale per avviare la simulazione, specificate come un vettore di lunghezza pari al numero di stati del modello.
Dipendenze
Per abilitare questo parametro, impostare Initial condition source su internal.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | InitialCondition |
| Valori: | "0" (predefinito) | initial state values in quotes |
Esempio set_param(gcb,"InitialCondition","[0 0.1]")
Da R2024a
Specificare il formato degli offset dei punti operativi.
Specify Offsets as double arrays: specificare gli offset utilizzando i parametri Input offset, Output offset, State Offset e State derivative/update offset.Specify offsets as struct array: specificare gli offset come un array di strutture con i campiu,y,xedxche specificano rispettivamente gli offset di input, output, stato e derivate di stato.Use offsets in state-space array: utilizzare gli offset specificati nella proprietàOffsetsdell'array stato-spazio.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | opSpecOption |
| Valori: | "Specify Offsets as double arrays" (predefinito) | "Specify offsets as struct array" | "Use offsets in state-space array" |
Esempio set_param(gcb,"opSpecOption","Specify offsets as struct array")
Offset di input u(t), specificato in uno dei seguenti modi:
0: da utilizzare quando non sono presenti offset di input ().Vettore doppio di lunghezza pari al numero di input: da utilizzare quando l'offset di input è uguale in tutto lo spazio di pianificazione.
Array doppio di grandezza nu x 1 x N1 x
...x Nm: da utilizzare quando sono presenti offset che variano nello spazio di pianificazione. In questo caso, nu è il numero di input e N1 x...x Nm è la grandezza della griglia di pianificazione. Ad esempio, se il modello ha tre input, due output e quattro stati ed è pianificato su una griglia di punti operativi di 5x6, la grandezza dell'array di input deve essere 3x1x5x6. Utilizzaresize(sys)per determinare la grandezza dell'array stato-spaziosys.
Dipendenze
Per abilitare questo parametro, impostare il formato Operating Point Offsets su Specify Offsets as double arrays.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | uOffset |
| Valori: | "0" (predefinito) | array name in quotes |
Esempio set_param(gcb,"uOffset","uOffArray")
Offset di output y(t), specificato in uno dei seguenti modi:
0: da utilizzare quando non sono presenti offset di output ().Vettore doppio di lunghezza pari al numero di output: da utilizzare quando gli offset di output sono uguali in tutto lo spazio di pianificazione.
Array doppio di grandezza ny x 1 x N1 x
...x Nm: da utilizzare quando sono presenti offset che variano nello spazio di pianificazione. In questo caso, ny è il numero di output e N1 x...x Nm è la grandezza della griglia di pianificazione. Ad esempio, se il modello ha tre input, due output e quattro stati ed è pianificato su una griglia di punti operativi di 5x6, la grandezza dell'array di input deve essere 2x1x5x6. Utilizzaresize(sys)per determinare la grandezza dell'array stato-spaziosys.
Dipendenze
Per abilitare questo parametro, impostare il formato Operating Point Offsets su Specify Offsets as double arrays.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | yOffset |
| Valori: | "0" (predefinito) | array name in quotes |
Esempio set_param(gcb,"yOffset","yOffArray")
Offset negli stati x(t), specificati in uno dei seguenti modi:
0: da utilizzare quando non sono presenti offset dello stato ().Vettore doppio di lunghezza pari al numero di stati: da utilizzare quando gli offset dello stato sono uguali in tutto lo spazio di pianificazione.
Array doppio di grandezza nx x 1 x N1 x
...x Nm: da utilizzare quando sono presenti offset che variano nello spazio di pianificazione. In questo caso, nx è il numero di stati e N1 x...x Nm è la grandezza della griglia di pianificazione. Ad esempio, se il modello ha tre input, due output e quattro stati ed è pianificato su una griglia di punti operativi di 5x6, la grandezza dell'array di input deve essere 4x1x5x6. Utilizzaresize(sys)per determinare la grandezza dell'array stato-spaziosys.
Dipendenze
Per abilitare questo parametro, impostare il formato Operating Point Offsets su Specify Offsets as double arrays.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | xOffset |
| Valori: | "0" (predefinito) | array name in quotes |
Esempio set_param(gcb,"xOffset","xOffArray")
Offset nella derivativa di stato o nella variabile di aggiornamento dx(t), specificato in uno dei seguenti modi:
Se l'array del sistema lineare è stato ottenuto mediante linearizzazione in condizioni di equilibrio, selezionare l'opzione Assume equilibrium operating conditions. Questa opzione corrisponde a un offset di per un sistema a tempo continuo e di per un sistema a tempo discreto. Questa opzione è selezionata per impostazione predefinita.
Se il sistema lineare contiene almeno un sistema ottenuto in condizioni di non equilibrio, deselezionare l'opzione Assume equilibrium operating conditions. Specificare una delle opzioni seguenti nel campo Offset value:
Vettore doppio di lunghezza pari al numero di stati: da utilizzare quando gli offset nella derivativa di stato sono uguali in tutto lo spazio di pianificazione.
Array doppio di grandezza nx x 1 x N1 x
...x Nm: da utilizzare quando sono presenti offset che variano nello spazio di pianificazione. In questo caso, nx è il numero di stati e N1 x...x Nm è la grandezza della griglia di pianificazione. Ad esempio, se il modello ha tre input, due output e quattro stati ed è pianificato su una griglia di punti operativi di 5x6, la grandezza dell'array di input deve essere 4x1x5x6. Utilizzaresize(sys)per determinare la grandezza dell'array stato-spaziosys.
Dipendenze
Per abilitare questo parametro, impostare il formato Operating Point Offsets su Specify Offsets as double arrays e disabilitare Assume equilibrium operating conditions.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | dxOffset |
| Valori: | "0" (predefinito) | array name in quotes |
Esempio set_param(gcb,"dxOffset","dxOffArray")
Da R2024a
Offset del modello, specificati come una struttura con questi campi.
| Campo | Descrizione |
|---|---|
u | Offset di input |
y | Offset di output |
x | Offset dello stato |
dx | Offset della derivativa di stato |
Se i valori di offset sono uguali in tutto lo spazio di pianificazione, specificarli come un vettore doppio di lunghezza pari al numero di input, output o stati per i campi corrispondenti.
Se gli offset variano nello spazio di pianificazione, specificare un array di strutture. Ad esempio, si supponga che il modello abbia tre input, due output e quattro stati. Se si linearizza il modello utilizzando un array di punti operativi di 5x6, la grandezza dell'array deve essere di 5x6 e ciascuna voce deve contenere un vettore di lunghezza pari al numero di input, output o stati per i campi corrispondenti.
La funzione linearize (Simulink Control Design) restituisce gli offset in questo formato nell'output info.Offsets quando la linearizzazione viene eseguita con l'opzione StoreOffsets impostata su true.
Dipendenze
Per abilitare questo parametro, impostare il formato Operating Point Offsets su Specify Offsets as struct array. (da R2024a)
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | Offset |
| Valori: | "struct" (predefinito) | structure array name in quotes |
Esempio set_param(gcb,"Offset","OffsetStructName")
Scheda delle voci fisse
In alcuni casi, il modello LPV può contenere coefficienti con piccole variazioni. Utilizzando i parametri di questa scheda, è possibile specificare quali matrici del modello sono fisse e i loro valori nominali per sovrascrivere le voci nei dati del modello. In alcune situazioni, si potrebbe voler sostituire una matrice dipendente dai parametri come A(p) con un valore fisso A* per la simulazione. Ad esempio, A* può rappresentare un valore medio sull'intervallo di pianificazione. Per impostazione predefinita, il blocco utilizza i dati State-space array per determinare quali voci sono fisse e quali variano (per motivi di prestazione, il blocco interpola solo le voci che variano).
Con questa scheda è possibile sovrascrivere questo comportamento predefinito, ad esempio per cercare di semplificare il modello LPV. Ad esempio, si può decidere che la terza voce di A non vari molto e che si desideri fissarla al suo valore medio. Gli array logici specificano quali voci devono essere trattate come fisse e Read values from specifica quale valore utilizzare per tali voci. false corrisponde a non sovrascrivere i dati dell'array LTI, ossia a fare affidamento sui dati per decidere se questa voce è fissa o variabile.
Specificare la posizione di questi coefficienti in uno dei seguenti modi:
Booleano scalare (
trueofalse), se tutte le voci di una matrice devono essere trattate allo stesso modo.Il valore predefinito per le matrici stato-spazio e i vettori di ritardo è
false, che indica che sono trattati come liberi.Matrice logica di grandezza compatibile con la grandezza della matrice corrispondente:
Matrice stato-spazio
Grandezza della matrice a voci fisse
A matrix nx x nx
B matrix nx x nu
C matrix ny x nx
D matrix ny x nu
Input delay nu x 1
Output delay ny x 1
Internal delay ni x 1
dove, nu è il numero di ingressi, ny è il numero di uscite, nx è il numero di stati e ni è la lunghezza del vettore di ritardo interno.
Indici numerici per specificare la posizione delle voci fisse. Vedere la pagina di riferimento
sub2indper ulteriori informazioni su come generare gli indici numerici corrispondenti a un dato pedice(i,j)per un elemento di una matrice.
Dopo aver specificato la posizione, fornire i valori del coefficiente fisso utilizzando il parametro Read values from.
Modello stato-spazio che fornisce i valori dei coefficienti fissi, specificati come in uno dei seguenti modi:
First model in state-space array: il primo modello nell'array stato-spazio viene utilizzato per i coefficienti fissi del modello LPV. Nell'esempio seguente, l'array stato-spazio è specificato dall'oggettosyse i coefficienti fissi sono presi dal modellosys(:,:,1).% Specify a 4-by-5 array of state-space models. sys = rss(4,2,3,4,5); a = 1:4; b = 10:10:50; [av,bv] = ndgrid(a,b); % Use "alpha" and "beta" variables as scheduling parameters. sys.SamplingGrid = struct('alpha',av,'beta',bv);
I coefficienti fissi sono presi dal modello
sysFixed = sys(:,:,1), che corrisponde a[alpha=1, beta=10]. Qualora la voce (2,1) della matriceAsia forzata a essere fissa, il relativo valore utilizzato durante la simulazione èsysFixed.A(2,1).Custom state-space model: specificare un modello stato-spazio diverso per le voci fisse. Specificare una variabile per il modello fisso nel campo Custom model. Il modello fisso deve utilizzare la stessa base di stato dell'array stato-spazio del modello LPV.
Scheda di pianificazione
Metodo di interpolazione. Definisce il modo in cui i dati stato-spazio devono essere calcolati per i valori dei parametri di pianificazione che si trovano lontano dalle loro posizioni nella griglia.
Specificare una delle seguenti opzioni:
Flat: scegliere i dati stato-spazio nel punto della griglia più vicino, ma non più grande, del punto attuale. Il punto attuale è il valore dei parametri di pianificazione al momento attuale.Nearest: scegliere i dati stato-spazio nel punto della griglia più vicino nello spazio di pianificazione.Linear: ottenere i dati stato-spazio mediante l'interpolazione lineare dei secondi vicini più prossimi nello spazio di pianificazione, dove d = numero dei parametri di pianificazione.
Lo schema di interpolazione predefinito è Linear per griglie regolari dei valori dei parametri di pianificazione. Per le griglie irregolari, viene sempre utilizzato lo schema di interpolazione Nearest, indipendentemente dalla scelta effettuata. Per saperne di più sulle griglie regolari e irregolari, vedere Regular vs. Irregular Grids.
Il metodo Linear fornisce la massima precisione, ma richiede più tempo per il calcolo. I metodi Flat e Nearest sono adatti per i modelli che presentano dinamiche di commutazione della modalità.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | IMethod |
| Valori: | "Linear" (predefinito) | "Nearest" | "Flat" |
Esempio set_param(gcb,"IMethod","Flat")
Metodo di estrapolazione. Definisce come calcolare i dati stato-spazio dei valori dei parametri di pianificazione che non rientrano nell'intervallo per il quale è stato fornito l'array stato-spazio (come specificato nella proprietà SamplingGrid).
Specificare una delle seguenti opzioni:
Clip(predefinito): disattiva l'estrapolazione e restituisce i dati corrispondenti all'ultimo punto della griglia di pianificazione disponibile più vicino al punto attuale.Linear: adatta una linea tra la prima o l'ultima coppia di valori per ciascun parametro di pianificazione, a seconda che il valore attuale sia rispettivamente inferiore al primo valore del punto della griglia o superiore all'ultimo valore del punto della griglia. Questo metodo restituisce il punto della linea corrispondente al valore attuale. L'estrapolazione lineare richiede che anche lo schema di interpolazione sia lineare.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | EMethod |
| Valori: | "Clip" (predefinito) | "Linear" |
Esempio set_param(gcb,"EMethod","Linear")
Il blocco determina la posizione dei valori dei parametri di pianificazione attuali nello spazio di pianificazione utilizzando un algoritmo di prelookup. Selezionare Linear search o Binary search. Ciascun metodo di ricerca presenta vantaggi in termini di velocità in situazioni diverse. Per ulteriori informazioni su questo parametro, vedere la pagina di riferimento del blocco Prelookup (Simulink).
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
Per ottenere il valore del parametro del blocco in modo programmatico, utilizzare la funzione get_param (Simulink).
| Parametro: | IndexSearch |
| Valori: | "Binary Search" (predefinito) | "Linear Search" |
Esempio set_param(gcb,"IndexSearch","Linear Search")
Selezionare questa casella di spunta quando si desidera che il blocco inizi la ricerca utilizzando l'indice trovato al passo temporale precedente. Per ulteriori informazioni su questo parametro, vedere la pagina di riferimento del blocco Prelookup (Simulink).
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | IndexBegin |
| Valori: | "on" (predefinito) | "off" |
Esempio set_param(gcb,"IndexBegin","off")
Scheda della generazione di codice
Tipo di dati del blocco, specificato come double o single.
Dipendenze
Per abilitare questa opzione, utilizzare come input un modello stato-spazio a tempo discreto.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | DataType |
| Valori: | "double" (predefinito) | "single" |
Esempio set_param(gcb,"DataType","single")
Allocazione iniziale di memoria per il numero di punti di input da memorizzare per i modelli che contengono ritardi. Se il numero di punti di input supera la grandezza del buffer iniziale, il blocco assegna ulteriore memoria. La grandezza predefinita è 1024.
Quando si esegue il modello in modalità di accelerazione o si costruisce il modello, assicurarsi che la grandezza del buffer iniziale sia sufficiente per gestire il ritardo massimo atteso nel modello.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | InitBufferSize |
| Valori: | "1024" (predefinito) | positive integer greater than 5 in quotes |
Esempio set_param(gcb,"InitBufferSize","512")
Specificare se utilizzare una grandezza fissa del buffer per salvare i dati di input e output ritardati dei passi temporali precedenti. Utilizzare questa opzione per i sistemi LPV a tempo continuo che contengono ritardi in input o in output. Se il buffer è pieno, i nuovi dati sostituiscono quelli già presenti nel buffer. Il software utilizza l'estrapolazione lineare per stimare i valori di output non presenti nel buffer.
Utilizzo programmatico
Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param (Simulink).
| Parametro: | FixedBuffer |
| Valori: | "off" (predefinito) | "on" |
Esempio set_param(gcb,"FixedBuffer","on")
Funzionalità estese
Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.
Cronologia versioni
Introdotto in R2014bIl blocco LPV System consente ora di specificare i valori di stato iniziali alla porta di input del blocco IC. Per abilitare questa porta, impostare il parametro Initial condition source su external.
Il parametro di stato iniziale x0 si chiama ora InitialCondition. Se il codice imposta questo parametro in modo programmatico utilizzando, ad esempio, set_param(blockPath,"x0","[0 0.1]"), aggiornare il codice con set_param(blockPath,"InitialCondition","[0 0.1]").
Il blocco LPV System ora supporta la specifica degli offset dei punti operativi in due nuovi formati:
Specifica degli offset come array di strutture
Utilizzo degli offset nell'array stato-spazio
Prima della release R2024a, il blocco supportava la specifica degli offset solo come array doppi nei parametri del blocco. Utilizzare l'elenco Offset dei punti operativi per specificare il formato degli offset.
Inoltre, il blocco presenta i seguenti nuovi miglioramenti:
L'architettura del blocco utilizza adesso un blocco Varying State Space sottostante. Questo semplifica il supporto per gli offset.
Il blocco ora supporta il riavvio rapido per la simulazione. In questa modalità, solo gli input del blocco e il parametro Initial state sono sincronizzabili. I restanti parametri del blocco non sono sincronizzabili perché la loro modifica altera la topologia del modello.
Il blocco LPV System ora ignora la dimensione singola e i parametri costanti nella griglia di campionamento dell'array del modello di input. Pertanto, non si devono alimentare i parametri, ossia i campi della struttura SamplingGrid, con valori costanti nella porta par del blocco. Per questa porta, utilizzare solo i campi variabili.
Prima della release R2024a, il blocco restituiva un errore quando i parametri venivano alimentati con valori costanti.
Vedi anche
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)



