спасибо за макрос !!!
спасибо за макрос !!!
0..........1
электронщик до мозга костей и не только
stesel Вы c интегральной составляющей также наступили на те грабли, на которых я отплясывал.(пока не перечитал заново раздел "интегрирование" в справочнике по инженерной математике ).
Интегральная составляющая накапливается в течение довольно длительного времени, 1 периода тактового сигнала недостаточно.
Интегральная составляющая - разность dt/dt1 высчитанная "скользящим окном" за относительно большой промежуток времени, (в своём регуляторе делал накопление за 1,5-3сек).
Ваш интегратор
Интегратор ПИД.JPG
Мой интегратор
Интегратор ПИД_мой.JPG
Смотрите внимательно, накапливается бесконечно долго. Формула I(t) = I(t-1) + Ki * e (t) предусматривает предыдущий результат собственного вычисления. Проверить просто: ставите Kp = 0, Kd=0, Ki>0 соответственно играете значениями уставки и датчика получает результат K(p) будет постоянно увеличиваться или уменьшаться если есть ошибка и остановится на каком-либо значении, если ошибка будет равна нулю (уставка и датчик будут одинаковы). То есть I составляющая как положено будет стремиться свести к нулю рассогласование (ошибку) регулирования.
PS: Алексей Геннадьевич подскажите пожалуйста: как Вы сделали входные переменные (константы) для макроса, те что в параметрах макроса отображаются как kD_mul, SP_mul, kI_mul?
Последний раз редактировалось stesel; 29.02.2016 в 12:30.
я беру с мв110 8а
Вот нашел реализованный мной в макросе ПИД-регулятор на просторах интернета:
http://we.easyelectronics.ru/Theory/...praktikov.html
простой пид без всяких настроек
макрос аварий для пр 200 входа булевые выход целочисленный для предачи выходы аварии для экрана
Да имелось ввиду несколько другое. Например вытаскиваем переменные из макроса, делаем их доступными через свойства макроса, так же как например, у блока BLINK. Но в блок BLINK я могу писать через Write to FB, а вот в макрос не могу (только ручками править), то же самое с Read from FB. В общем задача-то такая: есть макрос с кучкой переменных внутри, в эмуляции всё отлажено и работает, теперь нужно как-то на железе отладить - то есть нужно как отследить изменение переменных внутри макроса. Сетевые переменные внутри макроса OL не дает сделать. В общем нужно что-то думать по поводу отладки в железе. Пока остается добавлять временные выходы из макроса, а затем уже или на дисплей или в сеть для отладки.
Кстати свой макрос ПИД проверил на ПР200, работает как нужно, причешу и выложу последний вариант.