Type de bloc : prelookup
| Paramètre | Description |
|---|---|
| ports d entree | 1 port(s) d entree declare(s). |
| Paramètre | Description |
|---|---|
| ports de sortie | 1 port(s) de sortie declare(s). |
Calcule l indice d intervalle k et la fraction f pour une recherche de breakpoints partagee.
| Module | nflow_blocks |
| Bibliotheque | Tables de correspondance |
| Type | prelookup |
| Libelle | Prelookup |
Description
Pour une entree scalaire u et le vecteur strictement croissant BreakpointsForDimension1, calcule l'indice d'intervalle k tel que bp[k] <= u < bp[k+1] et la fraction f = (u - bp[k]) / (bp[k+1] - bp[k]). La sortie est le vecteur a 2 elements [k, f], qu'un ou plusieurs blocs interpolationPrelookup reutilisent pour interpoler plusieurs tables sans refaire la recherche d'intervalle.
Les entrees hors plage sont bornees : sous le premier breakpoint donne [0, 0] ; au niveau ou au-dessus du dernier donne [N-2, 1]. La generation de code C et Rust est supportee (la passe d'expansion vectorielle abaisse le bloc en aides scalaires).
Ports
Entree(s)
| Port | Role | Cote | Position |
|---|---|---|---|
| Port_1 | Signal numerique lu par le bloc. | gauche | x=0, y=40 |
Sortie(s)
| Port | Role | Cote | Position |
|---|---|---|---|
| Port_1 | Signal numerique produit par le bloc. | droite | x=90, y=40 |
Parametres
| Parametre | Valeur par defaut |
|---|---|
BreakpointsForDimension1 |
[0 1 2 3 4] |
Caracteristiques du bloc
| Type de bloc | prelookup |
| Famille | Tables de correspondance |
| Taille rendue | 90 x 80 |
| Phases | ALGEBRAIC |
| Etat interne ou historique | non |
| Type de donnees du signal | valeurs numeriques double |
Algorithmes
Equation ou regle
$$k : b_k \le u < b_{k+1},\quad f = \frac{u - b_k}{b_{k+1} - b_k}$$Capacites etendues
Sources d implementation
Generation de code : prise en charge pour C et Rust.
d.blocks={ struct('id','c','type','constant','inputs',0,'outputs',1,'params',struct('Value',2.5)), struct('id','pl','type','prelookup','inputs',1,'outputs',1,'params',struct('BreakpointsForDimension1',[0 1 2 3 4])), struct('id','ip','type','interpolationPrelookup','inputs',1,'outputs',1,'params',struct('Table',[0 1 4 9 16])), struct('id','w','type','toWorkspace','inputs',1,'outputs',0,'params',struct('VariableName','y','SaveFormat','Array')) };
d.connections={ struct('from','c','to','pl','fromIndex',0,'toIndex',0), struct('from','pl','to','ip','fromIndex',0,'toIndex',0), struct('from','ip','to','w','fromIndex',0,'toIndex',0) };
d.sampleTime=0.1; d.duration=0.2; d.solver='discrete'; d.variables=struct();
r=jsondecode(__nflow_simulate__(jsonencode(d)));
| Version | Description |
|---|---|
| 1.0.0 | initial version |