//input is FB from output voltage for regulation
//add set point input
//output is PWMs to drive the half bridge
const fbTerminalUid = "f6a95ebf-658e-4205-98f2-b3a33e916c36";
const out1TerminalUid = "b1748fd7-e447-421a-a0a9-6fd9800499a3";
const fbTerminal = flux.getNodeById(fbTerminalUid, "elementTerminal");
const out1Terminal = flux.getNodeById(out1TerminalUid, "elementTerminal");
if (!fbTerminal || !out1Terminal) {
throw new Error("Oops no new terminals found!");
}
const fbVoltageOutput = flux.createOutputNode("Vfb");
fbVoltageOutput.name = "Vfb";
fbVoltageOutput.unit = "V";
const out1VoltageOutput = flux.createOutputNode("Vout1");
out1VoltageOutput.name = "Vout1";
out1VoltageOutput.unit = "V";
const out1CurrentOutput = flux.createOutputNode("Iout1");
out1CurrentOutput.name = "Iout1";
out1CurrentOutput.unit = "A";
//variables required for pidCalculate
const setpointVoltage = Number(flux.properties.find((prop) => prop.name === "Setpoint Voltage")?.value);
if (isNaN(setpointVoltage)) {
throw new Error("Oops! Couldn't find setpoint voltage property");
}
let errSum = 0, lastErr = 0;
const kp = Number(flux.properties.find((prop) => prop.name === "KP")?.value);