PMSM управление двигателем KUGOO серии S

Автор dv_com, 14 Июнь 2020 в 10:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

dv_com

У меня вопрос к знающим людям. В примере, который я взял за основу таблица синусов выглядит так:
Спойлер
{
      {0,       0,      221},
      {8,       0,      225},
      {17,      0,      229},
      {25,      0,      232},
      {33,      0,      236},
      {42,      0,      239},
      {50,      0,      241},
      {58,      0,      244},
      {66,      0,      246},
      {74,      0,      248},
      {82,      0,      250},
      {90,      0,      252},
      {98,      0,      253},
      {105,     0,      254},
      {113,     0,      254},
      {120,     0,      255},
      {128,     0,      255},
      {135,     0,      255},
      {142,     0,      254},
      {149,     0,      254},
      {155,     0,      253},
      {162,     0,      252},
      {168,     0,      250},
      {174,     0,      248},
      {180,     0,      246},
      {186,     0,      244},
      {192,     0,      241},
      {197,     0,      239},
      {202,     0,      236},
      {207,     0,      232},
      {212,     0,      229},
      {217,     0,      225},
      {221,     0,      221}, //32
      {225,     0,      217},
      {229,     0,      212},
      {232,     0,      207},
      {236,     0,      202},
      {239,     0,      197},
      {241,     0,      192},
      {244,     0,      186},
      {246,     0,      180},
      {248,     0,      174},
      {250,     0,      168},
      {252,     0,      162},
      {253,     0,      155},
      {254,     0,      149},
      {254,     0,      142},
      {255,     0,      135},
      {255,     0,      127},
      {255,     0,      120},
      {254,     0,      113},
      {254,     0,      105},
      {253,     0,      98},
      {252,     0,      90},
      {250,     0,      82},
      {248,     0,      74},
      {246,     0,      66},
      {244,     0,      58},
      {241,     0,      50},
      {239,     0,      42},
      {236,     0,      33},
      {232,     0,      25},
      {229,     0,      17},
      {225,     0,      8},
      {221,     0,      0}, //64
      {225,     8,      0},
      {229,     17,     0},
      {232,     25,     0},
      {236,     33,     0},
      {239,     42,     0},
      {241,     50,     0},
      {244,     58,     0},
      {246,     66,     0},
      {248,     74,     0},
      {250,     82,     0},
      {252,     90,     0},
      {253,     98,     0},
      {254,     105,    0},
      {254,     113,    0},
      {255,     120,    0},
      {255,     127,    0},
      {255,     135,    0},
      {254,     142,    0},
      {254,     149,    0},
      {253,     155,    0},
      {252,     162,    0},
      {250,     168,    0},
      {248,     174,    0},
      {246,     180,    0},
      {244,     186,    0},
      {241,     192,    0},
      {239,     197,    0},
      {236,     202,    0},
      {232,     207,    0},
      {229,     212,    0},
      {225,     217,    0},
      {221,     221,    0}, //96
      {217,     225,    0},
      {212,     229,    0},
      {207,     232,    0},
      {202,     236,    0},
      {197,     239,    0},
      {192,     241,    0},
      {186,     244,    0},
      {180,     246,    0},
      {174,     248,    0},
      {168,     250,    0},
      {162,     252,    0},
      {155,     253,    0},
      {149,     254,    0},
      {142,     254,    0},
      {135,     255,    0},
      {128,     255,    0},
      {120,     255,    0},
      {113,     254,    0},
      {105,     254,    0},
      {98,      253,    0},
      {90,      252,    0},
      {82,      250,    0},
      {74,      248,    0},
      {66,      246,    0},
      {58,      244,    0},
      {50,      241,    0},
      {42,      239,    0},
      {33,      236,    0},
      {25,      232,    0},
      {17,      229,    0},
      {8,       225,    0},
      {0,       221,    0}, //128
      {0,       225,    8},
      {0,       229,    17},
      {0,       232,    25},
      {0,       236,    33},
      {0,       239,    42},
      {0,       241,    50},
      {0,       244,    58},
      {0,       246,    66},
      {0,       248,    74},
      {0,       250,    82},
      {0,       252,    90},
      {0,       253,    98},
      {0,       254,    105},
      {0,       254,    113},
      {0,       255,    120},
      {0,       255,    128},
      {0,       255,    135},
      {0,       254,    142},
      {0,       254,    149},
      {0,       253,    155},
      {0,       252,    162},
      {0,       250,    168},
      {0,       248,    174},
      {0,       246,    180},
      {0,       244,    186},
      {0,       241,    192},
      {0,       239,    197},
      {0,       236,    202},
      {0,       232,    207},
      {0,       229,    212},
      {0,       225,    217},
      {0,       221,    221}, //160
      {0,       217,    225},
      {0,       212,    229},
      {0,       207,    232},
      {0,       202,    236},
      {0,       197,    239},
      {0,       192,    241},
      {0,       186,    244},
      {0,       180,    246},
      {0,       174,    248},
      {0,       168,    250},
      {0,       162,    252},
      {0,       155,    253},
      {0,       149,    254},
      {0,       142,    254},
      {0,       135,    255},
      {0,       128,    255},
      {0,       120,    255},
      {0,       113,    254},
      {0,       105,    254},
      {0,       98,     253},
      {0,       90,     252},
      {0,       82,     250},
      {0,       74,     248},
      {0,       66,     246},
      {0,       58,     244},
      {0,       50,     241},
      {0,       42,     239},
      {0,       33,     236},
      {0,       25,     232},
      {0,       17,     229},
      {0,       8,      225}  //191
}

С ней вообще не удалось запустить. Поградусно двигал точку входа относительно датчиков холла на весь электрический оборот, толку нет - вообще не крутит, на месте дергается.

Почитал форумы, рассчитал свою таблицу:

Спойлер
{
      {128,   17,      239},
      {132,   15,      237},
      {136,   13,      234},
      {140,   12,      232},
      {144,   10,      230},
      {148,   8,      227},
      {152,   7,      224},
      {156,   6,      222},
      {160,   5,      219},
      {165,   3,      216},
      {168,   3,      213},
      {172,   2,      209},
      {176,   1,      206},
      {180,   1,      203},
      {184,   0,      200},
      {188,   0,      196},
      {191,   0,      192}, //16
      {195,   0,      189},
      {198,   0,      185},
      {202,   1,      181},
      {205,   1,      178},
      {208,   2,      174},
      {212,   2,      170},
      {215,   3,      166},
      {218,   4,      162},
      {221,   5,      158},
      {223,   7,      154},
      {226,   8,      150},
      {229,   9,      146},
      {231,   11,      141},
      {234,   13,      137},
      {236,   15,      133},
      {238,   17,      129}, //32
      {240,   19,      125},
      {242,   21,      121},
      {244,   23,      116},
      {245,   26,      112},
      {247,   28,      108},
      {248,   31,      104},
      {250,   34,      100},
      {251,   37,      96},
      {252,   40,      92},
      {253,   43,      88},
      {253,   46,      84},
      {254,   49,      80},
      {254,   53,      76},
      {255,   56,      72},
      {255,   60,      69},
      {255,   63,      65}, //48
      {255,   67,      61},
      {255,   70,      58},
      {254,   74,      54},
      {254,   78,      51},
      {253,   82,      48},
      {253,   86,      45},
      {252,   90,      41},
      {251,   94,      38},
      {250,   98,      35},
      {248,   102,   33},
      {247,   106,   30},
      {245,   110,   27},
      {244,   114,   25},
      {242,   118,   22},
      {240,   123,   20},
      {238,   127,   18}, //64
      {236,   131,   16},
      {234,   135,   14},
      {231,   139,   12},
      {229,   143,   10},
      {226,   148,   9},
      {223,   152,   7},
      {221,   156,   6},
      {218,   160,   5},
      {215,   164,   4},
      {212,   168,   3},
      {208,   172,   2},
      {205,   176,   1},
      {202,   179,   1},
      {198,   183,   0},
      {195,   187,   0},
      {191,   191,   0}, //80
      {188,   194,   0},
      {184,   198,   0},
      {180,   201,   0},
      {176,   205,   1},
      {172,   208,   1},
      {168,   211,   2},
      {165,   214,   3},
      {160,   217,   4},
      {156,   220,   5},
      {152,   223,   6},
      {148,   226,   8},
      {144,   228,   9},
      {140,   231,   11},
      {136,   233,   13},
      {132,   235,   14},
      {128,   238,   16}, //96
      {123,   240,   18},
      {119,   242,   21},
      {115,   243,   23},
      {111,   245,   25},
      {107,   247,   28},
      {103,   248,   31},
      {99,   249,   33},
      {95,   250,   36},
      {90,   252,   39},
      {87,   252,   42},
      {83,   253,   46},
      {79,   254,   49},
      {75,   254,   52},
      {71,   255,   55},
      {67,   255,   59},
      {64,   255,   63}, //112
      {60,   255,   66},
      {57,   255,   70},
      {53,   254,   74},
      {50,   254,   77},
      {47,   253,   81},
      {43,   253,   85},
      {40,   252,   89},
      {37,   251,   93},
      {34,   250,   97},
      {32,   248,   101},
      {29,   247,   105},
      {26,   246,   109},
      {24,   244,   114},
      {21,   242,   118},
      {19,   240,   122},
      {17,   238,   126}, //128
      {15,   236,   130},
      {13,   234,   134},
      {11,   232,   139},
      {10,   229,   143},
      {8,      227,   147},
      {7,      224,   151},
      {5,      221,   155},
      {4,      218,   159},
      {3,      215,   163},
      {2,      212,   167},
      {2,      209,   171},
      {1,      206,   175},
      {1,      202,   179},
      {0,      199,   183},
      {0,      195,   186},
      {0,      192,   190}, //144
      {0,      188,   194},
      {0,      185,   197},
      {1,      181,   201},
      {1,      177,   204},
      {2,      173,   207},
      {2,      169,   210},
      {3,      165,   214},
      {4,      161,   217},
      {5,      157,   220},
      {7,      153,   222},
      {8,      149,   225},
      {10,   145,   228},
      {11,   141,   230},
      {13,   137,   233},
      {15,   132,   235},
      {17,   128,   237}, //160
      {19,   124,   239},
      {21,   120,   241},
      {24,   116,   243},
      {26,   112,   245},
      {29,   107,   246},
      {32,   103,   248},
      {34,   99,      249},
      {37,   95,      250},
      {40,   91,      251},
      {43,   87,      252},
      {47,   83,      253},
      {50,   79,      254},
      {53,   76,      254},
      {57,   72,      255},
      {60,   68,      255},
      {64,   64,      255}, //176
      {67,   61,      255},
      {71,   57,      255},
      {75,   54,      255},
      {79,   50,      254},
      {83,   47,      254},
      {87,   44,      253},
      {90,   41,      252},
      {95,   38,      251},
      {99,   35,      250},
      {103,   32,      249},
      {107,   29,      247},
      {111,   27,      246},
      {115,   24,      244},
      {119,   22,      242},
      {123,   20,      241}, //191

};

С ней хоть и со скрежетом, но крутит.

Вопрос: какая таблица правильней???

edw123

Цитата: dv_com от 17 Июнь 2020 в 10:08
на синусе отлично работает. А то тут форумов начитался - на одних пишут, что моторы BLCD на синусе коряво работают
Это Вы просто по верхам прошлись.

dv_com

Цитата: edw123 от 17 Июнь 2020 в 10:27Это Вы просто по верхам прошлись.
Не все сразу. Потихоньку вникаю)))

Sonar

[user]dv_com[/user], правильней первая таблица, так как она использует модификацию генерации синуса для однополярного источника питания. Вторая таблица - просто три синуса для трех фаз. Надо смотреть, что реально идет на драйвера ключей. Подозреваю, что у вас управление ключами не комплементарное. То есть если для одной фазы задавать значение, скажем, 127 - то в этом случае эта фаза должна 50% времени быть подключена к питанию, а оставшиеся 50% к земле.
Кстати когда я поверхностно изучал работу синуса - мне стало интересно, а что нужно делать с синусом, с ключами, когда газа нет? :) А то получится, что курок газа будет работать и как газ и как тормоз.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

Цитата: Sonar от 17 Июнь 2020 в 10:57правильней первая таблица
Лады, попробую на выходных ее еще покопать на меньшем шаге сдвига... Пока теорию поищу.
Цитата: Sonar от 17 Июнь 2020 в 10:57а что нужно делать с синусом, с ключами, когда газа нет?
Я в этом случае прекращаю генерацию ШИМ, закрываю все ключи. Вполне себе по инерции дальше крутится.

Sonar

Цитата: dv_com от 17 Июнь 2020 в 11:14Я в этом случае прекращаю генерацию ШИМ, закрываю все ключи. Вполне себе по инерции дальше крутится.
А на что в этом случае ориентируетесь? На силу тока потребления или значение уровня газа?
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

Цитата: Sonar от 17 Июнь 2020 в 11:21А на что в этом случае ориентируетесь?
Уровень газа = 0. Если частичный сброс, то на данный момент плавно снижаю обороты, пока они не будут соответствовать текущему уровню газа. Лучше на это время вообще отключать, но пока не решил по какому принципу. А вообще это проблема второго плана, сейчас главное заставить нормально крутиться, а потом уже навесы для различных режимов...

dv_com

Пришел анализатор уровня. Использовал таблицу синусов
Цитата: Sonar от 17 Июнь 2020 в 10:57правильней первая таблица, так как она использует модификацию генерации синуса для однополярного источника питания
. Крутится, но со скрипом https://yadi.sk/d/M8_Ieujfy5wrOg .
Графики с анализатора:
Спойлер

Номера каналов соответствуют расположению транзисторов на схеме сверху вниз. Сигналы снимались со входов 2 и 3 драйверов ключей.
Может кто подскажет - что не так?


Sonar

[user]dv_com[/user], что-то не вижу схемы.. Может я пропустил в этой теме? Пропустил  :facepalm:
В любом случае если брать первых два канала, то они соответствуют верхнему и нижнему плечу одной из фаз. И тут же бросается в глаза, что на тот период, когда на фазе не должно быть ШИМ (должна быть постоянная подтяжка к массе) - одно из плеч фазы в активном состоянии, а на втором присутствует ШИМ. Судя по таблице - такого быть не должно.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

Цитата: Sonar от 28 Июнь 2020 в 14:03что-то не вижу схемы
Схема в 1-м посте. И да, там идут попарно верхние и нижние плечи.

Sonar

[user]dv_com[/user], спасибо, уже нашёл схему.
Я правильно понял, что канал 0 соответствует входу драйвера HIN? Тогда это в корне не верно. Получается попытка постоянной подтяжки (на то время, когда должна быть постоянная подтяжка к массе) фазы двигателя к питанию.
Ну и остается вторая проблема: во время активного состояния верхнего плеча, идет ШИМ сигнал на нижнее плечо, что провоцирует короткое замыкание по питанию. Это если судить по скрину с анализатора.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

[user]Sonar[/user], Да, у меня тоже создалось ощущение, что верхние ключи инверсно работают, а с нижними ерунда какая-то)). Теперь, по крайней мере, картинка есть, буду разбираться с настройками таймера.

dv_com

Вроде разобрался. Перепутал выходы ШИМ верхних и нижних ключей (((. Плюс настройки таймера подкорректировал. На макетной плате получились такие сигналы:
Спойлер
Осталось плату переразвести, да попробовать что в реале получится...

Sonar

[user]dv_com[/user], и опять не верно. В момент, когда шимится верхний ключ - нижний ключ должен шимиться в противофазе верхнему с учетом dead-time.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

Цитата: Sonar от 01 Июль 2020 в 09:17В момент, когда шимится верхний ключ - нижний ключ должен шимиться в противофазе верхнему с учетом dead-time.
Вроде бы для уменьшения потерь допустимо шимить только одно плечо. Утверждать не берусь, насколько это лучше... Впрочем, ладно. Вот ШИМ на оба плеча:
Спойлер

Это с теорией согласуется?

Sonar

[user]dv_com[/user], да, это уже то, что должно быть.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33484km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

dv_com

Цитата: Sonar от 01 Июль 2020 в 12:49да, это уже то, что должно быть.
Спс. Значит на этом пока и остановимся. На выходных проверю.

usup

А никто не пробовал анализировать принцип работы сяоми контролёра?мне кажется можно много полезной инфы узнать