©2004 Валентин Володин
Сайт Валентина Володина
Главная Статьи Книги и журналы Справочник Программы Ссылки
О себе RytmArc Схемы и описания Резервный форум Разное valvolodin.narod.ru
Калькуляторы Файловый архив Архив форума Форум ГОСТы Измерительные приборы
turbobit mega.co.nz fex.net files.dp.ua ... imageup ... ... ... ...

Power Electronics

Посвящается различным источникам электропитания
Текущее время: 28-03, 23:53

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 29-05, 17:09 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Пытаюсь сделать функцию, зависящую от своего предыдущего значения. Нечто типа F(x[i])=a*x[i]+b*F(x[i-1])
Для запоминания предыдущего значения пытаюсь использовать samplehold. Для примера организую вычисления по счетчику - новое значение функции вычисляется на falling enge, запоминается - на raising edge.
Вычисления делаю в источнике напряжения:

AoldValue value .... oldValue .... samplehold
Bvalue value 0 V=F(....V(oldValue))

Лыжи не едут :(
Срабатывает ровно один цикл: на первом такте samplehold выдает 0, функция отрабатывает, подает на in+ сэмплхолда новое значение, но он его уже не захватывает :(

Что я делаю не так?
Модель: https://drive.google.com/file/d/0B6Dj2R ... sp=sharing

ЗЫ: предположил что собака порылась в том, что "...devices supply no timestep information to the simulation engine by default. That is, they don't look when they are about to change state and make sure there's a timestep close to either side of the state change. The instance parameter tripdt can be set to stipulate a maximum timestep size the simulator takes across state changes."
Добавил сэмплходу tripdt=1n, не помогло :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30-05, 00:54 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
BBR писал(а):
Пытаюсь сделать функцию, зависящую от своего предыдущего значения. Нечто типа F(x[i])=a*x[i]+b*F(x[i-1])

Нечто подобное было сделано в модели цифрового потенциометра при помощи интегрирования и цифрового автомата.

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30-05, 10:46 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
valvol писал(а):
BBR писал(а):
Пытаюсь сделать функцию, зависящую от своего предыдущего значения. Нечто типа F(x[i])=a*x[i]+b*F(x[i-1])

Нечто подобное было сделано в модели цифрового потенциометра при помощи интегрирования и цифрового автомата.


Конечный автомат - наше все :)
Я - ИТшнег, конечным автоматом я могу описать условно все. Уже распробовал! :crazy:
Модель X9312 видел когда примеры использования автомата искал. Отличный пример, очень помог.

Свою задачу я решил. Попутно выяснил несколько любопытных вещей:
1. Если таки сделать "кольцевую зависимость" как я хотел, то в момент когда защелка начинает выдавать новое значение, LTspice честно пытается посчитать переходный процесс: новое значение на выходе сразу вызывает пересчет функции, ее выход поступает на открытый вход защелки, модифицируя выход и - рекурсия. Результирующее значение улетает в мегагигавольты, а дельта времени падает в 1e-17s, на чем LTspice безобразие прекращает сообщением об ошибке :) Лечится промежуточным захватом результата, получается композиция из двух защелок.

2. Если бы у samplehold работал параметр td, то жизнь бы упростилась: можно было бы выдавать результат с задержкой после захвата значения на входе, тогда этой рекурсии бы не возникало. Но td игнорируется :(

3. Почему не работает высланный мной пример - я пока так и не понял. Целевая схема заработала. Видимо дело в "чудесах", которые свойственны цифровым компонентам LTspice: если не сглаживать им фронты, то переходные процессы могут занимать пикосекунды и очень сильно зависят от дискретности времени. Поэтому если не озаботиться сглаживанием фронтов и/или tripdt/tripdv, то все очень нестабильно: компоненты запросто пропускают фронты сигнала, открываются в неожиданное время и все такое. Видимо высланный пример не работает из-за подобной поломки синхронизации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30-05, 15:17 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
BBR писал(а):
3. Почему не работает высланный мной пример...

Резистор с выхода лучше убрать. Похоже он подгружает схему выборки

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30-05, 23:43 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Предварительно доделал то, что затевал: соорудил дискретный PID-контроллер. Работает.
Годной моделью это пока считать конечно нельзя, это прототип: у контроллера недоделан reset, у компоненты для хранения текущего значения сигнала reset есть, но есть потенциальные косяки в синхронизации reset и clock.
Доделаю потом, по мере применения в основной модели, для которой он мне понадобился.

Если интересно, рабочий прототип вот:
https://drive.google.com/drive/folders/0B6Dj2R2zsTSrWTlyQ1BOYkdnc0U?usp=sharing

Как и ожидалось, в режиме PI работает отлично, в режиме PID - осцилляции. Видимо без деривэйтива обойдусь, одним PI.

Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04-06, 17:28 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Валентин, подскажите плз.

Балуюсь PID - все работает ОК, как в книжках написано. Есть одно сомнение.

Текущая моя задача - модель PFM buck. Ton фиксировн по условиям, в зависимости от дьюти (D) меняется Toff.
Я пробовал два варианта управления:
1. повесить PID на управление D: время цикла T вычисляется как Ton/D
2. повесить PID на управление длительностью Toff, при этом T=Ton+Toff

Вариант 1 как-то сходу не заработал, я на него забил и пока больше не возвращался к нему.
Вариант 2 как-то сразу заработал, по Ziegler-Nichols method я достаточно быстро подогнал параметры и удовлетворился.

Однако, во множестве статей упоминается управление именно коэффициентом D, а не прямое управление длительностью периода. Т.е. ровно то, что у меня работать не захотело (хотя я не сильно и пытался). Правда чуть менее чем все статьи эти - про PWM. А у меня PFM.

Вопрос: как лучше поступать, чем правильней рулить - временем периода или отношением?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04-06, 22:03 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
Вариант 1 должен работать. Возможно какие-то проблемы в конкретной реализации. Трудно что-то сказать в отсутствии модели.

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04-06, 23:38 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Видимо мне надо было больше поковыряться с параметрами: размерность приращения D во много раз меньше размерности ошибки. В случае с управлением временем цикла я как-то почти сразу попал в нужный размер коэффициента Kc и потом по методике без затруднений все настроил. А в случае с дьюти надо было видимо дольше масштаб искать....

ОК, попробую. Но любопытство осталось: а что из этих двух вариантов эффективней?
"Зависит от ситуации, попробуй и сам узнаешь", да? :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05-06, 01:36 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
BBR писал(а):
ОК, попробую. Но любопытство осталось: а что из этих двух вариантов эффективней?

Первый вариант линейный, второй нет. В результате, для второго варианта, параметры настройки регулятора будут зависеть от управляющего воздействия (toff).

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05-06, 20:46 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Хочу поделиться.

Натолкнулся на UCC28881. Buck/Flyback. Алгоритм - помесь PFC и Bang-Bang. Ton управляется прямым контролем тока через ключ и обратнопрпорционально длительности Ton в некоторых пределах меняется Toff. И все это сверху маскируется bang-bang-ом, контроллирующим выходное напряжение. Внешне - просто как плинтус!

Начал модель алгоритма (не чипа, чип целиком смоделирую потом). Ниасилил сделать регулятор D: у чипа параметры подогнаны под его мощность и частоту, я стал делать модель под гораздо большую частоту и мощность, не смог в итоге отладить алгоритм под свои параметры. НО! В итоге я сделал еще проще чем у них. И эффективней :)

PFC на основе PWM, маскируемого Bang-Bang-ом:
1. Фиксированный PWM с D=0.5; частота - 400кГц; Ton(min)=240n
2. Два компаратора - один на ток, второй - на Vout. выходы компараторов OR-ятся и отрубают PWM.
И в общем-то это все!

Моя модель имеет параметры: 360->12V, 20A. Индуктор 16u. Два транзистора, deadtime=140n. Максимальная частота PFC около 130k, минимальная около 9.8k.
Играючи справляется с бросками входного напряжения и нагрузки. Спокойно переживает SC в нагрузке (защиту пока не сделал), open loop, отключение входного напряжения.

Симуляция лучше всего считается с Integration Method = Gear, с остальными двумя - изрядно тупит.

Вероятный косяк: при малых нагрузках через индуктор в конце цикла разряда начинает течь обратный ток. Судя по модели это ничему не мешает, транзисторы нормально переключаются, даже выбросы в этом режиме минимальны. Но смутно я подозреваю что это косяк и надо с ним побороться. Именно чтобы такого эффекта не было, у Тексасовцев и сделано управление D...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06-06, 20:51 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
BBR писал(а):
Вероятный косяк: при малых нагрузках через индуктор в конце цикла разряда начинает течь обратный ток. Судя по модели это ничему не мешает, транзисторы нормально переключаются, даже выбросы в этом режиме минимальны. Но смутно я подозреваю что это косяк и надо с ним побороться. Именно чтобы такого эффекта не было, у Тексасовцев и сделано управление D...

Это не косяк, а следствие использования синхронного выпрямителя на M2. Если вместо последнего использовать диод, то ситуация вернется в привычное русло.

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07-06, 08:33 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 02-01, 19:58
Сообщения: 38
Откуда: Пермь
Ага, спасибо!

Я вчера "в литературах" это прочитал и устыдился - мог бы догадаться и сам :blush:
Причем, во всех статьях это подают как штатную "багофичу" синхронного SMPS, которая плоха только лишними потерями на проводимость во время обратного тока. "Сильно сэкономили за счет Rds(on), но немножко обратно потеряли если DCM".

В некоторых статьях предлагают очевидное - просто отрубать мосфет во время обратного тока, идеальный диод. Мне в модели это сделать исключительно просто: всего одна проверка, IF на питании гейта. В практической реализации это конечно дополнительная логика.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07-06, 11:15 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
BBR писал(а):
В практической реализации это конечно дополнительная логика.

ИМХО, для практической реализации не совсем удачно выбраны элементы силовой схемы. Пульсация выходного напряжения и, соответственно, нагрузка на выходной конденсатор фильтра великоваты.

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07-06, 21:18 
Не в сети
Завсегдатай
Аватара пользователя

Зарегистрирован: 14-12, 12:12
Сообщения: 455
Откуда: Горловка.
BBR писал(а):
Балуюсь PID - все работает ОК, как в книжках написано.

На чем реализовали управление?

_________________
Ученье свет,а не ученье-чуть свет и на работу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08-06, 00:19 
Не в сети
Магистр
Аватара пользователя

Зарегистрирован: 06-09, 12:59
Сообщения: 9579
Похоже имеются какие-то проблемы с алгоритмом управления или настройками регулятора, который становится неустойчивым, если ток нагрузки ниже некоторого порога.
К сожалению, для более детального изучения представленной модели пока нет времени.
Не плохо было бы узнать общие требования к проекту. Если это блок питания, то входное и выходное напряжения, ток нагрузки, требования по стабильности, допустимой выходной пульсации и т.п.
Какие аппаратные средства предполагается использовать (цифровой ПИД регулятор или UCC28881)?

_________________
"Древние украли все наши лучшие идеи!"
- Марк Твен.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


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

Перейти:  
Powered by Forumenko © 2006–2014
Русская поддержка phpBB
turbobit mega.co.nz fex.net files.dp.ua ... imageup ... ... ... ...
Рейтинг@Mail.ru