|
|
|
Быстрый ПИД-регулятор, На отрезном станке. Новичёк просит помощи. |
|
|
|
Apr 17 2017, 11:08
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(AlexandrY @ Apr 17 2017, 14:04) Т.е. какой-то KIT на FPGA с линуксом? А Matlab только ради GUI? FPGA - да, только голый. Ethernet при помощи wiznet чипа. Матлаб для отработки алгоритма, для GUI. Потом его не будет. Хотел использовать System Generator в начале, но позже понял, что тут его и негде особо использовать, прошивка простая и так.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Apr 17 2017, 12:59
|
Частый гость
Группа: Участник
Сообщений: 103
Регистрация: 6-04-17
Пользователь №: 96 386
|
Цитата(AlexandrY @ Apr 17 2017, 07:18) А вы, я так вижу, пользуетесь какой-то устаревшей версией VisSim Версия 5.11 - быстрая и легкая, много наработок. Есть Solidthinking Embed 2017 (это дальнейшее развитие Vissim).
|
|
|
|
|
Apr 17 2017, 18:43
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Итак, вот модель PID контроллера подготовленная к кодогенерации для ARM Cortex-M
По модели генерируется код который не использует нигде магические константы типа периода сэмплирования и проч. Все констаны задается явно во входной шине Pars (она же структура Pars в исходниках на C-и) Явно задается и константа периода сэмплирования. Модель представляет параллельную архитектуру PID-а, с клампингом и ограничениями на размах выходного сигнала. Везде тип данных float. На 120 МГц Cortex-M4 с сопроцессором такой PID выполнится за пару микросекунд. Загрузочный файл - PID_model.slx
|
|
|
|
|
Apr 19 2017, 10:40
|
Участник
Группа: Участник
Сообщений: 70
Регистрация: 21-03-08
Пользователь №: 36 105
|
AlexandrY Вопрос по ограничителю скорости роста выходного сигнала. На "ступеньку" откликается "ступенькой". Что же он ограничивает ?
Сообщение отредактировал KatKat - Apr 19 2017, 10:44
|
|
|
|
|
Apr 19 2017, 10:48
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(AlexandrY @ Apr 17 2017, 21:43) На 120 МГц Cortex-M4 с сопроцессором такой PID выполнится за пару микросекунд. 3288 тактов, если быть точнее, на Cortex-M4 с float point сопроцессором. Т.е. на 48 МГц Cortex-M0 без сопроцессора будет где-то 300 мкс Цитата(KatKat @ Apr 19 2017, 13:40) Вопрос по ограничителю скорости роста выходного сигнала. На "ступеньку" откликается "ступенькой". Что же он ограничивает ? Он следит чтобы при переносе этого PID-а на реальный объект всё не пошло бы в разнос. Скажем у вас люфт. Это элемент задержки плюс неправильный отклик. Люфт из любого хорошего PID-а сделает осциллятор. Чтоб бороться с люфтом придумывают всякие эвристические алгоритмы на старте управления. И вот пока вы их не настроили у PID-а надо включать ограничение на скорость.
|
|
|
|
|
Apr 19 2017, 10:56
|
Участник
Группа: Участник
Сообщений: 70
Регистрация: 21-03-08
Пользователь №: 36 105
|
Цитата(AlexandrY @ Apr 19 2017, 13:48) И вот пока вы их не настроили у PID-а надо включать ограничение на скорость. Чем это ограничение отличается от обычного saturation - в чем фишка ?
|
|
|
|
|
Apr 19 2017, 13:59
|
Участник
Группа: Участник
Сообщений: 70
Регистрация: 21-03-08
Пользователь №: 36 105
|
Цитата(AlexandrY @ Apr 19 2017, 16:05) А ограничение скорости просто сделает плавную пилу если управление уйдет в осцилляцию, а чаще даже осцилляция пропадает. Простите, но не могу увидеть ограничение скорости. Взял из модели модуль ограничения скорости. При входном сигнале с амплитудой в пределах границ saturation с частотами 5Гц, 10Гц, 15 Гц выходной сигнал абсолютно совпадает с входным сигналом. Что то не так делаю ?
|
|
|
|
|
Apr 19 2017, 15:31
|
Участник
Группа: Участник
Сообщений: 70
Регистрация: 21-03-08
Пользователь №: 36 105
|
Цитата(AlexandrY @ Apr 19 2017, 17:30) Значит неверно выбран лимит. Ограничение работает если за один интервал сэмплирования входной сигнал вышел за границы лимита. Это модель с дискретным временем, напомню на всякий случай. Могли бы Вы привести графики входа и выхода, где будет видно ограничение скорости. Спасибо
|
|
|
|
|
Apr 20 2017, 07:28
|
Участник
Группа: Участник
Сообщений: 70
Регистрация: 21-03-08
Пользователь №: 36 105
|
Спасибо. Процесс получился для sample time 30ms
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|