Показано с 1 по 10 из 10

Тема: Запаздывание

  1. #1

    По умолчанию Запаздывание

    Здравствуйте! Стал вопрос реализации компенсатора перекрестной связи в виде реально - дифференцирующего звена с запаздыванием. РДЗ реализовано, никаких проблем нет. Как реализовать программно запаздывание?

  2. #2
    Ельцов Андрей
    Гость

    По умолчанию

    а таймером не подходит TON или TOF?

  3. #3

    По умолчанию

    Таймеры TON, TOF имеют булевский вход и выход! Не подходит! При расчете компенсатора нужно поделить передаточную функцию объекта на передаточную функцию возмущения. При разложении на простейшие дроби в итоге получаем сумму апериодического звена первого порядка и интегро-дифференцирующего. С этим проблем не возникло. Не могу ума приложить, как численными методами в CoDeSys реализовать деление запаздывания одной передаточной функции на другую

  4. #4
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Тяжело мне понять написанное, Но если я правильно понял, то Вам всеже нужно использовать таймер, по срабатыванию выхода таймера(к примеру TOF) вызывайте подрограмму(или функцию(ФБ)) для выполнения вычислений с запаздыванием.

  5. #5

    По умолчанию

    Цитата Сообщение от Petrozja Посмотреть сообщение
    Как реализовать программно запаздывание?
    arrForDelay ARRAY [0..99] OF real; (*Массив для хранения измеренных/расчетных значений*)

    arrForDelay[99]:=rlIzmerenoe;
    а затем раз в секунду делаем вот это:
    for wdCounetr=0 to 98 do
    arrForDelay[wdCounetr]:= arrForDelay[wdCounetr+1];
    end_for;

    arrForDelay[0] -будет содержать значение rlIzmerenoe, 98 сек назад :-)

    таким образом получаем запаздывание на 98 сек, с квантованием по времени в одну секунду. Конечно для дальнейшего дифференцирования и некоторых других хотелок эти данные использовать уже не удастся :-(
    Последний раз редактировалось Gans; 27.02.2011 в 10:10. Причина: очпяти
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  6. #6

    По умолчанию

    Ганс - это примерно то, но нужно сглаживание с помощью тау(временного)-фильтра. В понедельник выложу рабочий пример симулятор объекта с пид регулятором. (Пример будет с двумя звеньями запаздывания) одно можно выпилить.
    Последний раз редактировалось Малышев Олег; 27.02.2011 в 11:26.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  7. #7

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    arrForDelay ARRAY [0..99] OF real; (*Массив для хранения измеренных/расчетных значений*)

    arrForDelay[99]:=rlIzmerenoe;
    а затем раз в секунду делаем вот это:
    for wdCounetr=0 to 98 do
    arrForDelay[wdCounetr]:= arrForDelay[wdCounetr+1];
    end_for;

    arrForDelay[0] -будет содержать значение rlIzmerenoe, 98 сек назад :-)

    таким образом получаем запаздывание на 98 сек, с квантованием по времени в одну секунду. Конечно для дальнейшего дифференцирования и некоторых других хотелок эти данные использовать уже не удастся :-(
    Идея программной реализации запаздывания и заключается в том, что потом его можно юзать, как отдельный элемент и звенья, созданные в CoDeSys, засунуть в одну библиотеку и при тесте программного кода компоновать разные варианты структур управления объектом для отслеживания поведения. При этом стоит вопрос времени цикла обновления данных с целью получить систему управления в реальном времени.

  8. #8
    Пользователь Аватар для Leonid
    Регистрация
    28.03.2009
    Адрес
    Москва
    Сообщений
    35

    По умолчанию

    Мне кажется, лучше не данные во всем массиве перемещать, а менять указатель на текущий индекс массива. Если массив из 256 элементов, а переменная индекса байтовая, то даже за переполнением следить не надо.

  9. #9

    По умолчанию

    А я от вас все жду и жду проекта с запаздыванием... Обещали ведь в понедельник выложить

  10. #10

    По умолчанию Звенья запаздывания...

    Дико извиняюсь - закрутился немного...
    Вложения Вложения
    • Тип файла: txt OBJ.txt (4.1 Кб, Просмотров: 65)
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •