Просмотр полной версии : Аналоговый выход пр200, через математическую функцию.
Александр Б.К
07.01.2024, 15:42
Приветствую всех, есть вопрос возможно ли управлять аналоговым выходом пр200 через математическую функцию или что-то похоже на неё, на скриншоте примерно изображено что необходимо.
На оси х время, на оси у выходной сигнал (условно подогнал график к маштабу 10*10 или 100%*100%) сам не программист, поэтому не совсем представляю как возможно такое реализовать силами ПРки и возможно ли вообще. Я предполагаю, что это должен быть функциональный блок и должно работать следующим образом: есть переменная времени t которая задается пользователем и и входной аналоговый сигнал 0...100 (0-10в) и выход который через переменную t плавно согласно функции (т.е нелинейно) снижается до нуля (или почти нуля), т.е при подаче сигнала на вход он на прямую идёт на выход,( хотя это не обязательно, для того чтобы функция была нарастающей нужно x, y поменять местами), а при его снижении выходной сигнал меняется согласно функции.
Возможно мой вопрос не совсем адекватен, но я ни где не смог найти даже что-то подобное : управление аналоговым сигналом через переменную времени.
К вопросу а зачем и для чего: данным способом хотелось бы сделать управление частотным преобразователем, а где: управление поворотом башенного крана.
А для чего такие сложности?
Уставку в частотнике - "Время замедления", никак нельзя использовать?
Александр Б.К
07.01.2024, 16:58
Если бы, все было так просто..., функция замедления в пч линейная, а мне нужна логарифмическая зависимость.
dreambelarus
07.01.2024, 17:11
но я ни где не смог найти даже что-то подобное
Доброго дня. Посмотрите темы про линейно кусочные функции...
https://owen.ru/forum/showthread.php?t=38709&page=2
https://owen.ru/forum/showthread.php?t=37470&p=402194&viewfull=1#post402194
Александр Б.К
07.01.2024, 17:29
Посмотрел, да вроде бы похоже, но это всетаки преобразования, а мне нужна зависимость от времени, т.е даже если линейными кусочками собирать нужна зависимоть от времени. А такого я нигде не нашёл.
Сергей0308
07.01.2024, 17:38
Так если формулой можно нужную функцию записать, какие проблемы? Макросы логарифмов неоднократно встречались на форуме!
dreambelarus
07.01.2024, 17:38
а мне нужна зависимость от времени,
У вас будет на входе функции время??? или вам необходимо чтобы по сигналу на выходе была ваша функция с меняющейся длительностью..."временем"???
Александр Б.К
07.01.2024, 17:47
Так если формулой можно нужную функцию записать, какие проблемы? Макросы логарифмов неоднократно встречались на форуме!
Вот примерно это мне и нужно, только я не программист и самому написать такое слишком сложно пример формулы я в первом сообщении прикрепил.
Александр Б.К
07.01.2024, 17:51
У вас будет на входе функции время??? или вам необходимо чтобы по сигналу на выходе была ваша функция с меняющейся длительностью..."временем"???
Да только время в чистом виде не получится вставиль, т.е нельзя де яблоко умножить на 5 секунд и получить 5 яблок, следовательно время должно преобразовываться в некоторое числовое значение 0...1 или 0...100%
Если бы, все было так просто..., функция замедления в пч линейная, а мне нужна логарифмическая зависимость.
Почти во всех ПЧ есть S образная характеристика замедления, это, конечно, не логарифмическая, но для задачи должна подойти.
Александр Б.К
07.01.2024, 18:13
Да есть, но к сожалению она не подходит, т.к меняет и верх и низ диапазона, но это пол беды, кривая середины диапазона становится вертикальной т.е с очень маленьким периодом ускорения замедления, а в таком варианте управления башеным краном становится невозможно, s кривая придумана для пуск стоп режима, и там работает хорошо, а при управлении бк условно есть: 20, 40, 60, 80, 100 частоты, то приуправлении 0..20 будет хоршо 20...60...80 будет рывок, далее 80...100 плавное ускорение
А попробуйте с равноускоренным разгоном и торможением:
72804
где
72805
Александр Б.К
07.01.2024, 23:58
У меня появилась идея как можно реализовать то что хочу, пока идея в виде каши, но если вдруг кому сильно интересно, то примерно делается таки генератор импульсов - > 16 битный счётчик - > битовая маска итого мы имеем макрос из макросов где в зависимости от частоты, которая зависит от времени можем на выходе получить число от 0 до 65535. Далее берём макрос кусочнолинейной апроксимации по выбрано функции (у меня это логарифмическая ) с канкулятором вычисляется 10 точек. Теперь число с выхода счетчика преобразум в более удобный формат и соединяем с макросом апроксимации и по идее в в зависимости от времени получится искомое, я как соберу все до кучи обязательно отпишусь, если у кого-то есть еще идеи, пишите. Всем спасибо
Сергей0308
08.01.2024, 00:36
Если по максимуму, считайте время в циклах программы. Допустим, что время разгона и торможения равно 5 секундам, время цикла программы равно 10 миллисекунд, тогда диапазон разгона(торможения) будет составлять 500 циклов программы. Подставляйте время на вход вашей формулы, на выходе получится искомый результат, всё!
Только не забудьте выходной диапазон привести к диапазону 0-1, необходимому для подачи из программы на аналоговый выход, много раз показывал на форуме как это можно сделать и для подобных преобразований диапазонов есть макрос в менеджере компонентов!
Я так понимаю, у Вас были трудности с формированием отсчёта времени?
И что это за секретность такая, в смысле, время разгона-торможения неужели тайну составляет?
И, ПЧ для грузоподъёмных механизмов стоят очень дорого, в смысле, боюсь там всё уже предусмотрено. Судя по цене, там, как минимум, встроенный компьютер должен быть!
Я видимо что-то в этой жизни упустил.
Перестал понимать людей.
Ваш первый график, это функция x = log0.63y+5
Если привести ее в нормальный вид, то получится 0.63(x-5) = y
где, если я правильно понял, x - время, y - скорость при торможении
в ST есть функция pow и в Вашем случае:
y := pow(0.63, x - 5);
соответственно разгон:
y := pow(1.59, x - 5);
так как x увеличивается на одну и туже величину (время цикла), то алгоритм вырождается
в равноускоренный, т.е при каждом расчете скорость будет увеличиваться в Accel раз = 1 + 0.59/число отсчетов,
готовый алгоритм Вам представлен выше.
Т.к. 0.63 = 1 / 1.59, то при торможении Вы каждый раз можете уменьшать текущую скорость в те же Accel раз.
И да есть ПЧ с векторным управлением: https://xn--80aqahnfuib9b.xn--p1ai/vfd_ve.html
которые имеют специальные режимы:
72808
заточенные под решение подобных задач
Александр Б.К
08.01.2024, 11:15
Сергей- секретности здесь ни какой нет на самом деле, на словах за 5 минут я не смогу объяснить вам то к чему сам только через 2 года работы сейчас пришёл, наврятли пойменте, но у б.к масса поворачиваемой части стрела консоль, весил от 20 до 40 тонн, попробуйте представить что нужно быстро разогнать и быстро остановить такую массу, и прикиньте какой мощный импульс инерции у этого всего..., да есть такая вещь как векторное управление пч и сами пч с векторнвм управлением, 1) это очень дорого 2)невезде есть возможность установить энкодер на вал двигателя 3) векторное управление вещь крайне универсальная и на пример для одного б.к делаются одни настройки, которые по сути можно сэмитировать путем логарифмического управления, то чем здесь я занялся. 4) мне пока не полвласна настройка векторного управления так как не совсем понятно процесы которые происходят с пч и что как работает и объяснения или инструкции на этот счёт нигде нет. По функции pow очень вероятно это то что я искал просто математикой много лет не общался и такие школьные моменты уже забыл... Спасибо большое за подсказку надо теперь попробовать её оформить в функциональный блок, и возможно все будет совсем просто, спасибо большое.
Послушайте, для башенного крана возьмите ПЛК!
Не надо экономить на спичках при таком уровне ответственности и стоимости основного оборудования!
Александр Б.К
25.01.2024, 07:35
добрый день всем, как обещал ранее про управление аналоговым выходом, все получилось, огромное спасибо пользователям EFrol, kondor3000, они помогли с основой и воплотили то что было изначально задумано. в файле выкладываю несколько готовых функций, одна степенная, другая логарифмическая, логарифмическая вероятно доведена до совершенства и может работать с любыми числами (честно не проверял, но в том диапазоне который мне нужен работает замечательно), свою программу не выкладываю , потому что она сильно замороченная и сходу не факт что получится разобраться стороннему человеку. если вам нужно подобрать свою криволинейную функцию, калькулятор mathway.com вам в помощь, от себя рекомендую графики умещать в масштаб X/Y 100*100.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot