-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrectifier3.c
More file actions
30 lines (28 loc) · 834 Bytes
/
rectifier3.c
File metadata and controls
30 lines (28 loc) · 834 Bytes
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
#include <stdio.h>
#include <math.h>
#include "libsimul.h"
const double dt = 1e-7; // 100 ns
int main(int argc, char **argv)
{
size_t i;
double t = 0.0;
struct libsimul_ctx ctx;
libsimul_init(&ctx, dt);
read_file(&ctx, "rectifier3.txt");
init_simulation(&ctx);
for (i = 0; i < 5*1000*1000; i++)
{
set_voltage_source(&ctx, "V1", sqrt(2.0)*230.0*sin(2*3.14159265358979*50.0*t));
set_voltage_source(&ctx, "V2", sqrt(2.0)*230.0*sin(2*3.14159265358979*50.0*t+2*3.14159265358979/3));
set_voltage_source(&ctx, "V3", sqrt(2.0)*230.0*sin(2*3.14159265358979*50.0*t+4*3.14159265358979/3));
if (set_resistor(&ctx, "RL", 1000.0*(1+0.3*sin(2*3.14159265358979*75.0*t))) != 0)
{
recalc(&ctx);
}
t += dt;
simulation_step(&ctx);
printf("%zu %g\n", i, get_V(&ctx, 4)-get_V(&ctx, 5));
}
libsimul_free(&ctx);
return 0;
}