Если кратко - девайс меряет ток во время zero-cross и пытается его стабилизировать. А конские формулы заменяются табличками компенсаций. Только диапазон скоростей приходится бить на полосы, и строить свою табличку для каждой полосы. Если речь о серийном производстве - вполне годное решение. Но в нашем случае это плохо, потому что:
Нужен стенд, чтобы снимать показания мотора, причем потребуется давать нагрузку на вал.
Выше требования к входным фильтрам, давящим шумы.
Одна табличка параметров будет работать только для узкого диапазона скоростей.
Отсюда кстати понятно, почему регулятор на U2010B хорошо работать не сможет - там просто таблички компенсаций отсутствуют. Точнее, он будет работать относительно хорошо только на средних и высоких оборотах. И под конкретный движок понадобится настраивать вручную.
Если проводить параллели с регулятором, который мы сейчас сочиняем, то у нас измерения идут не на zero-cross, а непрерывно, и считается свертка. В итоге намного меньше проблем с шумами.
Теперь о “свежих идеях”. Вместо магических табличек, заточенных на конкретный мотор, мы используем автокалибровку. Для скорости нужно знать так называемое “активное сопротивление мотора”, которое включает в себя все возможные потери - от сопротивления обмоток, гистерезиса, вихревых токов, щеток и т.п. Его можно померить, подав на мотор короткий импульс, методология тут. С этим всплыла странность - почему-то на коротком импульсе и на длинном сопротивление разное. Мы пока на это дело просто забили, только добавили табличку для компенсации нелинейности мотора (см. тут).
Но наконец-то нашелся добрый человек, который объяснил, почему активное сопротивление колбасит в зависимости от фазы симистора. Все просто - т.к. синусоида обрезается, возникает много гармоник, и вот от них-то идет до фига потерь в сердечнике. То есть, на самом деле надо действительно померить сопротивление для разных фаз симистора, и потом выбирать нужное, в зависимости от того что подаем на мотор.
Будем пробовать.
Да, на всякий случай напомню, что текущие алгоритмы на бормашинке и так работают достаточно хорошо. Вся тяга к улучшениям - просто от желания понять нюансы лично для себя. Я не объявлял об “официальном релизе” регулятора просто потому что хочется получше все оформить. Но собирать и юзать можно уже сейчас.
Для скорости нужно знать так называемое “активное сопротивление мотора”, которое включает в себя все возможные потери - от сопротивления обмоток, гистерезиса, вихревых токов, щеток и т.п. Его можно померить, подав на мотор короткий импульс
а затем
почему-то на коротком импульсе и на длинном сопротивление разное
я полагаю что на коротком импульсе, при остановленном моторе происходит измерение “Активного” сопротивления
а на длинном “Активного” + некоторой части “Реактивного” т.е. начинает сказываться индуктивность катушек статора и ротора
кроме того на коротком и длинном импульсе могут различаться сопротивления в щеточном узле так как длинный импульс может вызывать некоторое движение, искрение итд
Нет. Реактивное сопротивление не имеет ни какого отношения к делу. Оно отвечает за вращение. А нас интересует та часть, которая отвечает за потери. Я ж написал, что основная причина в гармониках, когда синусоиду режут.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"39c21abc3df9550077797d18":{"_id":"39c21abc3df9550077797d18","hid":349,"name":"Vitaly","nick":"Vitaly","avatar_id":null,"css":""},"4e71d4e23df955007774e5d8":{"_id":"4e71d4e23df955007774e5d8","hid":99365,"name":"alexeykozin","nick":"alexeykozin","avatar_id":null,"css":""}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"5bec73d29970730077118463","hid":23606,"title":"Еще о вариантах бездатчиковых стабилизаторов скорости","html":"<p>Оказывается есть довольно современные разработки: <a href=\"https://www.st.com/resource/en/application_note/cd00003969.pdf\" class=\"link link-ext\" data-nd-link-orig=\"https://www.st.com/resource/en/application_note/cd00003969.pdf\" target=\"_blank\" rel=\"nofollow noopener\">(AN863) Improved sensorless control with the ST62 MCU for universal motor</a>. Кому интересно - почитайте, там довольно красивые картинки и понятные пояснения.</p>\n<p>Если кратко - девайс меряет ток во время zero-cross и пытается его стабилизировать. А конские формулы заменяются табличками компенсаций. Только диапазон скоростей приходится бить на полосы, и строить свою табличку для каждой полосы. Если речь о серийном производстве - вполне годное решение. Но в нашем случае это плохо, потому что:</p>\n<ul>\n<li>Нужен стенд, чтобы снимать показания мотора, причем потребуется давать нагрузку на вал.</li>\n<li>Выше требования к входным фильтрам, давящим шумы.</li>\n<li>Одна табличка параметров будет работать только для узкого диапазона скоростей.</li>\n</ul>\n<p>Отсюда кстати понятно, почему регулятор на U2010B хорошо работать не сможет - там просто таблички компенсаций отсутствуют. Точнее, он будет работать относительно хорошо только на средних и высоких оборотах. И под конкретный движок понадобится настраивать вручную.</p>\n<p>Если проводить параллели с регулятором, который мы сейчас сочиняем, то у нас измерения идут не на zero-cross, а непрерывно, и считается свертка. В итоге намного меньше проблем с шумами.</p>\n<!--cut-->\n<p>Теперь о “свежих идеях”. Вместо магических табличек, заточенных на конкретный мотор, мы используем автокалибровку. Для скорости нужно знать так называемое “активное сопротивление мотора”, которое включает в себя все возможные потери - от сопротивления обмоток, гистерезиса, вихревых токов, щеток и т.п. Его можно померить, подав на мотор короткий импульс, методология <a href=\"https://github.com/speedcontrols/ac_sc_grinder/tree/master/doc#motors-resistance-r-calibration\" class=\"link link-ext\" data-nd-link-orig=\"https://github.com/speedcontrols/ac_sc_grinder/tree/master/doc#motors-resistance-r-calibration\" target=\"_blank\" rel=\"nofollow noopener\">тут</a>. С этим всплыла странность - почему-то на коротком импульсе и на длинном сопротивление разное. Мы пока на это дело просто забили, только добавили табличку для компенсации нелинейности мотора (см. <a href=\"https://github.com/speedcontrols/ac_sc_grinder/tree/master/doc#motors-rpmvolts-response-linearization--scaling\" class=\"link link-ext\" data-nd-link-orig=\"https://github.com/speedcontrols/ac_sc_grinder/tree/master/doc#motors-rpmvolts-response-linearization--scaling\" target=\"_blank\" rel=\"nofollow noopener\">тут</a>).</p>\n<p>Но наконец-то нашелся добрый человек, который объяснил, почему активное сопротивление колбасит в зависимости от фазы симистора. Все просто - т.к. синусоида обрезается, возникает много гармоник, и вот от них-то идет до фига потерь в сердечнике. То есть, на самом деле надо действительно померить сопротивление для разных фаз симистора, и потом выбирать нужное, в зависимости от того что подаем на мотор.</p>\n<p>Будем пробовать.</p>\n<p>Да, на всякий случай напомню, что текущие алгоритмы на бормашинке и так работают достаточно хорошо. Вся тяга к улучшениям - просто от желания понять нюансы лично для себя. Я не объявлял об “официальном релизе” регулятора просто потому что хочется получше все оформить. Но собирать и юзать можно уже сейчас.</p>\n","user":"39c21abc3df9550077797d18","ts":"2018-11-14T19:13:22.000Z","st":1,"cache":{"comment_count":2,"last_comment":"5bed4dbd997073007711c571","last_comment_hid":2,"last_ts":"2018-11-15T10:43:09.000Z","last_user":"39c21abc3df9550077797d18"},"views":685,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}