Jump to content
    

Программист электропривод. FOC+HFI для IM, PMSM

Нужен embedder, который понимает и реализовывал управление FOC электромоторами IM, PMSM с применением HFI.  Опыт свой! не кодогенератор из MatLAB или библиотека готовая от texas. 
Проект интересный, буду рад поработать с профи. 

Реализация целочисленная на Cortex-M4. 

Ответы в формате "Я могу"" уходят автоматом в утиль. Просьба раскрывать свой реальный опыт (фото видео графики схемы формулы, что то материальное). 

www.vauag.ru - для связи. 

для тех кто в теме приводов, можете пользоваться :)))       https://gitflic.ru/project/gravl4/vaumototool

Share this post


Link to post
Share on other sites

1 час назад, gravl4 сказал:

для тех кто в теме приводов, можете пользоваться :)))       https://gitflic.ru/project/gravl4/vaumototool

Посмотрели и... на 1-й же странице увидели некий странный код:  :wacko2:

Расчет CS по всем байтам начиная с 0x5533:
uint16_t checksum(uint8_t *ptr, uint16_t len)
{
    uint32_t sum = 0;
    while(len > 0)
    {
        sum += (uint16_t) (((uint32_t)*ptr<<8) |*(ptr+1));
        ptr+=2; //переходим еще на 16 бит
        len-=2; //
    }
    if (len) sum+=((uint32_t)*ptr)<<8;
    while(sum>>16) sum = (uint16_t)sum+(sum>>16);
    return ~((uint16_t)sum); //сдесь мы переобразовали к виду big endian и сделали побитовую инверсию
}

При нечётной len он будет читать из ptr на 2 байта больше длины len, а если len может быть только чётным - содержит бессмысленные строки/операции: "if (len) sum+=((uint32_t)*ptr)<<8;"

Это уже не говоря о неоптимальности этого кода:

  • "sum += (uint16_t) (((uint32_t)*ptr<<8) |*(ptr+1));" на заявленном Cortex-M4 лучше заменить на: "sum += __REV16(*(uint16_t *)ptr);" = 3 команды вместо 4-х
  • "while(sum>>16) sum = (uint16_t)sum+(sum>>16);" лучше заменить на: "sum = (uint16_t)sum + (sum >> 16); sum = (uint16_t)sum + (sum >> 16);" - на CM4 это в сумме = 4 команды - оптимальнее цикла в любом случае.
1 час назад, gravl4 сказал:

Реализация целочисленная на Cortex-M4. 

Ответы в формате "Я могу""

Я могу. :mosking:  И делал. И для этого нужно уметь оптимально писать. Оптимально для целевой платформы (CM4). См.выше.

 

PS: А то объявление напоминает: "Ищеца граматный чилавек, в камманду граматных песаталей на рузкомм языке."  :wink:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...