Ну что ж, регулятор с новой платой и прошивкой ожил, но надо уточнять математику. Если выставить ПИД на большой скорости, то там стоит как влитой, но на малых не хватает (просадка, потом восстановление за 2 сек). Если выставлять ПИД на малой скорости - то на малой держит железно, а на большой уже начинает дергаться.
Я не хочу пока фантазировать о причинах такого поведения, т.к. придерживаюсь простого принципа - если есть явно кривой код, то надо его сначала выпрямить, а потом разбираться с остальным. Потому что когда кривых мест несколько, то они накладываются, и разбираться в причинах - не рациональная трата времени. А исправлять еще есть что:
Грубовато сократили формулу вычисления скорости.
Есть накладки с точностью на математике с фиксированной точкой, и погрешность не поддается нормальной оценке.
Остались “магические константы” (зависят от параметров двигателя).
Что можно на эту тему предпринять?
Напарник пообещал за выходные еще раз расписать формулы в Scilab, чтобы быстро подставлять реальные значения тока/напряжения и оценивать погрешность.
Все-таки неплохо бы иметь автокалибровку - мерить сопротивление, индуктивность, коэффициент нормализации скорости, и подбирать коэффициенты ПИД-а.
И тут возник главный вопрос - а как запускать калибровку, чтобы это было удобно. Ставить кнопку - плохой вариант, корпус-то закрытый. Вспомнился подход из электронных сигарет, где для входа в режим настройки надо несколько раз быстро нажать кнопку включения. Повертел бормашинку так-сяк, щелкать тумблером и трекать это дело - не очень удобно, а вот дергать колесико - самое то. Накидал в коде рыбу конечного автомата для отслеживание ручки, вроде вменяемо получилось. Так что автокалибровке быть.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"39c21abc3df9550077797d18":{"_id":"39c21abc3df9550077797d18","hid":349,"name":"Vitaly","nick":"Vitaly","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":"5b6d7b6499707300771181b7","hid":23509,"title":"\"Клавиатура\" для регулятора бормашинки","html":"<p>Ну что ж, регулятор с новой платой и прошивкой ожил, но надо уточнять математику. Если выставить ПИД на большой скорости, то там стоит как влитой, но на малых не хватает (просадка, потом восстановление за 2 сек). Если выставлять ПИД на малой скорости - то на малой держит железно, а на большой уже начинает дергаться.</p>\n<p>Я не хочу пока фантазировать о причинах такого поведения, т.к. придерживаюсь простого принципа - если есть явно кривой код, то надо его сначала выпрямить, а потом разбираться с остальным. Потому что когда кривых мест несколько, то они накладываются, и разбираться в причинах - не рациональная трата времени. А исправлять еще есть что:</p>\n<ul>\n<li>Грубовато сократили формулу вычисления скорости.</li>\n<li>Есть накладки с точностью на математике с фиксированной точкой, и погрешность не поддается нормальной оценке.</li>\n<li>Остались “магические константы” (зависят от параметров двигателя).</li>\n</ul>\n<!--cut-->\n<p>Что можно на эту тему предпринять?</p>\n<ul>\n<li>Напарник пообещал за выходные еще раз расписать формулы в <a href=\"http://www.scilab.org/\" class=\"link link-ext\" data-nd-link-orig=\"http://www.scilab.org/\" target=\"_blank\" rel=\"nofollow noopener\">Scilab</a>, чтобы быстро подставлять реальные значения тока/напряжения и оценивать погрешность.</li>\n<li>Все-таки неплохо бы иметь автокалибровку - мерить сопротивление, индуктивность, коэффициент нормализации скорости, и подбирать коэффициенты ПИД-а.</li>\n</ul>\n<p>И тут возник главный вопрос - а как запускать калибровку, чтобы это было удобно. Ставить кнопку - плохой вариант, корпус-то закрытый. Вспомнился подход из электронных сигарет, где для входа в режим настройки надо несколько раз быстро нажать кнопку включения. Повертел бормашинку так-сяк, щелкать тумблером и трекать это дело - не очень удобно, а вот дергать колесико - самое то. Накидал в коде рыбу конечного автомата для отслеживание ручки, вроде вменяемо получилось. Так что автокалибровке быть.</p>\n","user":"39c21abc3df9550077797d18","ts":"2018-08-10T11:47:48.000Z","st":1,"cache":{"comment_count":0},"views":487,"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"}