A na co je to dobre, merit exponencialni potenciometr pomoci PICa ?
Sendy, 12.11.2008 11:50:28
Aby sis to mohl zlogaritmovat a měl tak lineární poťák, ne.
Bez ohledu na to k čemu a proč to potřebuješ, bych ty naměřená data přepočítal uvnitř mikropočítače.
Martin, 12.11.2008 12:12:53
jestli se jedná třeba jenom o 8 bitů, tak je nejjednodušší z hlediska programování (a pro PICa pak i nejrychlejší) dát tam rovnou do programu PICe převodní tabulku, kterou si vytvoříš třeba v excelu...
jo také si myslím, že ta tabulka by to asi spravila... On ten PIC na nějaký moc extra matematický rovnice není...
tomsa, 12.11.2008 16:23:06
Dekuju
. To my uz zatim dost mohlo. Je nekde nejaky srozumitelny navod jak dostat nejakou tu prevodni tabulku do do toho picka? Jde o to, ze mam zmerit nejakou nelinearni funkci a v tom mikroprocesoru ziskat rovnici regrese nahradni zavilosti, kterou musim spocitat pomoci metody nejmensich ctvercu. Nemam zkusenosti s programovanim PICu v cecku, jsem zvykly na assembler, da se to jednoduse naprogramovat v tom assembleru? Opet dekuji za pripadne odpovedi.
aha, to je jasnejsi, to velmi podobne jsem mel na VS take
A ta rovnice kterou to budes prokladat, to bude polynom kteryho radu? Do kolikatyhu radu chces to zkouset? Asi druhyho, ze? Ja mel tenkrat za ukol skoro totez, jen ty data nebyly z potenciometru, ale ze sondy z mereneho polovodicoveho materialu a mely take exponencielni zavislost. Tenkrat jsem si dost vyhral a zkousel jsem to az do polynomu 7.radu a zjistil jsem, ze 4.rad je docela OK. JENZE, a to je podstatny, ja to nedelal na PIC (ty tenkrat neexistovaly). Tenkrat byla jen 8080 a to jeste jen v katalogu
Takze jsem to resil na HP9825A. To se ale neda srovnavat s PICem. Pocitat polynomy na PIC metodou nejmensich ctvercu mi prijde docela odvazny. Bude to chtit dost vykonny PIC, hlavne rychly a bohuzel to nezvladnes tabulkou (kdyz ji mas spocitat) nybrz to tam chce zadat ty rovnice
Ale to by mi zajimalo, jak to fakt bude rychly, ve srovnani s HP9825. A kolik tech namerenych bodu tam budes davat? To je take dost podstatny.... Ja mel tenkrat okolo 40 namerenych bodu. Ono cim vic jich ma, tim presnejsi aproximaci spoctes, jenze to trva dele...
Hele a mas to v cem programovat? A mas ten hardware s PICem?
zdeněk, 12.11.2008 18:30:21
pomocí metody nejmenších čverců jde prokládat i jinou než mocninnou funkcí. Pokud vím že potenciometr je exponanciální tak bych změřené body proložil exponenciálou. Otázkou je výpočetní náročnost a ještě to, jestli by se program do PIC vešel... 2kB Flashe na to podle mě nebudou stačit. Poohlídni se po procesoru s větší pamětí.
no prave, nejenze 2KB bude asi malo, ale obavam se, ze i rychlost nebude nic moc... Kdyz uz to mas resit na nejaym mikroprocesoru, tak bych spis volil nejaky s PC kompatibilni v provedeni PC104A, jen k tomu koupil zdroj, pripojil displej a ten potenciometr a bylo by to... Pak uz jen ten program. Otazka v cem ho jsi schopen napsat ... To neni maly program... at uz bude ten mikropocitac jakykoliv.
zdeněk, 12.11.2008 20:16:12
tomso, ono taky záleží z kolika bodů budeš tu funkci počítat.
tomsa, 12.11.2008 20:26:59
Hodnot jeste nevim kolik bude, ale videl bych to minimalne na ctyri. Mam v palu prokladat to samozrejme exponencielou. Nasel jsem jednoduchy vypocet na tu rovnici regrese, kde se bohuzel take logaritmuje (viz.
http://herodes.feld.cvut.cz/mereni/mnc/mnc.php). Problem je ze PIC mam urceny jaky mam pouzit. Jsem zvykly programovat PIC v assembleru. V cecku sem programoval pouze na PC, PIC nikdy. Jak sem zacal studovat ty aproximacni funkce tak mi doslo, ze to asi nebude nejjednodussi. Pritom mi bylo receno, priznam se, ze to je tema me bakalarky, ze implementace do mikrokontroleru pry neni zas az tak slozita, coz se mi popravde docela prestava zdat, ze by tomu tak melo byt.
Snad to bude realizovatelne. Kazdopadne opet dekuji za veskere prispevky. Tato konzultace je mi velice napomocna.
zdeněk, 12.11.2008 20:34:59
tomso, pokud budeš mít 4 body, máš tu soustavu 4 rovnic o 4 neznámých. Zřejmě budeš muset použít Gaussovu eliminační metodu na její řešení, nebo iterační Jacobiho či Gauss-seidlovu metodu(které ale vždy nekonvergují...)
Se zvyšujícím se počtem bodů bude růst i počet rovnic....
Jinak, pokud použiješ jazyk C, existují matematické knihovny které ti logaritmus spočítají. Ale je nutné mít dostatečnou paměť, zkus alespoň použít PIC s větší pamětí. Při použití operací v plovoucí desetinné čárce se paměť velmi rychle zaplní.
zdeněk, 12.11.2008 20:40:50
beru zpět, to co jsem napsal platí právě jen pro ten polynom, zde je to jednodušší.
Prostě pomocí vztahu (2) a (3) zjistíš a,b. a=k, A=e^b
a hledana funkce je
f(x)=A*e^(kx)
zdeněk, 12.11.2008 20:43:22
to by se mohlo vejít i do těch 2kB když to optimalizuješ. sumy můžeš počítat jako jednoduchý cykl for, jmenovatel a čitatel spočítat celočíselně, v plovoucí desetinné čárce až jejich podíl. A pak tu mocninu.
zdeněk, 12.11.2008 20:47:04
je tu problém s tím logaritmováním y. to zabere hodně místa. Zkus nejdřív napsat program jestli se ti to do programu vejde a pak uvidíš.
zdeněk, 12.11.2008 20:53:04
ještě tu je problém jaký zvolit základ logaritmu. místo e by bylo asi vhodnější zvolit 10.
tomsa, 12.11.2008 21:55:03
Z toho co pises Zdeno, jsem to pochopil tak, ze by bylo vhodnejsi napsat to v C. Jde to vubec realizovat v assembleru nebo mam na assembler zapomenout a napsat to v tom cecku?
zdeněk, 12.11.2008 21:57:55
abys to mohl psát v assembleru, musel by sis sám napsat matematický aparát, nebo použít již někým vytvořený. Bylo by to určitě složitější.
Nechci Vám do toho nijak moc zasahovat, ale PIC, do kterého se to nejspíš sotva vejde v ASM, a ještě Cčkem na to? :)
Nemyslim si, že je zas takovej problém realizovat floating point matiku v ukontroléru, bohužel PIC s 2kB FLASH je opravdu nic moc. Kolik má SRAM? 512B? Kolik MIPS?
S jakou přesností budeš chtít počítat?
tomsa, 12.11.2008 22:59:58
No podle datasheetu by mela mit 128B, kolik ma MIPS nevim a presnost, dejme tomu, na 4 desetinna mista. Jaky PIC by se na to hodil? Nebo spis jakou pamet aspon? Jedine co potrebuju je vystup na dvouradkovy displej, AD prevodnik pro ten potenciometr a teda asi ta dostatecna pamet.
128B je dost málo. Na Cčko je to málo.
Jen informačně, kolik taovýhle PIC přibližně stojí?
4 desetinná by se v tomhle PICu měly dát zvládnout. S PICy nedělám, dělám do ATMELů (x51, AVR), tam s FLASH, SRAM, ani MIPS (rychlost v milionech instrukci za sekundu, AVR ~ 16MIPS/16MHz). Tam by to šlo řešit i v C.
Pokud budeš chtít dělat na tom PICovi v C, co jsem slyšel, tak kompiler C pro PIC není prý zadarmo - dají se najít nějaké jiné, bezplatné certifikované C kompilery pro PIC?
Ivoš, 12.11.2008 23:13:10
asi nejjednodušší a nejrychlejší je vyrobit místo složitých výpočtů převodní tabulku, tj. nasamplovat a hrábnout do tabulky pro výsledek a ten zobrazit...
Já myslím, že se to do toho PICu nevejde. Řešil jsem více méně totéž před mnoha lety coby diplomku. Oni ti zadavatelé, vedoucí diplomek a bakalářek, jsou často trochu více či méně mimo mísu
. Tenkrát po mne chtěli, abych to řešil s MH8080A, která byla v té době jen v katalogu na papíře
Když jsem začal psát rovnice do asembleru 8080 a na logaritmus jsemsi udělal extra program, došlo i vedoucímu diplomky (to byl pán co mu tenkrát bylo 60, mě bylo asi 25 a on pamatoval jen elektronky), že to asi nebude to pravý vořechový a domluvil mi přístup do extra speciální výpočetky na ČVUT, kde byly počítače Hewlett Packard. To byla ehdy přísně sledovaná výpočetka, kam směli jen vybraní jedinci z řad profesorů. Ti normální měli sálový počízač EC1050, který fungoval dle počasí
No a na tom Packardovi 9825 a později 9845 jsem to celé spočítal.
Tak si myslím, že by to Tomsa mohl vyřešit tak, že by to vypočítal na nějaký programovatelný kalkulajdě nebo v Matlabu či čemsi, tím bude mít ty body aproximační rovnicé a napíše je do tabulky do PICu. Jinak to nevidím moc reálně...
tomsa, 13.11.2008 22:04:24
Pekny prispevek kvitko.
Dneska jsem to konzultoval s tim mym vedoucim, jestli na to bude stacit pamet toho PICu a tvrdil mi ze ano. No tak uvidim no. Necham se prekvapit, jak to dopadne. Dekuji za vsechny prispevky a timto beru svuj problem za "vyreseny"
Potreboval jsem predevsim nejake napady a ty jsem dostal. To mi pomuze popojit dopredu. Uz to nejak zvladnu. At se Vam vsem dari.
A jak se ten PIC dozvi tu druhou hodnotu funkcni zavislosti, tj. uhel natoceni toho potenciometru ?
A s jakou presnosti ?
AD prevodnik v PICu je 10 bitovy, to ze 4 hodnot zadanych cca s 1% chybou a vystupnich hodnot zmerenych s rozlisenim 0,1% chcete pocitat nejake nesmysly na 4 desetina mista ???
Jan16, 13.11.2008 22:37:05
danharde, správná připomínka.
>>Tabulka by se asi do picu nevešla, té fakt, ale nic mu nebrání, dát externě třeba 24C128 (iic EEPROMka, kdo to nezná) Tam by se to třeba vešlo. Stají to pár korun, a vejde se tam toho "dost".
Elfag, 14.11.2008 07:52:20
Hodnoty natoceni potaku bude mit zrejme urceny natvrdo a do techto poloh bude potak(potaky) natacet. To ovsem nic nemeni na Danhardove pripomince k presnosti nastaveni polohy potaku,nejde jen o rozliseni snimace ale i o presnost uchyceni potaku v pripravku. 4 desetinna mista jjsou opravdu prehnana.V cem a s cim budes natoceni snimat?
Hill, 14.11.2008 09:30:31
Jestli se má také přitom měřit opakovatelnost nastavení stejného dělicího poměru s identifikací, zda se příslušný úhel nastavoval vždy z jediného směru nebo střídavě zleva a zprava, pak mají smysl tři desetinná místa.
Většinou (i bez vůle běžce na hřídeli), když nastavuješ stejný dělicí poměr a měříš úhel natočení hřídele, zjistíš, že se sice četnost výskytů stejného úhlu natočení dá vyjádřit přibližně Gaussovou křivkou, ale jeho pokles na polovinu je u lineárních potenciometrů v rozsahu 2° u těch lepších, pokud nejde o víceotáčkové, samozřejmě. U logaritmických a exponenciálních se tato tolerance mění s odporem dráhy, t.j. na jednom konci naměříš rozptyl běžně i 8°, na druhém se bude pohybovat v řádu úhlových minut.
V okamžiku, kdy má běžec jakoukoli vůli na hřídeli, je tohle vše k ničemu.
Tak to je otázka, co přesně se očekává, že ten PIC bude dělat. Jestli se očekává, že bude snímat data z potenciometru, uloží naměřená data, třeba 10 hodnot, pak z těch hodnot vypočte koeficienty aproximační rovnice, ať už polynomu n-tého řádu nebo exponenciely, či čehosi .... a ty parametry té aproximační rovnice zobrazí (třeba ještě formou grafu nebo matematický rovnice) na LCD displeji .... no tak to asi není úkol pro PIC....
Mělo by se říct, co přesně se má udělat. Jestli se někde nějak naměří data a vloží se natvrdo do PICu a někde nějak bokem se zjistí koeficienty aproximační rovnice a vloží se také natvrdo do PICu a pak se něco zobrazí.... no tak to leda snad by šlo s tím PICem udělat...
Ještě jedna připomínka, až bude mít ten PIC naměřený data a bude počítat koeficienty aproximační rovnice,tak by měl správně zkusit více rovnic, a pak vzít tu, která bude mít nejlepší výsledky. Ale to už fakt není úkol pro PIC. A také jak tu nadestřel Hill, jestli se má toto používat třeba k ověřování průběhu potenciometrů, teda jak se zajistí opakovatelnost správného natavení úhlů pootočení hřídelky potenciometru?
Bych to spíš viděl, dát k PCčku nějakou desku s AD převodníkem co bude snímat dat z potenciometru a celé to vyřešit v PCčku třeba v Labview ale ne v assembleru v PICu.
Hill, 14.11.2008 15:35:00
Pak už by nezbylo, než snímat polohu hřídelky vhodným encodérem (pro maximální vyloučení chyby doporučuji použít něco s výstupem v Grayově kódu a to přepočítat na stupně, dělají se snímače s rozlišením 2°).
Nějak ten počítač musí ale dostat informaci o poloze a z nich stanovit charakteristiku (nebo odchylku od předepsané). Bez znalosti konkrétního úhlu naměří jen nějaká čísla bez souvislosti.
To jo, ale to uz bude docela solidni profi zarizeni ...
tomsa, 14.11.2008 17:33:30
Uvidime, jak moc to bude presne, podle toho si pak zvolim, zda to budu resit na 4,3, pripadne 2 des. mista. Na netu jsem nasel neco o ppresnych viceotackovych potenciometrech
http://hw.cz/Firemni-clanky/ART412-Viceotackove-odporove-trimry-a-potenciometry..html. A meril bych to teda v zavislosti na poloze jezde, tedy zavislost napeti na uhlu otoceni toho jezde potenciometru. No uvidim praxe mozna bude vypadat nakonec uplne jinak nez si predstavuji.
tomsa, 14.11.2008 17:34:49
Jo a predevsim, MUSIM pouzit PICko, nemuzu pouzit nic jineho. Takze napr. PC neprichazi v uvahu.
budem ti drzet pesti a urcite pak dej vedet jak to dopadlo