Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Регулятор мощности на AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ivainc1789
Сделал регулятор мощности для резистивной нагрузки на ATmega8. В нем применено обычное фазоимпульсное регулирование мощности. В качестве симистора применен BTA12 (STM), подключенный через опторазвязку MOC3023 (схему детекта нуля не содержит). Схема микроконтроллера питается от сети через обычный понижающий транс.
Написал программу управления симистором. В ней полупериод делится на 100 частей и мощность регулируется от 0 до 100 проц с шагом 1 проц. Все работает и регулируется, но есть некое чувство неудовлетворенности/непонимания в вопросе управления симистором.
Дело в том, что на крайних значениях регулятора (примерно от 1 до 7 проц и от 98 до 100) наблюдается нечеткое управление. Связано это скорее не с ошибками в программе, а просто из соображений здравого смысла: на данных значениях симистор включается нечетко из-за нестабильности собсвенных параметров (Igt,Il,Ih) вкупе с некоторой нестабильностью сети.
Анализируя эту проблему, пришел к выводу, что управление симистором может быть осуществлено двумя способами:
1. Импульс на управляющем электроде имеет длительность на все необходимое время включения. Именно так сейчас и сделано. Работает замечательно. Осциллом можно наблюдать как изменяется скважность импульсов в цепи управления. Эффектов нестабильности на крайних значениях мощности абсолютно нет... Казалось бы все хорошо, но исходя из примененнной схемы включения через MOC3023, есть неуверенность... Где-то читал, что такой способ управления приведет к сильному нагреву симистора, однако у меня что-то он чуть теплый при нагрузке в виде лампы 100 Вт. (правда установлен на небольшом радиаторе).
2. Импульс в цепи управления имеет минимально возможную для надежного включения длительность. Тут сразу начинаются проблемы с нестабильным включением на крайних значения при регулировке, что и понятно... Предполагаю, что оптимальная длительность импульса должна быть не менее четверти полупериода.

Применение метода 2 нежелательно еще и по той причине, что этот метод несколько усложняет обработчики прерываний от датчика и по сравнению OCR1A. Если учесть, что в регуляторе хотелось бы реализовать еще и алгоритм Брезенхема, обработчики эти еще более усложнятся... Увеличивается и время реакции...
Итак, вопрос: все же разумно ли будет оставить метод 1 для избежания всяческих проблем?
Dog Pawlowa
Цитата(ivainc1789 @ Mar 21 2008, 12:47) *
Итак, вопрос: все же разумно ли будет оставить метод 1 для избежания всяческих проблем?

Я не понял, что у Вас с гальванической развязкой.
Вопрос тут в источнике питания для этого импульса. Если источник есть, то какие проблемы?
Импульс укорачивают, чтобы снизить требования к балластным конденсатору и резистору в высоковольтной части.
Tanya
Цитата(ivainc1789 @ Mar 21 2008, 11:47) *
Написал программу управления симистором. В ней полупериод делится на 100 частей и мощность регулируется от 0 до 100 проц с шагом 1 проц. Все работает и регулируется, но есть некое чувство неудовлетворенности/непонимания в вопросе управления симистором.
Дело в том, что на крайних значениях регулятора (примерно от 1 до 7 проц и от 98 до 100) наблюдается нечеткое управление. Связано это скорее не с ошибками в программе, а просто из соображений здравого смысла: на данных значениях симистор включается нечетко из-за нестабильности собсвенных параметров (Igt,Il,Ih) вкупе с некоторой нестабильностью сети.
Анализируя эту проблему, пришел к выводу, что управление симистором может быть осуществлено двумя способами:
Итак, вопрос: все же разумно ли будет оставить метод 1 для избежания всяческих проблем?

Вот интересуюсь... Вы полупериод делите на 100 равных частей?
Из наблюдений за жизнью тиристоров... Лучше короткий импульс максимальной амплитуды... Тут трансформатор лучше MOCа. Опять же, Вы не написали, какой у Вас тиристор. Они очень разные. Есть специальные быстрые...
Lexdaw
Коль хорошо работает можете оставить вариант 1.После открывания тиристора ток управления уже через него не течет ир ничего не греет.А грелся бы если подавали ток управления от отдельного источника без развязки.
_Pasha
Можно пойти на компромисс:
"Подтыкать" управление только в зоне неуверенного включения.
А такая разница в зонах слева и справа (7% и 2%) - из-за косинус фи?
xemul
Цитата(ivainc1789 @ Mar 21 2008, 11:47) *
Написал программу управления симистором. В ней полупериод делится на 100 частей и мощность регулируется от 0 до 100 проц с шагом 1 проц.

При равномерной по времени нарезке полупериода синуса ну никаким боком нельзя получить равномерную нарезку мощности.
Нужна ли такая дискретность нарезки?
Цитата
... Предполагаю, что оптимальная длительность импульса должна быть не менее четверти полупериода.

Я включал симистор, работающий на нагреватель, импульсами 100 мкс.
Цитата
Применение метода 2 нежелательно еще и по той причине, что этот метод несколько усложняет обработчики прерываний от датчика и по сравнению OCR1A. Если учесть, что в регуляторе хотелось бы реализовать еще и алгоритм Брезенхема, обработчики эти еще более усложнятся... Увеличивается и время реакции...
Итак, вопрос: все же разумно ли будет оставить метод 1 для избежания всяческих проблем?

Если мудрится термостат, и есть обратная связь по температуре, то, имхо, разумнее построить какой-нибудь П(И)Д-регулятор. Времена там будут измеряться в лучшем случае секундами, и можно будет нарезать синус периодами.
domowoj
Может лучше применить "число-периодное" управление.
10%- один период из 10,
50%- пять периодов из 10,
к тому же меньше помех в сеть и эфир и строгое
соответствие мощности и управления.
Visor
Цитата(ivainc1789 @ Mar 21 2008, 15:47) *
2. Импульс в цепи управления имеет минимально возможную для надежного включения длительность. Тут сразу начинаются проблемы с нестабильным включением на крайних значения при регулировке, что и понятно...

Странно это ... У меня точно такойже симистор работает в диммере много лет и ничего подобного, время открывающего импульса 0,3мс.
И если нагрузка инерционная (нагреватель) действительно лучше регулировать числом периодов.
Dog Pawlowa
Цитата(Visor @ Mar 21 2008, 17:00) *
Странно это ...

Ничего странного. Если ток через тиристор не достиг нужной величины (а с чего ему достичь, если напряжение малое в моменты близкие к нулю), то тиристор опять выключится после окончания импульса.
Potter
Не совсем понятно. А вы отслеживаете точку перехода через 0?.
Visor
Цитата(Dog Pawlowa @ Mar 21 2008, 20:24) *
Ничего странного. Если ток через тиристор не достиг нужной величины (а с чего ему достичь, если напряжение малое в моменты близкие к нулю), то тиристор опять выключится после окончания импульса.

Дак ясное дело, не надо открывать его при напряжении близком к нулю. Мощности потерянной не заметите. Ну а если из принципа хочется, держите управляющий импульс пару мс. smile.gif
Короткий импульс выбирается чтоб снизить энергопотребление схемы.
ivainc1789
Цитата
Я не понял, что у Вас с гальванической развязкой.
Дык написал же: от симистора развязано МОСом, от сети - трансом.

Цитата
Импульс укорачивают, чтобы снизить требования к балластным конденсатору и резистору в высоковольтной части.

Вот это интересно. Рассмотрим пример. Гасящий кондер 1мкФ и резистор 100 Ом 2 Вт. С данной цепи в нагрузку можно "взять" до 50 мА при 5 вольт. Допустим, что нет гальваноразвязки, но симистор управляется в обоих квадрантах с G-. Т.е. ток управления "втекает" в схему управления. О каких требованиях к источнику питания тут речь?
Цитата
Вот интересуюсь... Вы полупериод делите на 100 равных частей?

Ага. На сто равных. Требований к таким же равным "порциям" по мощности нет. Осознаю, что если делить по такому принципу, возможно проблем и не возникло бы, ведь первая же ступень в 1% могла бы оказаться достаточно широкой, чтобы симистор надежно включался...
Цитата
Тут трансформатор лучше MOCа.

Как обычно, очень хотелось бы избежать применения индуктивных элементов. Мне кажется в данном случае это оправданно.
Цитата
А такая разница в зонах слева и справа (7% и 2%) - из-за косинус фи?

Не понял. Нагрузка ведь предполагается резистивной... ИМХО, разница только из-за проблем с включением/выключением симистора...
Цитата
Я включал симистор, работающий на нагреватель, импульсами 100 мкс.

Ну да, у меня тоже включается таким импульсом и даже в 75 мкс. Я даже в прерывании его поначалу формировал, но забраковал такой подход ибо не дело это - для обработчика да и программа еще будет дорабатываться до Брезенхема...
Цитата
Если мудрится термостат...

Неа. Мудрится ширпотреб. В большинстве случаев регулятор яркости и для паяльника. Причем тонкости с регулировкой яркости лампы накаливания типа изменения спектра излучения и т. п. и т. д. особо меня не интересуют - в эти дебри нет потребности/времени/желания влезать...
Цитата
Может лучше применить "число-периодное" управление

Так это и есть алгоритм Брезенхема, если еще эти импульсы равномерно распределить по длине последовательности. И преимущества для инерционных нагрузок неоспоримы. И обязательно сделаю...
Цитата
Странно это ... У меня точно такойже симистор работает в диммере много лет

диммер сами делали? Управление микроконтроллером? Программу сами писали? Тут подробности нужны...
Цитата
Не совсем понятно. А вы отслеживаете точку перехода через 0?.

Естественно. А как иначе предлагаете угол регулировать?
Цитата
Дак ясное дело, не надо открывать его при напряжении близком к нулю. Мощности потерянной не заметите. Ну а если из принципа хочется, держите управляющий импульс пару мс

Вот как раз и вопрос то... Хорошо, когда есть опторазвязка - без проблем можно все реализовать. Но мне тут следом придется сейчас делать практически то же самое только на RC гасящей цепи потому как размеры критичны. Тут также хотелось бы оставить метод управления 1, но непосредственное подведение импульса к упр. электроду несколько настораживает. Поэтому формулирую вопрос: если симистором управлять в квадрантах с G- при подключении к сети без гальваноразвязки возможно ли управление по методу 1 или нет. Я пока не вижу проблем...
Tanya
Цитата(ivainc1789 @ Mar 21 2008, 23:16) *
Ага. На сто равных. Требований к таким же равным "порциям" по мощности нет. Осознаю, что если делить по такому принципу, возможно проблем и не возникло бы, ведь первая же ступень в 1% могла бы оказаться достаточно широкой, чтобы симистор надежно включался...

Так я и знала... Вы создали проблему на пустом месте... Даже если бы Вы разделили так, чтобы интегралы от квадрата синуса по кускам разбиения были равны, это бы ничего реально не дало... Стыдно напоминать такую банальность, что изменение амплитуды напряжения сети на 1 процент даст изменение в мощность в 2 процента... Это на резистивной постоянной нагрузке. Для лампочки намного сложнее... Кроме того, вспомним о точности синхронизации (определения перехода через 0)...
Там, где Вы живете (или мы..) какова стабильность сети?
Tiny
Вопрос для меня интересен т.к. сам делаю тожесамое.
ivainc1789 у меня к вам вопрос. Если вы делаете регулятор яркости, то почему разбиваете на равные части? Так синусоиду равномерно не разбить.
Здесь есть статья с описанием и таблицей (в конце) нарезки синусоиды на периоды для равномерного изменения свечения.
http://www.telesys.ru/electronics/projects.php?do=p131
Интересно было бы посмотреть вашу версию, правда если она на Си, асм не знаю. И еще тут люди стали гадать, как вы реализовали ту или иную деталь. Приложили бы схему.

Тут советовали реализовать регулировку изменением числа периодов. Так ведь в данном случае планируется регулировка яркости лампы. Как свечение лампы к этому отнесется? С паяльником пройдет.
И еще интересно, вы управляете симистором от точки прохождения фазы через ноль каждый полупериод, или только первый, а второй вычисляете?
ivainc1789
Цитата
Стыдно напоминать такую банальность

Как уже было сказано, я не ставил задачу точной регулировки мощности от 1.000 до 100.000 проц. Разделение на сто равных отрезков меня пока вполне устраивает как для регулировки яркости, так и темп паяльника и т. п. нагрузок. Но вас то я послушаю, так как мне интересно и вовсе не стыдно... Но, если возможно, прошу впредь воздерживаться от подобного тона, тем более, что на поставленный в предыдущем сообщении вопрос вы так и не ответили. ИМХО, форумы предназначены для дружественного обмена опытом, а не мерения количеством стыда...
Цитата
Там, где Вы живете (или мы..) какова стабильность сети?

Поясните пожалуйста, что вы имеете ввиду под термином "стабильность сети".
Цитата
ivainc1789 у меня к вам вопрос. Если вы делаете регулятор яркости, то почему разбиваете на равные части?

Потому как пока это меня устраивает. За статью спасибо, гляну... Я сейчас более озабочен управляющей цепью симистора при условии "прямого" питания от сети через RC цепь.
Цитата
И еще тут люди стали гадать, как вы реализовали ту или иную деталь. Приложили бы схему.
Пока бы я не хотел, чтобы дискуссия отвлеклась на обсуждение других деталей. И потому еще раз: как происходит управление симистором в вашей схеме? Какие квадранты? Есть ли развязка?
Цитата
Тут советовали реализовать регулировку изменением числа периодов. Так ведь в данном случае планируется регулировка яркости лампы. Как свечение лампы к этому отнесется? С паяльником пройдет.

Я планировал сделать регулятор двурежимным, с переключением режимов пользователем. Сейчас полностью реализован режим фазоимпульсного управления со ста равными шагами по углу управления. Пока так, потому что не все сразу! Я всегда стараюсь решить задачу полностью и в общем, а потом "отточить" детали...
Цитата
вы управляете симистором от точки прохождения фазы через ноль каждый полупериод

да, конечно, каждый. Все пока сделано как можно проще. И не хотелось бы усложнять до тех пор, пока не будет написана программа для управления по число-периодному регулированию. Как только скелет программы устаканится можно будет вносить коррективы..
_Pasha
Цитата(ivainc1789 @ Mar 22 2008, 11:56) *
Как только скелет программы устаканится можно будет вносить коррективы..


Совет: для фазоимпульсного метода полезно ввести проверку на "правильные" переходы через "0" - не вызванные провалами в сети и прочими катаклизмами smile.gif
domowoj
У меня в регуляторе для коллекторного двигателя при фазо-имп.(с коротким имп) методе упр. симистором тоже наблюдалась нестабильность включения- пришлось сделать число импульсное управление, и все стало ОК.
С бестрансформаторным питанием сх. упр. посложнее - приходится экономить каждый миллиАмпер.
ivainc1789
Цитата
для фазоимпульсного метода полезно ввести проверку на "правильные" переходы через "0" - не вызванные провалами в сети и прочими катаклизмами

Наверное, это хорошая идея. Например, с приходом импульса от датчика и очередном запуске таймера будем анализировать значение таймера в момент прихода следующего импульса от датчика. Если это значение укладывается в допуск (например, +-5 проц.), то импульс датчика признается валидным, иначе игнорируется... Правда это несколько усложняет обработчик прерывания от датчика, ведь именно здесь придется принимать решение. Ох, как я не люблю длинные обработчики... Было время, на столько грабель тут наступал... А по вашему опыту возможна ли такая ситуация, что провал в сети будет настолько характерным, что AVR отреагирует прерыванием? У меня датчик реализован на базе n-p-n транзистора, в базовый делитель включена небольшая емкость как фильтр помех...
Цитата
У меня в регуляторе для коллекторного двигателя

по-моему, для двигателя нельзя использовать "число-периодное" управление. Только фазоимпульсное со спец RC цепью параллельно симистору. Не так ли?
Цитата
С бестрансформаторным питанием сх. упр. посложнее - приходится экономить каждый миллиАмпер

да, но согласно расчетам если питать сх упр через 1мкФ 400V можно взять до 50 мА. А если симистор коммутировать в квадрантах G-, то требования к питанию еще более упрощаются...
domowoj
ivainc1789

Не "число-периодное", а число-импульсное управление - это когда запуск пачкой импульсов,
что-то среднее между 1) и 2) в первом вашем сообщ.
_Pasha
Цитата(ivainc1789 @ Mar 22 2008, 12:31) *
А по вашему опыту возможна ли такая ситуация, что провал в сети будет настолько характерным, что AVR отреагирует прерыванием? У меня датчик реализован на базе n-p-n транзистора, в базовый делитель включена небольшая емкость как фильтр помех...


ИМХО, самые помехоустойчивые - на базе оптрона. Правда, там резистор нужен 10-ваттный 10кОм.
В вашем случае, да и в других - привязка, например, непосредственно к ноге проца через делитель и защита вывода мощным стабилитроном, либо привязка к вторичке трансформатора - случаи неправильных переходов через "0" не исключены.
Я даже скажу так - лучше отбрасывать то, что пришло раньше срока. Рестарт таймера - только если текущий измеряемій интервал >= ожидаемого периода.
Вот и вся премудрость smile.gif
Tanya
Цитата(ivainc1789 @ Mar 22 2008, 10:56) *
Как уже было сказано, я не ставил задачу точной регулировки мощности от 1.000 до 100.000 проц. Разделение на сто равных отрезков меня пока вполне устраивает как для регулировки яркости, так и темп паяльника и т. п. нагрузок. Но вас то я послушаю, так как мне интересно и вовсе не стыдно... Но, если возможно, прошу впредь воздерживаться от подобного тона, тем более, что на поставленный в предыдущем сообщении вопрос вы так и не ответили. ИМХО, форумы предназначены для дружественного обмена опытом, а не мерения количеством стыда...

Поясните пожалуйста, что вы имеете ввиду под термином "стабильность сети".

Я планировал сделать регулятор двурежимным, с переключением режимов пользователем. Сейчас полностью реализован режим фазоимпульсного управления со ста равными шагами по углу управления. Пока так, потому что не все сразу! Я всегда стараюсь решить задачу полностью и в общем, а потом "отточить" детали...

Извините, если обидела Вас... МНЕ, а не ВАМ, стыдно было писать - думалось, что это очевидная вещь... Вот, отбросив стыд...
Интеграл от мощности по самому маленькому Вашему отрезку (начальному или конечному) будет порядка 10^-5 от полного интеграла по полупериоду...
Так что нет НИКАКОГО смысла в таком разбиении и попытках включения тиристора при малых напряжениях (ведь именно тут Вы видите проблему?) на тиристоре. Мне так представляется...
А под стабильностью сети я подразумевала стабильность напряжения, частоты и формы... Думаю, что так многие думают...
Вы бы почетче сформулировали Вашу цель... Паяльник - это одно, а лампочка - совсем другое, лампочки тоже разные бывают... И подходы, соответственно, должны быть разные...
Вот возьмем паяльник... Его инерционность намного больше лампочки, и резать тут синусоиду совсем не нужно... Надо из нее ШИМ делать... Например так...
Пусть Ваша система управления (например, по температуре) выдает требуемую в данный момент мощность... Вы подаете на паяльник полупериод, интегрируете с разными знаками сигнал управления и поданную (измеренную) мощность за этот полупериод, смотрите знак... Если мало, еще полупериод даем, если много, ждете пока накопится управляющий сигнал (интеграл от системы управления). Получится линейно и хорошо...
Для лампочки сложнее... Там, если, например, Вам нужна стабильная температура без пульсаций для фотометрии или пирометрии, то от сети с тиристором ничего хорошего не получится - надо выпрямлять и стабилизировать. Дело в том, что когда Вы открываете тиристор в начале полупериода, Вам неизвестно, что будет дальше - какое будет напряжение и длина полупериода - ведь стабильностью сети не Вы управляете... Это если точно надо...
А почему Вы все это запостили в АВР?
Visor
Цитата(ivainc1789 @ Mar 22 2008, 03:16) *
диммер сами делали? Управление микроконтроллером? Программу сами писали? Тут подробности нужны...

Схему делал сам, ещё на AT90S2313 (оптосимистор BRT12, симистор BTA12), программа тоже моя.
Tiny
Цитата(_Pasha @ Mar 22 2008, 11:11) *
Совет: для фазоимпульсного метода полезно ввести проверку на "правильные" переходы через "0" - не вызванные провалами в сети и прочими катаклизмами smile.gif

Насчет сильных провалов сказать затрудняюсь. А от шумов где-то, кажется в апноутах я скачал пример фильтра для такого случая. Сам пока его не использую, буду его подключать когда все заработает. Файл прилагаю.
Tiny
Цитата(ivainc1789 @ Mar 22 2008, 10:56) *
как происходит управление симистором в вашей схеме? Какие квадранты? Есть ли развязка?

Развязка на выходе у меня есть. Привожу схему. Синхронизацию делал без развязки по рекомендациям ATMEL и с развязкой через оптрон. Эксперементировал.

Цитата
Пока так, потому что не все сразу! Я всегда стараюсь решить задачу полностью и в общем, а потом "отточить" детали...
. Как только скелет программы устаканится можно будет вносить коррективы..

Аналогично. Мне крайне редко удается сделать устройство сразу со всеми деталями. У меня немножко другая специальность, а заниматься приходится. Вот и разбираюсь по кусочкам smile.gif
_Pasha
Цитата(Tanya @ Mar 22 2008, 16:42) *
А под стабильностью сети я подразумевала стабильность напряжения, частоты и формы... Думаю, что так многие думают...

Ну, я думаю, частота здесь ни при чем. Даже с ветрогенераторами и прочей модной энергетикой. smile.gif

Цитата
А почему Вы все это запостили в АВР?

А патамушто программа нужна...
Serjio
Если вы делаете управление двигателем, то требуется модулировать открывающий импульс (подавать пачку импульсов, мы обычно делали 6-10кГц. При более высокой частоте возникает эффект шнурования тока, при котором тиристор на 100А элементарно выходит из строя при подключении лампы на 100Вт), для надежного открытия. Лучше всего управлять импульсными трансформаторми. Кроме этого обязательно должна стоять снабберная цепь из резистора и конденсатора параллельно титристорам (симисторам) для снижения dv/dt. Если требуется для активной нагрузки - проще применить готовые изделия. Можно установить PR1500 в паре с опторезистором. Для двигателя можно применить ис Siemens TCA785 - управляется напряжением, есть вход для модуляции.
IgorSA
взгляните на стандартную схему подключения древнего чипа к145ап2 никакого оптоэлемента! я делал подобное на 2051 по 2 способу и без всяких глюков работает до сих пор! более того при удлинении упр импульса увеличивается потребление и соотв емкость гасящего кондера.
IJAR
Цитата(ivainc1789 @ Mar 21 2008, 11:47) *
Анализируя эту проблему, пришел к выводу, что управление симистором может быть осуществлено двумя способами:
1. Импульс на управляющем электроде имеет длительность на все необходимое время включения. Именно так сейчас и сделано. Работает замечательно. Осциллом можно наблюдать как изменяется скважность импульсов в цепи управления. Эффектов нестабильности на крайних значениях мощности абсолютно нет... Казалось бы все хорошо, но исходя из примененнной схемы включения через MOC3023, есть неуверенность... Где-то читал, что такой способ управления приведет к сильному нагреву симистора, однако у меня что-то он чуть теплый при нагрузке в виде лампы 100 Вт. (правда установлен на небольшом радиаторе).
2. Импульс в цепи управления имеет минимально возможную для надежного включения длительность. Тут сразу начинаются проблемы с нестабильным включением на крайних значения при регулировке, что и понятно... Предполагаю, что оптимальная длительность импульса должна быть не менее четверти полупериода.

Применение метода 2 нежелательно еще и по той причине, что этот метод несколько усложняет обработчики прерываний от датчика и по сравнению OCR1A. Если учесть, что в регуляторе хотелось бы реализовать еще и алгоритм Брезенхема, обработчики эти еще более усложнятся... Увеличивается и время реакции...
Итак, вопрос: все же разумно ли будет оставить метод 1 для избежания всяческих проблем?


Может быть и способ 3. - подавать пачку управляющих импульсов в течении всего времени открытия семистора
Так кстати было реализовано в американском промышленном регуляьоре.
Andrew_k5
Делаю тоже регулятор мощности и тоже на меге8, но решил уйти от переменного напряжения, на постоянке управляю полевым транзистором.
MrYuran
Цитата(Andrew_k5 @ Feb 24 2009, 13:23) *
Делаю тоже регулятор мощности и тоже на меге8, но решил уйти от переменного напряжения, на постоянке управляю полевым транзистором.

А на переменке можно тоже полевиками, только включить встречно-последовательно
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.