forked from mpusz/mp-units
refactor: capacitor_time_curve refactored for references
This commit is contained in:
@@ -33,31 +33,34 @@
|
||||
int main()
|
||||
{
|
||||
using namespace units::isq;
|
||||
using namespace units::isq::si::references;
|
||||
using namespace units::isq::si::capacitance_references;
|
||||
using namespace units::isq::si::voltage_references;
|
||||
using namespace units::isq::si::resistance_references;
|
||||
using namespace units::isq::si::time_references;
|
||||
|
||||
std::cout << "mp-units capacitor time curve example...\n";
|
||||
std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield);
|
||||
std::cout.precision(3);
|
||||
|
||||
constexpr auto c = 0.47 * uF;
|
||||
constexpr auto v0 = 5.0 * V;
|
||||
constexpr auto r = 4.7 * kR;
|
||||
constexpr auto C = 0.47 * uF;
|
||||
constexpr auto V0 = 5.0 * V;
|
||||
constexpr auto RR = 4.7 * kR; // cannot use just 'R' here
|
||||
|
||||
for (auto tt = 0 * ms; tt <= 50 * ms; ++tt) {
|
||||
const Voltage auto vt = v0 * units::exp(-tt / (r * c));
|
||||
for (auto t = 0 * ms; t <= 50 * ms; ++t) {
|
||||
const Voltage auto Vt = V0 * units::exp(-t / (RR * C));
|
||||
|
||||
std::cout << "at " << tt << " voltage is ";
|
||||
std::cout << "at " << t << " voltage is ";
|
||||
|
||||
if (vt >= 1 * V)
|
||||
std::cout << vt;
|
||||
else if (vt >= 1 * mV)
|
||||
std::cout << quantity_cast<si::millivolt>(vt);
|
||||
else if (vt >= 1 * uV)
|
||||
std::cout << quantity_cast<si::microvolt>(vt);
|
||||
else if (vt >= 1 * nV)
|
||||
std::cout << quantity_cast<si::nanovolt>(vt);
|
||||
if (Vt >= 1 * V)
|
||||
std::cout << Vt;
|
||||
else if (Vt >= 1 * mV)
|
||||
std::cout << quantity_cast<si::millivolt>(Vt);
|
||||
else if (Vt >= 1 * uV)
|
||||
std::cout << quantity_cast<si::microvolt>(Vt);
|
||||
else if (Vt >= 1 * nV)
|
||||
std::cout << quantity_cast<si::nanovolt>(Vt);
|
||||
else
|
||||
std::cout << quantity_cast<si::picovolt>(vt);
|
||||
std::cout << quantity_cast<si::picovolt>(Vt);
|
||||
std::cout << "\n";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user