🎉 Initial commit
This commit is contained in:
38
src/main.rs
Normal file
38
src/main.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
use physical_constants;
|
||||
use std::{thread, time};
|
||||
|
||||
fn main() {
|
||||
let f = 100_f64; // Hz
|
||||
let time_delta = 1_f64 / f; // s
|
||||
let speed_dial = 1_f64;
|
||||
let pause = time::Duration::from_millis((time_delta * 1000_f64 / speed_dial) as u64);
|
||||
|
||||
let mass = 1_f64; // kg
|
||||
//let A = 0.0025_f64; // m^2
|
||||
let A = 1_f64; // m^2
|
||||
let Cd = 0.5_f64;
|
||||
let p = 1.204_f64; // kg/m^3
|
||||
|
||||
let Fg = mass * physical_constants::STANDARD_ACCELERATION_OF_GRAVITY; // N
|
||||
let mut Fd = 0_f64;
|
||||
|
||||
let mut a; // m/s^2
|
||||
let mut v = 0_f64; // m/s
|
||||
let mut d = 0_f64; // m
|
||||
let mut elapsed = 0_f64;
|
||||
|
||||
loop {
|
||||
a = (Fg - Fd) / mass;
|
||||
v += a * time_delta;
|
||||
d += v * time_delta;
|
||||
|
||||
print!("t = {:.3} s Fg = {:.3} N Fd = {:.3} N a = {:.3} m/s^2 v = {:.3} m/s d = {:.3} m\r", elapsed, Fg, Fd, a, v, d);
|
||||
|
||||
Fd = p * Cd * A * v.powf(2_f64) / 2_f64;
|
||||
elapsed += time_delta;
|
||||
|
||||
thread::sleep(pause);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user