Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 201:5d1a3aa50fe0
- Parent:
- 199:c160a2c03781
- Child:
- 202:1baff0df86d1
diff -r 4999d5e6c63d -r 5d1a3aa50fe0 main.cpp
--- a/main.cpp Sun Feb 11 08:17:08 2018 +0000
+++ b/main.cpp Mon Feb 12 00:02:50 2018 +0000
@@ -78,10 +78,12 @@
constrain_norm(&foc.vd, &foc.vq, 1.0f, 1.0f, 1.0f + _OVERMODULATION_FACTOR);
+ /*
if (!control.enabled) {
foc.vd = 0.0f;
foc.vq = 0.0f;
}
+ */
float pv = foc.p + read.w / _V_PHASE_SWIZZLE;
float sin_pv = sinf(pv);
@@ -92,14 +94,40 @@
float va, vb, vc, voff;
- invclarke(foc.valpha, foc.vbeta, &va, &vb);
- vc = -va - vb;
+ //invclarke(foc.valpha, foc.vbeta, &va, &vb);
+ //vc = -va - vb;
/*SVPWM*/
- voff = (fminf(va, fminf(vb, vc)) + fmaxf(va, fmaxf(vb, vc)))/2.0f;//don't think about it
- va = va - voff;
- vb = vb - voff;
- vc = vc - voff;
+ //voff = (fminf(va, fminf(vb, vc)) + fmaxf(va, fmaxf(vb, vc)))/2.0f;//don't think about it
+ //va = va - voff;
+ //vb = vb - voff;
+ //vc = vc - voff;
+
+ /*set outputs*/
+ switch (BREMS_mode) {
+ case MODE_CFG:
+ va = 0.0f;
+ vb = 0.0f;
+ vc = 0.0f;
+ break;
+ case MODE_RUN:
+ invclarke(foc.valpha, foc.vbeta, &va, &vb);
+ vc = -va - vb;
+ /*SVPWM*/
+ voff = (fminf(va, fminf(vb, vc)) + fmaxf(va, fmaxf(vb, vc)))/2.0f;//don't think about it
+ va = va - voff;
+ vb = vb - voff;
+ vc = vc - voff;
+ break;
+ case MODE_ZERO:
+ va = 0.9f;
+ vb = -0.9f;
+ vc = -0.9f;
+ break;
+ case MODE_CHR:
+ //i have no idea lol;
+ break;
+ }
/*safety checks, reset integral*/
if (!checks_passed()) {
@@ -121,27 +149,6 @@
break;
}
- /*output to timers*/
- switch (BREMS_mode) {
- case MODE_CFG:
- set_dtc(io.a, 0.5f);
- set_dtc(io.b, 0.5f);
- set_dtc(io.c, 0.5f);
- break;
- case MODE_RUN:
- set_dtc(io.a, 0.5f + 0.5f * va * LINEAR_MODULATION_MAX);
- set_dtc(io.b, 0.5f + 0.5f * vb * LINEAR_MODULATION_MAX);
- set_dtc(io.c, 0.5f + 0.5f * vc * LINEAR_MODULATION_MAX);
- break;
- case MODE_ZERO:
- set_dtc(io.a, 0.95f);
- set_dtc(io.b, 0.05f);
- set_dtc(io.c, 0.05f);
- break;
- case MODE_CHR:
- //i have no idea lol;
- break;
- }
/*log data*/
if (_ENABLE_LOGGING) {
@@ -156,6 +163,15 @@
break;
}
}
+
+ if (!control.enabled) {
+ va = 0.0f; vb = 0.0f; vc = 0.0f;
+ }
+
+ //output to timers
+ set_dtc(io.a, 0.5f + 0.5f * va * LINEAR_MODULATION_MAX);
+ set_dtc(io.b, 0.5f + 0.5f * vb * LINEAR_MODULATION_MAX);
+ set_dtc(io.c, 0.5f + 0.5f * vc * LINEAR_MODULATION_MAX);
}
void slow_loop() {