jbreidfjord-dev / Constant Current Source

Files

Pins

Symbol

PCB

Open in Flux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const inputTerminalUid = "af0a65ba-5351-5e31-c509-4264744f3aa3";
const outputTerminalUid = "04440962-5e81-1b1d-a392-5c6605ae578f";
const inputTerminalElement = flux.getNodeById(inputTerminalUid, "elementTerminal"); //P1
const outputTerminalElement = flux.getNodeById(outputTerminalUid, "elementTerminal"); //P2
const voltageOutputNode = flux.createOutputNode("v2");
const currentOutputNode = flux.createOutputNode("a2");
// Setup Event
flux.on("setup", () => {
    const current = Number(flux.properties.find((prop) => prop.name === "Current")?.value) || 10; 
    flux.simulationModel = {
        type: "currentSource",
        current_value: current,
        map_input_to_terminal_uid: inputTerminalUid,
        map_output_to_terminal_uid: outputTerminalUid
    };
});
// Calculation Event
flux.on("afterStep", () => {
    voltageOutputNode.name = "V";
    voltageOutputNode.value = Math.abs((outputTerminalElement?.voltage ?? 0) - (inputTerminalElement?.voltage ?? 0));
    voltageOutputNode.unit = "V";
    voltageOutputNode.displayInline = false;
    currentOutputNode.name = "I";
    currentOutputNode.value = Number(outputTerminalElement?.current);
    currentOutputNode.unit = "A";
    currentOutputNode.displayInline = false;

Reviews