Hur kan man göra matrisberäkningar med analog elektronik?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Hur kan man göra matrisberäkningar med analog elektronik?

Inlägg av Volvo740 »

Med operationsförstärkare så kan man göra matematiska beräkningar. Finns det något smidigt sätt att göra matrisberäkningar med analog elektronik? Istället för att ha en operationsförstärkare för varje skalär i matrisen, så borde man ha någon form av vektor som multipliceras med en matris. Det jag söker efter är någon form av analog elektronik som kan hantera multiplikation, subtraktion och addition för matriser och vektorer.

Med vänliga hälsningar
Volvo740
Användarvisningsbild
Andax
Inlägg: 4373
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Andax »

Det går ju inte speciellt lätt att representera flera värden parallellt i en och samma analog signal. I så fall behöver man någon typ av multiplexing.
Om du har de analoga värdena kommande i tidsordning borde du kunna multiplicera ihop två sådana "vektorer" och integrera resultatet. Det blir motsvarigheten till Multiply-and-Accumulate i DSP sammanhang.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

Hej!

Nej. Det ska inte vara "i samma signal". Det ska vara parallella signaler. Tänk dig exempelvis linjäralgebratiska ekvationen:

Kod: Markera allt

Ax = b
Där A är en matris och x och b är vektorer. Tänk dig att A ska föreställa någon analog apparat som har ingångarna x. Den analoga apparaten har utgångarna b.
I elektrisk form så skulle man kunna uttrycka detta som:

Kod: Markera allt

xAb
Där A är en krets med flera OP-förstärkare. Problemet är att om A-matrisen är rätt stor t.ex. 6x6 så blir det 36 stycken OP-förstärkare man måste ha. Och 6x6 är väldigt vanligt i mitt fall.

Har du andra förslag på metoder så säg bara till. Jag är även öppen för digital elektronik. Så länge jag slipper samplingstiden. Det måste alltså vara tidskontiuneligt elektronik. Analog är nog fel ord att säga.

Edit: Jag glömde säga att jag ska integrera signalen också.
E Kafeman
Inlägg: 3260
Blev medlem: 29 april 2012, 18:06:22

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av E Kafeman »

Sådana här maskiner kan göra avancerade beräkningar: http://www.analogmuseum.org/english/exa ... imulation/
DARPA tror på nyutveckling: https://www.fbo.gov/index?s=opportunity ... e&_cview=0
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

Men det är för mycket. Jag ska bara göra lite grundläggande matrisberäkningar. Inte simulera universum.

Det kanske inte går som jag har tänkt? Använda analog elektronik för att göra matrisberäkningar.
Det jag kräver är att det ska vara enkelt att integrera, addera, subtrahera och multiplicera. Då tänkte jag på OP-förstärkare. Men det krävs så många 36 stycken blir bara för en matris och jag har minst 10 matriser jag måste multiplicera med, och addera.
E Kafeman
Inlägg: 3260
Blev medlem: 29 april 2012, 18:06:22

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av E Kafeman »

Mindre, klarar 2x2 matris: http://okikatechnologies.com/product/dynamx-fpaa/
Flera kan kopplas samman för större matriser.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

2x2 matris är inte godkänt. Minimum är 10x10.
Finns det inga digitala processorer som kan användas som en OP-förstärkare?
Jag måste ha en mycket snäv integration och helst så ska allt ske tidskontinuerligt.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16773
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av grym »

Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

Blir ändå lika många av dessa ändå.
Eller hur menar du att denna kan användas? Ström in på X1, X2, Y1, Y2 och Z så får jag W. Detta känns inte som rätt lösning. Men tack ändå för du upplyste mig om detta.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45291
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av TomasL »

Volvo740 skrev:2x2 matris är inte godkänt. Minimum är 10x10.
Finns det inga digitala processorer som kan användas som en OP-förstärkare?
Jag måste ha en mycket snäv integration och helst så ska allt ske tidskontinuerligt.
Fundera på en ZISC35/78, kanske kan lösa dina problem. Dock har jag inte en susning var du hittar dem.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

Det jag tänker göra är att reglera detta:

Kod: Markera allt

dot x = Ax + Bu
y = Cx
Där "dot x" är derivatan av x. Både x och u är vektorer och A, C och B är matriser. Insignalen är u och alla tillstånd är x.

För att reglera detta så hittar jag på en styrlag L, som också är en matris. Då kan jag uttrycka ett återkopplad PD-regulator med denna formel:

Kod: Markera allt

u = -Ly + r
Där y är utsignalen på mitt system och vektorn r är min referensvektor(börvärde). Detta är en PD-regulator då A-matrisen är skriven från andra ordningens system till första ordningens system.

En tanke jag hade innan jag skapade denna fråga är hur skulle det vara om jag använde digital elektronik istället för analog elektronik?
Men då slog det mig att jag vet inte hur man integrerar bra med digital elektronik. Men även här verkar det som att det blir problem för mig att göra matrismultiplikationer och vektoraddition när det kommer till analog elektronik.
Användarvisningsbild
Andax
Inlägg: 4373
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Andax »

Varför inte ett samplat system? En integral blir då bara en summation mellan nya talet och föregående summa multiplicerat med samplingstiden.
Vilken bandbredd är det på de analoga signalerna?

När det gäller din tillståndsmodell
dot x = Ax + Bu
y = Cx
så finns det formella metoder att göra om till diskret tid så att den blir på formen:
x[n+1] = Ax[n] + Bu[n]
y[n] = Cx[n]
OBS Matriser inte samma som i tidskontinuerliga fallet.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av Volvo740 »

Fast du behöver inte exakt integrera numeriskt.

Det kan exempelvis se ut så här när man kör MATLAB.

Kod: Markera allt

n = 1000; % Loops
x = [0; 0];
for i = 1:n
  tic;
  dx = A*x + B*u;
  u = -L*x + r
  dt = toc;
  x = x + dx*dt;
  t = t + dt;
endfor
Att göra ett reglersystem på denna form:

Kod: Markera allt

x[n+1] = Ax[n] + Bu[n]
y[n] = Cx[n]
Kräver att du måste bestämma hur ofta systemet samplar och sedan heter det inte som ovan, utan så här:

Kod: Markera allt

x[n+1] = Fx[n] + Gu[n]
y[n] = Cx[n]
Där F = e^(A*h) och h är t.ex. 0.01 sekunder.
G = integral(e^(A*t), 0, h, t) där h = 0.01 sekunder.

Att lösa ut e^(A*h) kan vara riktigt svårt när det kommer över 6x6 matriser. Detta kallas övergångsmatris, och det är inte det lättaste för MATLAB att räkna ut, trots att MATLAB har funktionen >> expm(A*t) inbyggt.

Nu håller jag inte på med programmering av mikroprocessorer. Jag håller på med reglerteknik och nu känner jag mig helt tvungen att börja tillämpa reglertekniken i verkligheten, istället för att endast simulera som jag har gjort.

Så frågan är: Ska man köra fast samplingsintervall, eller dynamisk samplingsintervall. MATLAB koden ovan simulerar med ett dynamiskt samplingsintervall. För den tidsdiskreta modellen så behöver man endast veta denna del:

Kod: Markera allt

x[n+1] = Fx[n] + Gu[n]
För att:

Kod: Markera allt

x[0+1] = Fx[0] + Gu[0]
x[1+1] = Fx[1] + Gu[0]
x[2+1] = Fx[2] + Gu[0]
x[3+1] = Fx[3] + Gu[0]
x[4+1] = Fx[4] + Gu[0]
x[n+1] = Fx[n] + Gu[0]
Skulle man deklarera att x[0] = 0 så kan man anta att x[n+1] = y.
guckrum
Inlägg: 1690
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av guckrum »

Det finns massor av "smidiga" sätt att realisera matrisekvationer av
den typ du vill ha med elektronik. Typiskt är det så man bygger en
hel del elektronik - man utgår från ekvationer och så realiserar man
dem. Men hur man exakt realiserar beror på vilket problem man vill
lösa, samt vilka krav man har på tex hastighet, noggranhet,
stabilitet, kalibrerbarhet, energiförbrukning, observerbarhet, pris
med mera.

Så utan mera information är det svårt att svara på din fråga. Du får
beskriva mera i detalj vad du vill göra. Jag tolkar dina inlägg som
att du gärna vill ha fullständigt generell matrismultiplikation och
addition på kanske 10 matriser som vardera är 10x10 element. Det
låter kompicerat, minst sagt, men också väldigt intressant! Vad har
du till exempel för krav på bandbredd och grupplöptid? Hur stora
amplituder kommer dina variabler att anta, så att du kan garantera att
det inte klipper? Signal/brusförhållanden?

Det låter annars som ett digitalt signalbehandlingsproblem, där man
förslagsvis samplar ekvidistant för att kunna falla tillbaka på den
teori som finns där. Men, som sagt, det beror på vad du vill göra.
SvenW
Inlägg: 1124
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Re: Hur kan man göra matrisberäkningar med analog elektronik

Inlägg av SvenW »

Idén att göra matrisberäkning med analoga komponenter känns udda och förtjänar en kommentar.
Det är klar att det går. Ev matrismultiplikation är en summa av produkter.
Summerar gör man med OP-förstärkare, och för multiplikation finns analoga kretsar.

Men analoga multiplikatorer är dåliga och dyra. Där finns brus och begränsad bandbredd.
För stora matriser blir det absurt många som behövs, såvida matrisen inte är väldigt gles.

Det finns mängder av digitala chips som är lämpliga, t.ex. signalprocessorer.
Att programmera dem är inte så svårt men kräver givetvis lärotid.

Analoga lösningar för detta tror jag ändå tillhör historien.
Men man kan inte utesluta att de har sin tillämpning någonstans.
Skulle vara intressant att veta exempel där analogtekniken vinner.

Samplingstiden slipper man inte. I analoga kretsar har man fördröjning och begränsad bandbredd.
Och att integrera (förmodar här att du menar beräkna en tidsintegral) är väl det lättaste som finns i en digital processor.
Skriv svar