added set of sim voltages, currents, and temp

pull/73/head
alanbjohnston 5 years ago committed by GitHub
parent 395d9ed630
commit 578a692479
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -124,6 +124,9 @@ float batteryThreshold = 3.0, batteryVoltage;
float latitude = 39.027702, longitude = -77.078064;
float lat_file, long_file;
float axis[2], angle[2], volt_max[2], amp_max[2], batt, speed, eclipse_time, period, temp
int eclipse;
int test_i2c_bus(int bus);
const char pythonCmd[] = "python3 /home/pi/CubeSatSim/python/voltcurrent.py ";
@ -398,10 +401,28 @@ else
srand(time(0));
printf("Rnd: %f \n", rnd_float(-0.2, 0.0));
printf("Rnd: %f \n", rnd_float(-0.2, 0.0));
printf("Rnd: %f \n", rnd_float(.50, 0.6));
printf("Rnd: %f \n", rnd_float(4.0, 5.0));
axis[0] = rnd_float(-0.2, 0.2);
axis[1] = rnd_float(-0.2, 0.2);
axis[2] = (rnd_float(-0.2, 0.2) > 0) ? 1.0: -1.0;
angle[0] = atan(axis[1] / axis[2]);
angle[1] = atan(axis[2] / axis[0]);
angle[2] = atan(axis[1] / axis[0]);
volt_max[0] = rnd_float(4.5, 5.5) * sin(angle[1]);
volt_max[1] = rnd_float(4.5, 5.5) * cos(angle[0]);
volt_max[2] = rnd_float(4.5, 5.5) * cos(angle[1] - angle[0]);
amp_max[0] = rnd_float(140, 160) * sin(angle[1]);
amp_max[1] = rnd_float(140, 160) * cos(angle[0]);
amp_max[2] = rnd_float(140, 160) * cos(angle[1] - angle[0]);
batt = rnd_float(3.5, 4.3);
speed = rnd_fload(0.5, 1.2);
eclipse_time = rnd_float(0, 300);
eclipse = (rnd_float(-1, +1) > 0) ? true : false;
period = rnd_float(150, 300);
temp = rnd_float(20, 55);
time_start = millis();
@ -979,9 +1000,21 @@ if (firstTime != ON)
double time = (millis() - time_start)/1000.0;
double Xi = 10.0 * sin(1.37) * sin(2.0 * 3.14 * time / (46.0 * 2)) + rnd_float(-1, 1);
double Yi = 8.5 * sin(1.37) * sin((2.0 * 3.14 * time / (46.0 * 2)) + (3.14/2.0)) + rnd_float(-1, 1);
double Zi = 9.0 * cos(1.37 - 0.2) * sin((2.0 * 3.14 * time / (46.0 * 2)) + 3.14 + 0.785) + rnd_float(-1, 1);
if (time % eclipse_time == 0)
eclipse = (eclipse == 1) ? 0 : 1;
// double Xi = 10.0 * sin(1.37) * sin(2.0 * 3.14 * time / (46.0 * 2)) + rnd_float(-1, 1);
// double Yi = 8.5 * sin(1.37) * sin((2.0 * 3.14 * time / (46.0 * 2)) + (3.14/2.0)) + rnd_float(-1, 1);
// double Zi = 9.0 * cos(1.37 - 0.2) * sin((2.0 * 3.14 * time / (46.0 * 2)) + 3.14 + 0.785) + rnd_float(-1, 1);
double Xi = eclipse * amps_max[0] * sin(2.0 * 3.14 * time / (46.0 * speed)) + rnd_float(-2, 2);
double Yi = eclipse * amps_max[1] * sin((2.0 * 3.14 * time / (46.0 * speed)) + (3.14/2.0)) + rnd_float(-2, 2);
double Zi = eclipse * amps_max[2] * sin((2.0 * 3.14 * time / (46.0 * speed)) + 3.14 + angle[2]) + rnd_float(-2, 2);
double Xv = eclipse * volts_max[0] * sin(2.0 * 3.14 * time / (46.0 * speed)) + rnd_float(-.2, 2);
double Yv = eclipse * volts_max[1] * sin((2.0 * 3.14 * time / (46.0 * speed)) + (3.14/2.0)) + rnd_float(-.2, 2);
double Zv = eclipse * volts_max[2] * sin((2.0 * 3.14 * time / (46.0 * speed)) + 3.14 + angle[2]) + rnd_float(-.2, 2);
//printf("Yi: %f Zi: %f \n", Yi, Zi);
@ -992,8 +1025,14 @@ if (firstTime != ON)
current[map[PLUS_Z]] = ( Zi >= 0) ? Zi: 0;
current[map[MINUS_Z]] = ( Zi >= 0) ? 0: ((-1.0) * Zi);
printf("Time: %f : %f %f | %f %f | %f %f\n",time, current[map[PLUS_X]], current[map[MINUS_X]], current[map[PLUS_Y]], current[map[MINUS_Y]], current[map[PLUS_Z]], current[map[MINUS_Z]]);
voltage[map[PLUS_X]] = ( Xv >= 1) ? Xi: rnd_float(0.9, 1.1);
voltage[map[MINUS_X]] = ( Xv <= -1) ? rnd_float(0.9, 1.1): ((-1.0) * Xi);
voltage[map[PLUS_Y]] = ( Yv >= 0) ? Yi: rnd_float(0.9, 1.1);
voltage[map[MINUS_Y]] = ( Yv >= 0) ? rnd_float(0.9, 1.1): ((-1.0) * Yi);
voltage[map[PLUS_Z]] = ( Zv >= 0) ? Zi: rnd_float(0.9, 1.1);
voltage[map[MINUS_Z]] = ( Zv >= 0) ? rnd_float(0.9, 1.1): ((-1.0) * Zi);
printf("Time: %f : %f %f | %f %f | %f %f\n",time, current[map[PLUS_X]], current[map[MINUS_X]], current[map[PLUS_Y]], current[map[MINUS_Y]], current[map[PLUS_Z]], current[map[MINUS_Z]]);
FILE *cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r");
if (cpuTempSensor) {

Loading…
Cancel
Save

Powered by TurnKey Linux.