From 1b20a766c6c5d28b6f583e7b9511c653c03106c5 Mon Sep 17 00:00:00 2001 From: "Christian L. V. Madsen" Date: Tue, 13 May 2025 13:00:26 +0200 Subject: [PATCH] first commit --- .cproject | 110 +++++++++++++++++++++ .project | 26 +++++ .settings/language.settings.xml | 25 +++++ .settings/org.eclipse.core.resources.prefs | 2 + buck_emulator.c | 62 ++++++++++++ main.c | 15 +++ 6 files changed, 240 insertions(+) create mode 100644 .cproject create mode 100644 .project create mode 100644 .settings/language.settings.xml create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 buck_emulator.c create mode 100644 main.c diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..41efb61 --- /dev/null +++ b/.cproject @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..84c1de5 --- /dev/null +++ b/.project @@ -0,0 +1,26 @@ + + + buck_simulator + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml new file mode 100644 index 0000000..3ed5de8 --- /dev/null +++ b/.settings/language.settings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/buck_emulator.c b/buck_emulator.c new file mode 100644 index 0000000..dcefcfc --- /dev/null +++ b/buck_emulator.c @@ -0,0 +1,62 @@ +/* + * buck_emulator.c + * + * Created on: 12 May 2025 + * Author: Christian Lind Vie Madsen + */ + + +typedef struct { + float Vin; // Input voltage + float Vout; // Output voltage + float IL; // Inductor current + float L; // Inductance + float C; // Capacitance + float Rload; // Load resistance + float dt; // Time step (e.g., 25e-6) +} BuckConverter; + +void simulate_step(BuckConverter *buck, float duty_cycle) { + float dIL = (buck->Vin * duty_cycle - buck->Vout) / buck->L; + buck->IL += dIL * buck->dt; + + float dVout = (buck->IL - buck->Vout / buck->Rload) / buck->C; + buck->Vout += dVout * buck->dt; +} + +/* +int main() { + BuckConverter buck = { + .Vin = 12.0, + .Vout = 0.0, + .IL = 0.0, + .L = 100e-6, + .C = 100e-6, + .Rload = 10.0, + .dt = 25e-6 + }; + + float duty_cycle = 0.5; + float Vref = 5.0; + float error, previous_error = 0, integral = 0; + float Kp = 0.2, Ki = 1000; + + for (int i = 0; i < 40000; ++i) { + error = Vref - buck.Vout; + integral += error * buck.dt; + + duty_cycle = Kp * error + Ki * integral; + if (duty_cycle > 1.0) duty_cycle = 1.0; + if (duty_cycle < 0.0) duty_cycle = 0.0; + + simulate_step(&buck, duty_cycle); + + // For debug: + if (i % 1000 == 0) + printf("Time: %.3f ms, Vout: %.2f V, IL: %.2f A, Duty: %.2f\n", + i * buck.dt * 1000, buck.Vout, buck.IL, duty_cycle); + } + + return 0; +} + */ diff --git a/main.c b/main.c new file mode 100644 index 0000000..7258432 --- /dev/null +++ b/main.c @@ -0,0 +1,15 @@ +/* + * main.c + * + * Created on: 12 May 2025 + * Author: Christian Lind Vie Madsen + */ +#include + + +int main(void){ + + + + +}