PID для чайников или как я его понимаю.
на оригинальность не претендую. пишу для себя и для тех, кто тоже пытается его понять.
вот. помучал я пид и вот что мне подумалось, что P параметр, это то, с каким усилием вы толкаете или тащите за собой координату.
ну вот представьте себе, что вы перемещаете каретку или голову по оси Х, рукой, с постоянным усилием в 1 кг.
на 1 м.
вот, доехали, все хорошо.
но медленно. а что бы быстрее дотолкать, надо толкать ее с усилием, скажем, в 10 кг.
доехали быстро. чуть промазали, но вернулись назад.
а теперь поедем еще быстрее, с силой в 20 кг.
доехали еще быстрее, но промазали. стали возвращаться и опять промазали, и так опять и опять и опять.
вот мораль.
нужно выбирать такое усилие, при котором вы доеде быстро и сможете остановиться в нужной точке.
вот так и подбирается первая буква этой головоломки, P.
запускаете linuxcnc, в нем находите halscope и настраиваете в нем, хотя бы, пару пунктов: axis.1.f-error (вместо 1 поставьте то, что вы сейчас мучиете ) и axis.1.joint-vel-cmd, команда на изменение скорости. она нужна нам для автоматического включения осцилографа.
вот. справа внизу выбираете "source chan", в нашем случае номер 2. ставите rising, если собираетесь ехать вперед или наоборот, если наоборот.
тянете мышкой за бегунок и устанавливаете голубенкую прерывистую линию чуть выше просто голубенькой, что означает, что надо стартовать, как только axis.1.joint-vel-cmd начнет расти. если наоборот, то наоборот. я ставлю так.
теперь устанавливаете свое "усилие" на толкание, то есть P, равное чего-нить, к примеру - 1.
сделать это можно через менюшки в linuxcnc, найдя calibration, найдя в нем закладку с нужным номером оси, установив там нужное значение, а потом еще и нажав кнопку "test", но я делаю проще, в коммандной строке пишу
мне так проще. и история сохраняется, можно вернуться и прочее.
вот, сделано.
теперь в linuxcnc на вкладке MDI или нажав на F5 набираем команду перемещения, скажем, на 20 см быстрым шагом.
когда и если что-то поедет и остановится, что у вас внизу заморгает hal oscil, привлекая внимание, что он чего-то там нарисовал.
и красивая красная линия, axis.1.f-error, красивыми вензелями покажет вам, какая ошибка у вас была.
и, если она скучная и прямая, то не было.
вот.
возвращаемся в начало оси
увеличиваем усилие в пару раз и снова поехали кататься, пока при очередном увеличении у вас не запрыгает красная линия змеей. вот это означает, что вы пожадничали, и нужно понемногу уменьшать.
я пользуюсь двоичным приближением.
и выхожу на какую-то P.
дальше нужно смотреть по поведению нашей славной красной линии.