Linear Difference Equation

../../../../_images/linear_difference_equations.svg

Performs a forward projection of a linear difference equation system

Documentation

Performs a forward projection of the following linear difference equation system:

yᵢ(t) = aᵢ₀ + ∑ aᵢⱼₖ yⱼ(t-k) + ∑ bᵢⱼₖ uⱼ(t-k)

Where aᵢⱼₖ and bᵢⱼₖ are the coefficients giving the contribution to yᵢ based on the value of yⱼ or uⱼ at time point t-k.

The system with v variables y_1 … y_v and control signals u_1 … u_r is described by (K+1) x (v+r) coefficients, where K is the number of previous times samples considered by this system.

This system takes as input v columns of (v+r)*K+1 rows as coefficients as follows:

aᵢ₀ = column[i][0],

aᵢⱼₖ = column[i][j*K + k],

bᵢⱼₖ = column[i][V*K + j*K + k]

Given at least K rows of initial condition this node steps the linear system forwards in time and outputs all variables at their corresponding time points.

By default the system has no coefficients b and the node configuration parameter T, defines the length of the system’s response.

To use the node for a system with a control signal, right click the node and select Ports>Input>Create: Control Signal. In this case, the length of the control sequence defines also the length of the output.

Definition

Input ports

init cond
Type: table
Description: Initial conditions
coefficients
Type: table
Description: Coefficients
control signal
Type: table
Description: Control signal
Optional number of ports: 0–1 (default: 0)

Output ports

out
Type: table
Description: Output

Configuration

T (T)

Number of points generated in outputs including the initial condition points

Examples

Example flows demonstrating this node:

Implementation

class node_difference.DifferenceEquation[source]