Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float pickup_obsrver(nonLinObs_TypeDef *p) {
- // Absolute BEMF voltage.
- float Vdq = sqrtf(SQ(*p->Var) + SQ(*p->Vbr));
- float factor = 1.0f / Vdq;
- float x1 = *p->Var * factor;
- float x2 = *p->Vbr * factor;
- float bias = -M_PI_2;
- if(*p->S < 0) {
- bias = -bias;
- Vdq = -Vdq;
- }
- m_rotf(x1, x2, bias, &p->x1, &p->x2);
- float ph = fast_atan2f(p->x2, p->x1);
- if(ph == ph) {
- p->ph = ph;
- p->x1 *= *p->l;
- p->x2 *= *p->l;
- }
- return Vdq;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement