Отговори на тема  [ 73 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
Малко насоки за ОУ, моля 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
zaphod написа:
айде сега, хартуерно умножение. хардуерно умножение ти трябва ако софта искаш да бачка бързо, иначе все тая.

Ми, софта трябва да бачка бързо, особено за бързи и мощни поялници. Иначе имаш клатене около зададената стойност или доста по-мудна реакция от възможното, и с по-големи overshoot-и.

zaphod написа:
пък за тия термо али бали, и без това коригиращия полином трябва да е флоат


Айде бе! При мен що върви с 16 битови числа без значима загуба на информация? Поне до 4-тата си степен. От там нагоре е безсмислено- не правим прецизен термометър а поялник.

zaphod написа:
, а хардуерното умножение си е само за цели числа. така или иначе предполагам никой не пише на асемблер, компилатора си носи библиотеките и ще ти умножава без грижа.

И носейки ги, върши нещата между 10 и 20 пъти по-бавно върху PIC16 спрямо PIC18.

Читав PID иска умножение на поне 16 битови числа. Полинома също перфектно си се решава с 16 битови умножения, поне до към 5-тата си степен. Извън това има още няколко умножения, осреднявания, шифтове и т.н. На PIC24 и PIC32 ще можеш да го направиш дори с 32 битови числа с фиксирана запетая, което за случая е практически неразличимо от от 4 байтови float, а заедно с това ще можеш да му закачиш и графично дисплейче за 10 кинта и всичко ще върви на пушка.

Ако ни трябва да речем 64 краков, във фарнел най-евтината 18-ка струва 2 афро, а най-евтината 16-ка 2.47 афро. За какво да купуваме по-скъпия чип без хардуерно умножение вместо по-евтиния с хардуерно такова?

Не става читаво без това, вЕрвай ми. Тоест става, ама с компромиси - постоянно ще го мислиш дали няма да му свърши паметта, дали няма да му се препълни хардуерния стек (в което 18-ката е в пъти по-добре от 16-ката). 16-ката няма и приоритети на прекъсванията и още куп простотии. За какво? Ако ще правиш компромиси, по-добре си купи китайска станция и се примири с нейните компромиси, защото по-добре няма да стане за нищо повече от средностатистически китайски поялник, сгряващ за 2 минути. Не правим изделие дето ще се произвежда в хиляди бройки, за да броим центовете и евентуално да има смисъл.


Пон Юли 22, 2013 11:22 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
Cekins написа:
+1... В момента работя по един дивайс дето 18-ката е натоварена с около 40-50 (че и повече) флоат сметки на 1/4 секунда. Верно че е на 16 MIPS пуснат ама се справя без никви грижи.


Моето чете ADC-то по 8 пъти, 100 пъти в секунда. После коригира със софтуерен офсет и усилване,после с полином, после коригира за стайна температура, после коригира спрямо съпротивление на нагревателя, и най-накрая пуска PID-а, който освен да умножи по 16 битовите коефициенти, преди това прави 1 усредняване, 2 филтрирания, няколко шифта. През това време клати и LED дисплей със 100 херца, праща и получава данни по USB, управлява 2 потенциометъра и един DAC по i2c. Леко ме съмнява 16-ка да се справи с това, без сериозни заигравки със софтуера. Ама и не виждам смисъл - 18-ката е по-евтина.

Отделно човките с последователна на нагревателя термодовйка заради индуктивността си правят офсети покрай включванията и изключванията, и защото точно там се чете, боря го с wave-shaping. Работата съвсем отече. :)

Не знам. Може и да не съм прав, ама като не гоня производство на хиляди бройки за мен е безсмислено да броя центовете. Даже между PIC18 и PIC32 разликата е 2 евра. А разликата в хардуера и периферията няма база за сравнение въобще. Защо тогава да се тормози човек?


Пон Юли 22, 2013 11:45 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
Абе хора, това е поялник, вие отчитате ли инертността на цялата система, за да нямаш клатене и да имаш добро регулиране с просто линейно регулиране няма да стане, за тоя случай може би най-подходящ е ПИД, фъзи може би но .. аз бих заложил на ПИД.
А иначе горе говорите за мерене съпротивление на термодвойка .. там съпротивление не се мери, тя дава напрежение, което чисто теоретично е малко по кофти като схема, но нищо особенно. При термодвойката по важно е как ше компенсираш студения край и дали изобщо ще го компенсираш, има си много стандартни решения за този случай.

Като цяло LM358 не е инструментален усилвател, не очаквайте чудеса от него, и не с еопитвайте да правите чудеса с него. Има достатъчно прецизни ОУ които бихха свършили работа и са налични, Комет не са единственият доставчик, К1 държат не малко на AD. Но за поялник дори и на майкрочип чопърите ще свършат работа, позлвал съм ги за далеч по прецизни мерения, уж бяха тестови докато дойдат читави АД-та но се оказа че и за там вършат работа.
А за другото .. остава сег за тоя терморегулатор да набутате един АРМ, .. може и едно GPU за да му ползвате QUDA ядрата ... все си мисля че всеки по читав 8 битов процесор ще свърши чудесна работа, хората с 8086 държат совалката права ние тук за един поялник почнахме и хардуерни умножители да търсим, не че няма ама ... Аз лично ако го правя сега бих бучнал силабс, ADC e по читаво от това на пика особенно от към входана част, по спомен май и термодвойка може директно да бучнеш, компенсацията не помня как я правеха .. дано не ме лъже паметта.


Пон Юли 22, 2013 1:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
ToHu написа:
Абе хора, това е поялник, вие отчитате ли инертността на цялата система, за да нямаш клатене и да имаш добро регулиране с просто линейно регулиране няма да стане, за тоя случай може би най-подходящ е ПИД, фъзи може би но .. аз бих заложил на ПИД.
А иначе горе говорите за мерене съпротивление на термодвойка .. там съпротивление не се мери, тя дава напрежение, което чисто теоретично е малко по кофти като схема, но нищо особенно. При термодвойката по важно е как ше компенсираш студения край и дали изобщо ще го компенсираш, има си много стандартни решения за този случай.

При термодвойка последователно на нагревателя се мери и съпротивление. По една или друга причина (ако искаш ще обясня - не е сложно ама е дълго) при меренето на термодвойката, през реотана трябва да се пуснат едни 30-ина микроампера за да може да се засича кога има и кога няма включен реотан. Та, 30-ината микроампера, минали през 9.3-те ома на нагревателя дават допълнителен офсет от 279 микроволта, което за термодвойка, даваща преко сили 9 миливолта при 500 градуса (да, нестандартна термодвойка е), е едни 15 градуса грешка. Та за туй. Отделно като бучнеш 5 ватов поялник в 200 ватова станция трябва да му ограничаваш мощността, иначе ще пукне за 10-ти от секундата. Това става или като знаеш тока през него, четейки го с шънт, или като му знаеш съпротивлението, четейки го през същия канал през който му четеш и температурата.

Инертността си се отчита. Точно заради нея не можеш да регулираш ефективно бърз поялник, мерейки 2 пъти в секунда, и реално използвайки бързината му (150-450 за 2 секунди). Или ще е ужасно бавен, или ще прави огромни офсети.

ToHu написа:
Като цяло LM358 не е инструментален усилвател, не очаквайте чудеса от него, и не с еопитвайте да правите чудеса с него.

LM358 е масов, евтин, работи на 5V еднополюсно захранване и входа му включва нулата. Затова дръпнатите го ползвам масово. Сега, че има до 2 миливолта офсет на входа са подробности. :)

ToHu написа:
Има достатъчно прецизни ОУ които бихха свършили работа и са налични, Комет не са единственият доставчик, К1 държат не малко на AD. Но за поялник дори и на майкрочип чопърите ще свършат работа, позлвал съм ги за далеч по прецизни мерения, уж бяха тестови докато дойдат читави АД-та но се оказа че и за там вършат работа.

AD-тата са по-скъпи. А за поялник какво THD има, и какви смъщения вкарва чопъра е без значение. Пък това се оказва че върши работа. Има и вартианти с Chip Select, което е супер удобно да четеш 20 канала през едно и също ADC например.

ToHu написа:
А за другото .. остава сег за тоя терморегулатор да набутате един АРМ, .. може и едно GPU за да му ползвате QUDA ядрата ... все си мисля че всеки по читав 8 битов процесор ще свърши чудесна работа, хората с 8086 държат совалката права ние тук за един поялник почнахме и хардуерни умножители да търсим, не че няма ама ... Аз лично ако го правя сега бих бучнал силабс, ADC e по читаво от това на пика особенно от към входана част, по спомен май и термодвойка може директно да бучнеш, компенсацията не помня как я правеха .. дано не ме лъже паметта.


Аз пак да питам - защо да вместо PIC18 да ползвам еквивалентния му PIC16, след като е по-скъп? Аз не обичам да ми е трудно, когато няма смисъл. Ще пусна клипче скоро да видиш какво се чете от ADC-то, какво трябва да се извади от него и въобще каква манджа с праз става за да го стабилизираш и изстискаш всичко, дето може

И да, обикновен муден класически поялник с датчик на отделни изводи се терморегулира и от PIC12 съвсем безгрижно. Просто не всички са такива.


Пон Юли 22, 2013 1:45 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
За термидвойката нямах представа че е последоватлено на нагревателя, преди много години съм си правил терморегулатор но термодвойката си беше изведена на отделни кабели, дори не ми е хвумвало че може да е последователно на нагревателя.
А за скоростта, никой не говори за 2 измервания в секунда, но през какво време мериш, и как въртиш алгоритъма за регулиране са отделни неща, ПИД примерно може да си го въртиш с достатъчна бързина на ПИК за да обработваш и доста по бързи процеси, така че не мисля че изобщо от към производителност би следвало да имаш проблеми, въпрос на организация на софтуера. Дали ще е ПИД или друг алгоритъм 5 MIPS са си доста освен ако не правиш нещо много адванс ил нямаш юзер интерфейс който успява да изяде цялото време.
А за това дали да е 18-ка или 16-ка, да въпрос на избор, но в никакъв случай не мисля че наличието на хардуерен умножител е решаващо, а това че го имаш е добър плюс.


Пон Юли 22, 2013 1:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
sparkybg написа:
zaphod написа:
айде сега, хартуерно умножение. хардуерно умножение ти трябва ако софта искаш да бачка бързо, иначе все тая.

Ми, софта трябва да бачка бързо, особено за бързи и мощни поялници. Иначе имаш клатене около зададената стойност или доста по-мудна реакция от възможното, и с по-големи overshoot-и.



Стига бе, колко време на реакция гониш на това нещо? Все пак умножение 16*16 ->32 би трябвало
да става за много под милисекунда (не знам на колко е наклочен тоя пик, ама и на 1 MHz
да е пак си там).

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Юли 22, 2013 3:11 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Малко насоки за ОУ, моля
Sparky, не съм 100% съгласен за 16-ките - недей подценява 16F18xx - въпреки че няма хардуерен умножител и има само 8 нива стек, от към периферия е добре наточен а цените им са доста атрактивни. Въобще даже не се заглеждам към класиките от рода на 877 - те ще са на доизживяване както е и 16F84 - цените им ще продължават да са високи и сигурно даже ще поскъпват. Ще съществуват единствено за това, че има хора които ще ги купуват въпреки високата цена.


Пон Юли 22, 2013 3:12 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
Освен него имаш и стек с 31 нива и приоритети на прекъсванията (които при мен също вършат перфектна работа, понеже и 100 пъти в секунда променям позицията на 2 потенциометъра и един DAC по I2C шината). Малко ли е? И всичкото това за по-малко пари от аналогична 16-ка.

Да не говорим че в единия случай за да свършиш нещо повече от мигалка и то да върви с прилична точност програмата ти заприличва на гъз, а в другия с разлики в 2-3 файла се компилира и върви на всичко от 18-ка до 32-ка.

ПП: В моя случай иде реч за 18F4550(стар, скъп) и 18F45K50(нов евтин и съвместим). 44 кракова 16-ка с USB просто няма.


Пон Юли 22, 2013 3:16 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
8 нива стек, 31 нива, малее, баси пикоборската тема къде се наврях и аз.

:D :D :D

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Юли 22, 2013 3:37 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
tgi написа:
Стига бе, колко време на реакция гониш на това нещо? Все пак умножение 16*16 ->32 би трябвало
да става за много под милисекунда (не знам на колко е наклочен тоя пик, ама и на 1 MHz
да е пак си там).


Цялата работа е там че контролера трябва да контролира всякакъв поялник. Термодвойката се мери при всяко преминаване на мрежовото през нула - тогава се изключва захранването, мери се напрежението (4 четения на ADC-то), това се усреднява. До тук добре, ама поялниците с последователна термодвойка правят индуктивни пикове. Тоест, като четеш температурата след полупериод, в който поялника е бил с включено захранване може да покаже с до 150 градуса по-ниска температура отколкото след полупериод, в който е бил изключен. При това тия пикове и формата им и знака им при 200 градуса и при 400 градуса са различни. И това трябва да се прецени и компенсира. Тоест, от кривата с пиковете да извадиш права без пикове. След тая компенсация (в 2 полупериода меря термодвойката, в други 2 полупериода меря съпротивлението на нагревателя) се добавя компенсация заради съпротивлението на реотана (между 2 и 100 ома), след това се прави корекция с полином от 4-та степен, след това се добавя температурата в студения край. През цялото това време пращам данни по I2C шината за да променям хардуерното усилване и офсет в зависимост от това какво меря, както и тока, който пускам през нагревателя докато меря. Датчика може да е последователен, може самия нагревател да се ползва за датчик (мери се съпротивлението му), а може и да е на отделен канал, с с един общ или със съвсем отделни изводи от тия на нагревателя, пак резистивен или термодвойка. В същото време се мери периода на входното напрежение, температурата в студения край, мрежовото напрежение за да се ограничава мощността при маломощни поялници например.

Така компенсираната температура се усреднява за послените 4 стойности веднъж, от това усреднено се помнят последните 8 стойности, от което се изчислява текущия "тренд" на температурата, за да може поялника да реагира преди достигането на работната точка, а не едва след като я е достигнал.
Отделно същата компенсирана температура се филтрира през софтуерно подобие R/C (X=X-X/4+Xnew), и това се взима за текуща температура.
Тая текуща температура + тренда, усилен с 16 битов коефициент се ползват за да се пусне върху тях PI алгоритъм, отново работещ с 16 битови коефициенти. Резултата от 16 битовия PI e 32 битово дюти, което добавям към текуща променлива и преценявам да пусна ли поялника в следващия период на мрежовото напрежение или не.

В цялата работа има МНОГО умножение (сигурно 20-30 парчета) и много шифтване на междинни резултати.

В ISR-то за цялата работа се търкаля и рефеешването на екрана.

В същото време се търкаля и прост интерфейс, + предаване и приемане на данни по USB за промяната на разни усилвания, коефициенти на PID алгоритъма и прочие полюции.

Да, може да се направи и върху 16-ка вероятно (даже е почти сигурно че може). Ама 18-ката ти дава свободата да мислиш как по-добре да си напишеш програмата, вместо да мислиш как да накараш PID-а да се изпълни за 100 микросекунди вместо за 2 милисекунди.

По алгоритъма, с който "изправям" пиковете може да се напише още доста, ама това иска още умножения и още код, но ще подобри значително преходните процеси, а аз точно това искам, защото има МНОГО криви за управление човки дори от един и същ вид (включително и оригиналната HAKKO), и алтернативите са или по-бавен PID (с по-ниски коефициенти), или големи overshoot-и.

И не на последно място - това всичкото е за забавление. Дали ще сложа PIC16-ка за 2 евра или PIC32-кa за 5 евра практически е без значение. За да направя това на PIC24-ка или PIC32-ка би ми било в пъти по-лесно, просто защото не се съобразявам с хардуер, а само със софтуер. И кода ще е много пъти по-четлив.


Пон Юли 22, 2013 4:07 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
Съгласен съм разбира се, че 2 или 5 афро е без значение в такова нещо.
С тия няколко нива на стек си заникъде, работата е дребна но цялото мазало с
кривата архитектура вместо за мигалки да я мъчиш в много таскове си е безполезно
упражнение.
За по-малко от 5 афро можеш да купиш MCF52211 и с накой-друг ( и може бии само някой) % от ресурса
му да си свършиш работата спокойно и чисто.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Юли 22, 2013 4:18 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
tgi написа:
8 нива стек, 31 нива, малее, баси пикоборската тема къде се наврях и аз.

:D :D :D


8 нива е Call стека на 16-ката и 31 на 18-ката. Софтуерния е на корем, в зависимост от компилатора.

Аз що разправям че осмаците са шит. :) Ма са евтини. За пореден път си обещавам че осмак повече няма да пипна за нещо повече от мигалка, ама за пореден път си знам че дотрябва ли ми 5V микроконтролер с USB ще си наруша обещанието. То се бориш в 90% от времето с архитектурата вместо със същината на програмата ти. PIC24/dsPIC30/33 сравнено с това е като да скочиш от трабантче на Мерцедес, във абсолютно всяко отношение. Ама 5 волтовите нямат USB. PIC32-пак така.

Така или иначе вече си пуснах платките, на които ще може PIC24 или PIC32. :) Пък после може и мултимедиен плеър да набутам в поялника, ако ми дойде музата. :) Ще има мегдан на корем.


Пон Юли 22, 2013 4:22 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
Е с 32 и за плейър ще имаш място, само предвиди колонките къде ще са ти да не
убодеш погрешка поялника в някой от говорителите вместо в онова с навитата пружина :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Юли 22, 2013 4:31 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
То говорител си има и сега. Ама само пищи.


Пон Юли 22, 2013 4:38 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Малко насоки за ОУ, моля
sparkybg написа:
... дотрябва ли ми 5V микроконтролер с USB ...

ATmega32U2
И разни други, стига да те уреждат ценово.


Пон Юли 22, 2013 10:59 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 73 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни