20.03.2008, 13:20 | #1 |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Скрипт подключения макросов
Арсений, а нельзя ли в ПИД регулятор подключить этакую зону "нечувствительности", чтоб при малых рассогласованиях привод не "дергало" ?
|
24.03.2008, 11:09 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Скрипт подключения макросов
Реализуется в три блока - сравнение (с дельтой нечувствительности), преобразование бул-инт и мультиплексор
Делает следующее: при входе в зону нечувствительности (блок сравнения) мультиплексор начинает подавать вход "датчика" ПИДа его "уставку". Дельта между датчиком и уставкой получается нулевая и ПИД "замирает". Когда датчик "уплывёт" за зону нечувствительности мультиплексор опять переключится и ПИД начнёт регулировать __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.03.2008, 12:36 | #3 | |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Скрипт подключения макросов
Цитата:
Есть ли разница ? Что скажете Ув. Арсений по поводу моего решения (наверняка оно "не очень" ? |
|
24.03.2008, 12:54 | #4 |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Скрипт подключения макросов
Сам себя исправляю (можно предыдущий пост удалить ), так как я делать нельзя потому, как ошибка все равно накапливается в интегральном звене и при переключении моего макроса на вход шарового клапана попадет слишком большое (малое) значение.
Арсений я прав ? |
24.03.2008, 13:40 | #5 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 166
Благодарил(а): 240 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Скрипт подключения макросов
по выходу можно это сделать, только нужно делать не так.
самый простой способ - уменьшить дискретность выхода. по дефолту там макс=1000. для начала можно сделать примерно следущее: (int)(AOUT/10) -> (int)( * 10) - получишь на выходе туже 1000, но с дискретностью = 10(тут может быть любое натуральное число от 1 до 1000 ), а не 1. и уже привод не будет шевелиться на каждый чих регулятора... а можно как написал Арсений, только это довольно геморно - по хорошему надо брать не только саму нейтральную зону, но и скорость входа/выхода в/из неё по всем связанным каналам регулирования. и накручивать на все это дело таймауты.. |
24.03.2008, 15:23 | #6 |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Скрипт подключения макросов
Интересно, это новость для меня - и не думал даже о таком .... Наверное это меня не беспокоило никогда. Да и щас просто жизнь заслонке хочется продлить и не более
Т.е. сначала разделил на 10, сделал выход якобы 100 (разрешение 1%), а затем умножил на то же число ? Т.е. эту дискретность можно выбирать ? Правда ведь - "век живи и век учись", а так же "все гениальное просто". ЗЫ: да Коллега, не зря у Вас на сайте куча книжек умных лежит |
24.03.2008, 19:15 | #7 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 166
Благодарил(а): 240 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Скрипт подключения макросов
Цитата:
можно даже сделать переменную дискретность, привязав её к чему-нить типа скорости изменения... можно сделать её знакозависимой или гистерезистой... можно всего и всякого накрутить - жизни не хватит все варианты опробовать. у Вас какой привод? быстрый/медленный, штоковый/поворотный? я когда макрос для векторного ваял, то обратил внимание, что если сделать 120..200 дискрет на полный вылет, то а) почти не шумит б) точности вполне хватает. и еще, может и ни к чему это говорить - постоянная интегрирования не д.б. меньше времени полного хода. а лучше раза в два больше.. p.s. книжек давно почти не читаю. лень и некогда. к сожаленью. |
|
25.03.2008, 11:06 | #8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Скрипт подключения макросов
Примерно да. Ваш вариант не супер, т.к. не обеспечивает остановку регулятора.
Вариант с изменением шага регулирования примерно подобен вашему варианту, т.е. также не останавливает регулятор, просто арифметически "загрубляет" управление краном. Вообще, как я понимаю и как показали исследования теоретических решений и решений конкурентов, вопрос с зоной нечувствительности не менее больной, чем вопрос с настройкой регуляторов. Т.е. куча частных решений (одни лучше, другие хуже), но универсально-правильного ещё не придумано. По крайней мере в промышленных масштабах. Вообще, правильно настроенный ПИД не требует введения зоны нечувствительности, но не всегда его возможно правильно настроить. То объект не позволяет, то руки Я продумываю алгоритм "зоны". ЛордН правильно упомянул контроль скорости захода в зону и выхода из зоны. Но пока что это всё в теории. Практика пока не показывает приемлемых результатов. Да, кран меньше двигается, но качество регулирования страдает слишком сильно. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
25.03.2008, 14:46 | #9 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 166
Благодарил(а): 240 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Скрипт подключения макросов
Цитата:
простыми методами можно решить лишь частные случаи... |
|
25.03.2008, 21:25 | #10 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 166
Благодарил(а): 240 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Скрипт подключения макросов
p.s. я уже как-то давал ссылку на статейку, где про весовые коэфф-ты и т.п.
так вот, по выполнению условий входа в нейтральную зону с их помощью можно ведь не только тупо размыкать всю ОС, а можно действовать плавно и нежно отключая или просто ослабляя воздействие только конкретного члена - например Д-, как самого шумного, или П-. И- можно не трогать, т.к. пакостей всмысле шума в близи точки равновесия от него ожидать не приходится.. а по условию выхода из зоны, можно также плавненько и нежно включить всё ранее отключеное. |
26.03.2008, 11:23 | #11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Скрипт подключения макросов
Угу, регулятор седьмой версии готов к такому использованию
Д отключать нельзя, т.к. теряется "предвидение" ситуации. Дрейф на датчике ведь может быть и помехой и ложным возмущением и реальным возмущением, на которое _нужно_ реагировать. Загрубив Д мы получаем ошибку начала регулирования в виде заторможенного регулятора. При отношении дедтайма с времени реакции большем, чем 1:4 (а это часто в вентиляции) смысл в использовании дифференциальной составляющей, в принципе, пропадает. Насчёт шума чуть не согласен - правильный П шумит тоже немало. Но с ним уже легче справиться, чем с Д Самые лучшие результаты пока показывает ПИ2Д-регулятор с настраиваемыми частотами среза (типа, разная скорость отработки вверх и вниз). Но настроить 7 связанных параметров, когда не всегда ясно, что нужно крутить - это слишком сильно =) __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
26.03.2008, 12:57 | #12 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 166
Благодарил(а): 240 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Скрипт подключения макросов
не понял, почему семь, а не четыре? вы хотите целиком менять регуляторы в зависимости от знака скорости?
Д отключается только в мертвой зоне, Д отключается только для регулятора, Д остаётся на стрёме чтоб включиться в нужный момент. естественно в моменты переключения по мертвой зоне д.б. будет пройти установление, а как без этого? приходится чем-то жертвовать - либо разгружаем механику привода, либо каждый раз при выходе из зоны ждём установления. p.s. не помню, спрашивал или нет - ПИД регулятор для ваших макросов выполнен по такой Out=(P+I+D)*K или по такой Out+=deltaOut*K записи для регулятора? |
27.03.2008, 10:45 | #13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Скрипт подключения макросов
Там не чистый ПИ2Д: ПИД, ограничение скорости ввер/вниз (это четвёртый, разделённый на 2 параметра по знаку) + 2 параметра, влияющих на остановку первого и второго интеграторов.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 21.01.2013 в 12:00 Причина: Поправил расположение картинки |