Wat je wil is echt pittig! Het system is van nature al instabiel.

Een simpel regullusje zal zeker niet voldoende zijn om het geheel stabiel te houden en zeker niet om ook nog eens aan aanvullende eisen te voldoen, bv zero steady-state error zodat je systeem niet gaat driften.

Ik zou me persoonlijk eerst eens wat meer verdiepen in het modelleren van het probleem (bv: als ik met zo'n versnelling accelereer, wat is dan de positie van het gewicht na een bepaalde tijd?).

Als je een model hebt, kun je je regelsysteem testen in een simulatie. Matlab kan, maar je kunt ook zelf iets bakken. Is voor zo'n model nog wel te doen.

Matlab heeft ook nog leuke functies voor de serieele poort, in de, ik geloof, realtime toolbox, je kunt dan je controller in matlab bouwen en dan via de seriele poort een systeem (b.v. je balancing robot) aansturen.

Voordeel is dat je dan geen controller in je hardware hoeft te bakken en dan alleen met een aantal ad converters en een simpele uC terecht kunt. Scheelt weer een pak in je investering, Matlab trek je gewoon van een torrent site of je koopt een studenten versie.

Ik geloof dat er ook zo iets is voor de usb poort, alleen weet ik niet pcies hoe dat werkt.

Een systeem met alleen een potmeter en een gewichtje werkt niet omdat je met de potmeter versnelling en zwaartekracht tegelijk meet.

Op 29 juni 2006 18:55:33 schreef Calv:
Een systeem met alleen een potmeter en een gewichtje werkt niet omdat je met de potmeter versnelling en zwaartekracht tegelijk meet.

potmeter zal ook te traagzijn denk ik, en die zal uitzwaaien.

maxim heeft ictjes die versnelling kan meten, weet alleen typenr effe niet meer

Low-Cost 2 g Dual-Axis Accelerometer
with Duty Cycle Output

ADXL202E*

http://www.analog.com/UploadedFiles/Data_Sheets/53728567227477ADXL202E…

het was dus analog en niet maxim :+

Wou even iets zeggen tegen surge me
op het volgende:

Reken er wel op dat je iets dsp achtigs zult moeten gebruiken (dsPIC, TMS320C2000 van texas o.i.d.)

Dit hangt vanaf wat je bemonsteringsfrequentie moet zijn. Als je te maken hebt met relatief langzaam proces, hoef je dit niet persee met een dsp te realizeren. Dan volstaat een microcontroller met AD-converter ook, zolang er maar genoeg tijd zit tussen de bemonsteringen. Dan kun je in het s-domein een regelsysteem ontwerpen, met bijv. Simulink van Matlab en die vervolgens in z-domein (in discreet systeem) omzetten en voila, het is klaar.

Natuurlijk is het niet zo gedaan als gezegd, want je moet het gedrag van het motortje kunnen bepalen om de gewenste regelaar te ontwerpen.

groetjes ;)

Je hebt helemaal gelijk, zie mijn post een paar platsen hoger over matlab. Ik denk echter wel dat je het het makkelijkst kunt doen met een DSP omdat die mooie functies heeft die je in een maal een hoop werk uit handen nemen (vermenigvuldingen en optellen in een cycle, ofte MAC)

Dus zolang je langzaam samplet gaat het idd maar ik denk dat TS al redelijk snel meer zal willen, dan kun je beter even door studeren en er gelijk een groot en goed project van maken, dan als het af is weer opnieuw te moeten beginnen.

Kan iemand mij uitleggen waarom regeltechnici nou altijd de meest belachelijke loop-tijden nodig achtten???

Je hoeft toch niet 500 keer per seconde de snelheid van de motor in zo'n robot bijregelen?

En ook dat trekt een simpel controllertje nog steeds vrij prima. Tenzij je een idioot ingewikkelde regelaar bedenkt natuurlijk.

[Bericht gewijzigd door dexter op ]

ik wil van de zomer wel eens wat gaan pielen.....

maar ja je hebt wel een val versneling van 9,8 m/s...en is denk als je al op 90% van de hoogte bend je al een prbleem hebt. stel ding is 50 cm, 5cm max speling (ding valt natuurlijk niet recht maar rond) over 5 cm vallen doe je 0,005 dus je heb behoorlijk wat regel/stuur momenten nodig per seconden

precies, als hij 1 keer begint met kantelen gaat het vrij snel.
Maar zoals er gesproken werd over een potmeter, als je en meerslagspot andersom gebruikt, dan kun je nauwkeuriger uitlezen en eerder bijsturen.

Op 29 juni 2006 22:28:05 schreef remy:
precies, als hij 1 keer begint met kantelen gaat het vrij snel.
Maar zoals er gesproken werd over een potmeter, als je en meerslagspot andersom gebruikt, dan kun je nauwkeuriger uitlezen en eerder bijsturen.

die zie ik niet helemaal...toch niet direct maar met tandwiel overbrenging

Hoi surge me,

je hebt gelijk dat het met een echte dsp een stuk eenvoudiger vanwege de speciale functies die een normale uC niet heeft. Maar aangezien niet iedereen een dsp-kit heeft waarmee je ook meerdere dsp's kan flashen, is het toch makkelijker haalbaar voor een hobbyist door met een gewone uC te programmeren.

Een echte dsp-programmer is ook een stuk duurder en niet echt betaalbaar voor een arme hobbyist :p

Op 29 juni 2006 22:56:53 schreef Nordin:
Hoi surge me,

je hebt gelijk dat het met een echte dsp een stuk eenvoudiger vanwege de speciale functies die een normale uC niet heeft. Maar aangezien niet iedereen een dsp-kit heeft waarmee je ook meerdere dsp's kan flashen, is het toch makkelijker haalbaar voor een hobbyist door met een gewone uC te programmeren.

Een echte dsp-programmer is ook een stuk duurder en niet echt betaalbaar voor een arme hobbyist :p

Veel DSP's kun je via Jtag programeren. De programmer is als het veel is 5 euro, het duurste is nog de paralele poort connector, daarnaast alleen een hoop weerstanden en ene logica chip.

En waarom zou je meerdere dsps willen flashen?
Ene is toch al wel genoeg neem ik aan voor een probleem als de omgekeerde broomstick.

Voor bijv. TI kun je code composer studio gebruiken (als je het een beetje handig speelt kun je die wel ergens van daan trekken als je snapt wat ik bedoel.)

Mocht je niet aan een DSP met JTAG kunnen komen dan is het altijd mogelijk om het in een FPGA te plempen, en dan DSP libs van de producent (ALTERA, XILINX) te gebruiken.
Die kun je daisy chainen mocht je er meerder nodig hebben, dan programeren via JTAG is een fluitje van een cent.

Het maakt het leven toch een stuk makkelijker dan een PIC gebruiken (was het niet Pruts In Chipje volgens Free elektron?)

Hoi surge me,

Bedankt voor je reaktie, ik heb een tijd geleden rondgekeken voor een dsp-kit, ik vond ze allemaal een beetje prijzig. De meesten zijn 150 euro of duurder en dat kan ik niet veroorloven. Als jij goeie tips kent, of een goedkoop ontwikkelkit, dan wil ik het wel graag weten.

Met een fpga is het ook niet de goedkoopste, kijk bijv. naar elektuur, die verkoopt alles duur, elektuur is gewoon met serieus buiseness bezig, geen ruimte voor arme hobbiyisten (en ook niet voor arme ingenieurs zoals ik).

Maar als met een jtag en een simpel schakeling al een programmer hebt voor dsp, dan wil ik er meer van weten ;)

Ik heb zo een jtag-interface die ik gebruik voor de msp430f2111, een eenvoudige uC die op school ooit had gekocht. Misschien is de rest nog alleen een dsp....?

Misschien iets voor Elektuur om met een goedkope dsp-kit te komen, maar dan NIET voor belachelijke prijzen!!

Op 29 juni 2006 18:55:33 schreef Calv:
Een systeem met alleen een potmeter en een gewichtje werkt niet omdat je met de potmeter versnelling en zwaartekracht tegelijk meet.

Versnelling en (resultaat) zwaartekracht zijn eigenlijk dezelfde grootheden welke vectorieel kunnen worden samengevoegd???

Op 29 juni 2006 18:57:01 schreef Mr Soldeer:
[...]

potmeter zal ook te traagzijn denk ik, en die zal uitzwaaien.

maxim heeft ictjes die versnelling kan meten, weet alleen typenr effe niet meer

Was dat niet juist de kunst van de regeltechniek...compenseren en regelen met of zonder compleet wiskundig model.

Ook een versnellingsmeter heeft een bepaalde tijdsconstante welke je in het model kan meenemen net zoals de overdrachtsfunctie van de potmeter.

Op 29 juni 2006 20:40:49 schreef surge_me:
Je hebt helemaal gelijk, zie mijn post een paar platsen hoger over matlab. Ik denk echter wel dat je het het makkelijkst kunt doen met een DSP omdat die mooie functies heeft die je in een maal een hoop werk uit handen nemen (vermenigvuldingen en optellen in een cycle, ofte MAC)

Dus zolang je langzaam samplet gaat het idd maar ik denk dat TS al redelijk snel meer zal willen, dan kun je beter even door studeren en er gelijk een groot en goed project van maken, dan als het af is weer opnieuw te moeten beginnen.

Makkelijk hangt af van je ontwikkeltools.
Matlab, LabView of Winfact kan dan inderdaad makkelijk werken inc. harware implementatie of emulatie.
Snelheid is een heel ander verhaal.

System modeling for Dummies.

Kijk naar het proces. Laat me het anders uitleggen.

Pak een bezemsteel vertical up in je handpalm en probeer deze in evenwicht te houden.....

Zaag hem vervolgens in twee stukken en probeer het zelfde met een van de twee helften te doen.

Zaag een van de twee delen nog maals in tweeen (je hebt nu eem 1/4 steel) Doe het experiment nog eens.

Beschrijf je ervaringen!

Op 29 juni 2006 22:16:01 schreef dexter:
Kan iemand mij uitleggen waarom regeltechnici nou altijd de meest belachelijke loop-tijden nodig achtten???

Je hoeft toch niet 500 keer per seconde de snelheid van de motor in zo'n robot bijregelen?

En ook dat trekt een simpel controllertje nog steeds vrij prima. Tenzij je een idioot ingewikkelde regelaar bedenkt natuurlijk.

Ik ben de theorie een beetje kwijt, maar de sample frequentie heeft een grote invloed op je regel gedrag. Denk maar eens na: Mischien is het voor de robot genoeg dat de snelheid 1x per seconde wordt bij geregeld, echter de 'hoeveelheid' bijregeling wordt via een PID algoritme uitgerekend en hoe langer de tijd tussen de samples zit, hoe meer de regelaar moet bijregelen met kans op grote doorschieten van het setpoint... met alle gevolgen van dien.
Het is altijd beter in kleine stapjes bij te regelen dan in grote stappen.

Op 29 juni 2006 22:16:01 schreef dexter:
Kan iemand mij uitleggen waarom regeltechnici nou altijd de meest belachelijke loop-tijden nodig achtten???

Je hoeft toch niet 500 keer per seconde de snelheid van de motor in zo'n robot bijregelen?

En ook dat trekt een simpel controllertje nog steeds vrij prima. Tenzij je een idioot ingewikkelde regelaar bedenkt natuurlijk.

Als eerste moet je niet denken dat er bijvootbaat een idioot ingewikkelde regelaar bedacht gaat worden.

Het proces beplaald het type regelaar.
Een balancing robot (inverted pendulum) of een zwevende bal (magnetic levitation)zijn qua complexiteit volledig verschillend maar je zal je verbazen hoe simpel de regelaar kan zijn (zonder jou belachelijke looptijden)

In bovengenoemde voorbeelden zal die looptijd waarmee jij wellicht bedoeld:

[1] Response tijd
[2] Sample tijd

Zeer gevarieerd zijn.

Uitbreiding system modeling voor dummies:

Inverted pendulum:

[1]Lange aluminium as
[2]Korte stalen as

Magnetic levitation:
[1] Grote aluminium bal
[2] Kleine loden bal

(Opletten a.u.b.)

Over wat voor soort proces heb je het dan.
[1] Temperatuur regeling van een woonkamer?
[2] Balancing robot?
[3] Aansturen van een industriele 6-assige robot?
[4] .....

Elk systeem vraagd zijn eigen....

Op 30 juni 2006 09:11:50 schreef Nordin:
Hoi surge me,

Bedankt voor je reaktie, ik heb een tijd geleden rondgekeken voor een dsp-kit, ik vond ze allemaal een beetje prijzig. De meesten zijn 150 euro of duurder en dat kan ik niet veroorloven. Als jij goeie tips kent, of een goedkoop ontwikkelkit, dan wil ik het wel graag weten.

Met een fpga is het ook niet de goedkoopste, kijk bijv. naar elektuur, die verkoopt alles duur, elektuur is gewoon met serieus buiseness bezig, geen ruimte voor arme hobbiyisten (en ook niet voor arme ingenieurs zoals ik).

Maar als met een jtag en een simpel schakeling al een programmer hebt voor dsp, dan wil ik er meer van weten ;)

Ik heb zo een jtag-interface die ik gebruik voor de msp430f2111, een eenvoudige uC die op school ooit had gekocht. Misschien is de rest nog alleen een dsp....?

Eh ik heb ooit een stuk of 12 van die CPLD's gekocht (3 euro/st op eBay. Momenteel ben ik bezig om daar een ontwikkelbordje voor te maken (dit weekeinde etsen!)

Ik heb het afgelopen kwartaal in mn bachelor eindproject ook een CPLD gebruikt en die was 3 eur pst af fabriek (verzendkosten zijn wel hoog maar ach.. als je die deelt met nog een aantal mensen) Enn een echte FPGA begin bij zon 12 euro (cyclone 2 ep5 nog iets)

Het programeren kan met de byteblaster, die maak je zelf met een paar weerstanden, je kunt daar niet die MSP 430 progger voor gebruiken geloof ik, officieel gebruiken ze JTAG maar TI heeft ook nog een opgevouwen JTAG formaat, heb je ineens nog maar de helft van de Pinnen nodig....

Een vriend van mij heeft laats met een DSP van Texas een ontwikkelbordje gemaakt (chip+voeding+nog iets, ledjes ofzo) En volgens mij heeft hij die via de serieel poort geproged, ik zal het hem eens vragen. Het was trowns een TMS320F2808

Je moet wel natuurlijk zelf kunnen etsen enzo maar dat kost je de kop ook niet (belichting enzo kost wel wat maar daar heb je altijd wat aan)

Of iemand hebben die het voor jou kan etsen

Mocht je nog vragen hebben stel ze gerust.

[edit]
Nog even zitten kijken in de datasheets van die Bovengenoemde DSP

Op PDF pagina 35 van de datasheet staat hoe je hem kunt programeren
SCI is in dit geval de serieel poort.
Van de site van ti kun je ook een demo halen van CCS (code composer studio = ontwikkel omgeving voor die DSP's). En dan maar goed zoeken naar een langer durende demo versie.

enne wat betreft die Elektuur, ik denk dat ze een mooi product gemaakt hebben wat zijn geld bestwel waard is (gezien de kleine oplage en de ontwikkeltijd) echter ik denk dat ze even vergeten zijn dat de schakelingen in hun blad voornamelijk door hobyisten gebruikt worden.

De bedrijven die hun blad lezen kopen al dev tools van de fabrikant van die FPGA's CPLD's DSP's etc. Die kopen niet snel een elektuur boardje. (Want geen snelle helpdesk geen enorme berg documentatie etc.)

[/edit]

[Bericht gewijzigd door surge_me op ]

Versnelling en (resultaat) zwaartekracht zijn eigenlijk dezelfde grootheden welke vectorieel kunnen worden samengevoegd???

Samenvoegen kan zeker. Heeft alleen geen zin. Je bent alleen geïnterresseerd in zwaartekrachtscomponent.

Was dat niet juist de kunst van de regeltechniek...compenseren en regelen met of zonder compleet wiskundig model.

Maar het wiskundig model is er al. Zie http://robotics.ee.uwa.edu.au/theses/2003-Balance-Ooi.pdf
voor een leuke inleiding met Matlab programma's voor de liefhebbers. Ik hoop dat je het snapt, dan snap je namelijk ook waarom niet iedere regeling werkt en waarom een wiskundig model handig is.

Op 30 juni 2006 21:18:14 schreef Calv:
[...]

Samenvoegen kan zeker. Heeft alleen geen zin. Je bent alleen geïnterresseerd in zwaartekrachtscomponent.

[...]

Ja maar die kan dan toch worden afgeleid?

Maar het wiskundig model is er al. Zie http://robotics.ee.uwa.edu.au/theses/2003-Balance-Ooi.pdf
voor een leuke inleiding met Matlab programma's voor de liefhebbers. Ik hoop dat je het snapt, dan snap je namelijk ook waarom niet iedere regeling werkt en waarom een wiskundig model handig is.

Natuurlijk zal niet elke regeling werken....dat heb ik ook niet gezegd.

Het hoeft alleen niet zo moeilijk voor de thuisbouw.

Verder zeg ik ook niet dat het wiskundige model niet handig is. Ik wijs erop dat niet altijd het volledige wiskundige model benodigd is.

Wat kost zo'n inclinometer bijv. (ik heb geen idee hoor).

Ja maar die kan dan toch worden afgeleid?

Nee, niet op basis van alleen de potmeteruitlezing.

Het hoeft alleen niet zo moeilijk voor de thuisbouw.

Volgens mij kan het niet simpel.

bon . ik heb deze post blijkbaar lange tijd over het hoofd gezien. kheb alles eens rap overlezen

ene paar zaken.
ST heeft een absolute positie opnemer ( in 3d ). wordt gebruikt voor 3d muizen. ding is een MEMS ( micro electro mechanical system )
3.3 volt erop en een spi of i2c bus eraan. ding levert je 3 getallen tussne 0 en 359. ( x y en z )
alle conversie van acceleratie naar hoeken etc is al gedaan voor jou. ding kost iets van 1 euro of zo. (muizenfabrikanten zijn er nu volop mee aant experimenteren. )
je kan er ook de acceleratie mee uitlezen als je dat wilt.

bedoeling is de optische muis te vervangen met dat ding.

punt 2. : voor die robot : steek alle zwaar spul vanonder. ik zou GROTE wielen gebruiken en de batterij ONDEr de assen hangen. zo trek je het zwaartepunt omlaag en wordt je regelsysteem een stuk minder belast



                 |OO|  camera
  _              \  /              _
 | |              ||              | |
 | |              ||              | |
 | |     cpu bord| |              | |
 | |     _________||_________     | |
 | |    |                    |    | |
 | |========              ========| |
 | |    |                    |    | |
 | |    |    batterij        |    | |
 | |    |     en motoren     |    | |
 | |    |____________________|    | |
 |_|                              |_|

die zelfde truuuk haal je uit met de motoren. hand die onder de assen en werk met een tandwiel of riem overbrengin naar de assen.

de hoekopnemer steek je bij de camera.

die camera is een ander paar mouwen. ik zou een zwart wit camera nemen met daar een kleurfilter voor.
contrast vollen bak draaien en met de gain spelen.
digitaliseer het beeld als 1 bit.

de target is een wit vierkant op een donkere achtergrond. dat vierkant is dan 'het doel'

je kan een simpel systeem bouwen met harde logica ( eventueel ook in cpu maar in fpga ist simpeler omdat die iets makkelijker met de datastroom overweg kan )

up/down bepaal je door jhet aantal lijnen ZWART te tellen van het begin van het frame ( elk frame is normaal 320 lijnen hoog bij van die QVGA cameratjes. )

als dat aantal vermindert. gaat de target omhoog , als het vermeerder gaat het arget omlaag.

links rechts bepaal je door het aantal pixels zwart te tellen voor je een witte ( meerdere witte na elkaar om ruis te onderdrukken ) tegenkomt.

het links rechts algoritme start je een aantal lijnen naa de up/down detectie. (zodanig dat je in vertikaal zeker in het center van het vlak sampelt. dat maakt het leven gemakkelijk.

tzijn hoop en al wat stomme counters met een digitale debouncer om ruis weg te halen. je kan het makkelij kwijt in een kleine cpld of je kan het zelfs met ttl logica maken als je wilt ik schat ene 20 tal ic's en tis geklonken.

uit dat circuit komen 2 getallen : vertical en horizontal

al wat je cpu nu moet doen is uitvlooien of die getallen verhogen of verkleinen en de h bruggen voor de motoren sturen.

en das kwestie van filters te maken en een pid regelaar.
maar onderschat dat niet. das de helft van het werk.
de andere helft was je data van je sensoren krijgen maar daar is de grootste miserie nu omzeild door externe hardware die je dat reken en regelwerk bespaard. ( waarom altijd het wiel opnieuw uit proberen vinden. het is voor sommigen misschien leuk , maar ik ben van nature lui. als het al bestaat : pak dat dan )

[Bericht gewijzigd door free_electron op ]