Fråga:
Hur åtgärdar du detta LTspice-fel
user16307
2018-05-03 18:09:24 UTC
view on stackexchange narkive permalink

Nedan följer en H bridge-inverterarkretsmodell som jag stötte på i nätet:

enter image description here

Jag får Singular matrix Iteration error när jag försöker köra detta.

Om jag tar bort kretsen på rätt sätt fungerar saker.Eller om jag jordar C1-terminalen fungerar den också men då är det inte samma krets längre.

Jag laddade upp circuit asc-filen här:

Vad kan vara orsaken till detta fel?

Jag svarar, men jag måste först veta något: är det här bara ett test, det vill säga endast för simulering, för att se vågformer, eller kommer detta att vara en fullt fungerande schematisk bild?
Detta är bara för att simulera att jag inte ska bygga den.
Vad händer om du lägger till ett 1 Meg-motstånd från D1-anoden till jord och samma för D3?Mark A1 och A2.
@user16307 Som en allmän riktlinje, om du bara vill se ett visst * beteende *, använd ett * beteendemässigt *, * idealistiskt * tillvägagångssätt: `SW` istället för MOS, A-enheter istället för komparatorer, eller något som rör logik,perfekt `.modell` av dioder med korrekt` epsilon` och `revepsilon` kan gå långt, ... och glöm inte att spänningskällor har inget internt motstånd, så ett lock över gör ingenting, om inte något seriemotstånd ärläggs till, men sedan kan du ange det i källan, `Rser, Cpar`, som också omvandlar det internt till en aktuell källa, vilket är konvergerande vänligt (se manual för` V`).
Tre svar:
a concerned citizen
2018-05-03 19:24:01 UTC
view on stackexchange narkive permalink

@loudnoises (och @Dorian, medan jag skrev) har rätt, så jag lägger bara till några fler saker: NMOS i LTspice har vanligtvis en kroppsdiod, såvida det inte är en monolitisk MOS (som du inte har ). Att använda beteendekällor är också trevligt och praktiskt, men funktionen if () ger oönskade diskontinuiteter i lösaren, vilket tvingar derivatet i den punkten att bli ett problem numeriskt.

Det verkar som om du bara behöver en komparator, så du är säkrare att använda LTspices egna A-enheter, som är lämpliga för den här uppgiften. Förresten, den förseningen gör inte vad du vill, den fördröjer, men tills vågformen visas kommer den att ha DC-värdet; vad du förmodligen ville ha var SINE (0 5 50 0 0 180) , eller en enkel fasinversion med en E-källa. Eftersom du bara är intresserad av en simulering kan MOSFET ersättas med tidsfriktionsbrytare ( SW ). När du tittar över din bild kör du MOSFET: erna som direkt hänvisas till marken, men de höga behöver en nivåväxlare. Strömställarna kringgår detta problem.

Här är en omarbetad version:

hbridge

A1 är komparatorn med kompletterande utgångar, A2 tillsammans med A3 och A4 skapar deadtime (specificerad genom .param dt = <value> ), och jag ställde in körspänningen 1.01 för att plottas bättre i vågformsfönstret.

Och här är innehållet i .asc -filen (kopiera och spara som en .asc -fil, inte .asc. txt ):

  Version 4
ARK 1 1236 680
TRÅD 496-32 432-32
TRÅD 768-32 496-32
WIRE 832 -32 768 -32
WIRE 976-32 832 -32
TRÅD 432 0 432 -32
WIRE 496 0 496 -32
WIRE 768 0 768 -32
WIRE 832 0832 -32
TRÅD 96 16 -96 16
WIRE 192 16 160 16
WIRE -304 48 -384 48
WIRE -176 48 -304 48
TRÅD -96 48-96 16
WIRE -96 48 -112 48
WIRE -80 48-96 48
WIRE 96 48 -16 48
WIRE 976 64 976 -32
WIRE -272 80 -288 80
WIRE -176 80 -272 80
WIRE -96 80 -112 80
TRÅD 16 80 -16 80
TRÅD 16 96 16 80
TRÅD 96 96 16 96
WIRE 192 96 160 96
WIRE 432 96 432 80
WIRE 496 96 496 64
WIRE 496 96 432 96
WIRE 768 96 768 64
WIRE 832 96832 80
WIRE 832 96 768 96
WIRE -288 128 -288 80
WIRE -96 128 -96 80
WIRE 96 128 -96 128
TRÅD 432 144 432 96
WIRE 480 144 432 144
WIRE 592144 560144
WIRE 608 144 592144
TRÅD 736 144 688 144
WIRE 832 144 832 96
WIRE 832 144 736 144
WIRE 432 192 432 144
TRÅD 496 192432192
WIRE 832 192832 144
WIRE 832 192768 192
TRÅD 432 208 432 192
WIRE 832 208 832 192
WIRE 496 224 496 192
TRÅD 592 224 592 144
WIRE 624 224592224
TRÅD 736 224736144
WIRE 736 224 688 224
WIRE 768 224 768 192
TRÅD 432 320 432 288
TRÅD 496 320 496 288
TRÅD 496 320 432 320
WIRE 768 320 768 288
WIRE 832320832288
WIRE 832 320 768 320
WIRE 432352332203
WIRE 608352432352
WIRE 832 352832 320
WIRE 832352608352
WIRE 976 352 976 144
WIRE 976352832352
FLAGG -384 128 0
FLAGG -288 208 0
FLAGGA 192 16 A.
FLAG -304 48 Vcon1
FLAGG -272 80 tri
FLAGGA 384 64 0
FLAGG 384272 0
FLAGGA 384 16 A.
FLAGGA 384 224 _A
FLAGG 880 64 0
FLAGG 880272 0
FLAGG 880 224 A.
FLAGG 880 16 _A
FLAGG 608352 0
FLAGG 192 96 _A
SYMBOL Digital \\ diffschmitt -176 0 R0
FÖNSTER 3 -7-16 Vänster 2
SYMATTR InstName A1
SYMATTR Värde vt = 0 vh = 0 Vhigh = {VH}
SYMBOL spänning -384 32 R0
FÖNSTER 3 26 80 Vänster 2
SYMATTR InstName V1
SYMATTR Värde sin 0 4,5 50
SYMBOL-spänning -288 112 R0
SYMATTR InstName V2
SYMATTR Värde puls -5 5 0 16u 16u 0 32u
SYMBOL Digital \\ och -48 0 R0
FÖNSTER 3 -40 114 Vänster 2
SYMATTR InstName A2
SYMATTR-värde td = {dt} Vhigh = {VH}
SYMBOL Digital \\ och 128 -32 R0
FÖNSTER 3 -1 1 Vänster 2
SYMATTR InstName A3
SYMATTR Värde tripdt = 10n Vhigh = {VH}
SYMBOL spänning 976 48 R0
FÖNSTER 3 28100 Vänster 2
SYMATTR InstName V3
SYMATTR Värde 10 rser = 10m Cpar = 10u
SYMBOL sw 432 96 M180
SYMATTR InstName S1
SYMBOL sw 432304 M180
SYMATTR InstName S2
SYMBOL sw 832 96 R180
SYMATTR InstName S3
SYMBOL sw 832304 R180
SYMATTR InstName S4
SYMBOL ind 464 160 R270
FÖNSTER 0 32 56 VTopp 2
FÖNSTER 3 5 56 VBotten 2
SYMATTR InstName L1
SYMATTR Värde 500u
SYMBOL-keps 688 208 R90
FÖNSTER 0 0 32 VBotten 2
FÖNSTER 3 32 32 VTopp 2
SYMATTR InstName C1
SYMATTR-värde 50u Rser = 10m
SYMBOL res 592160 R270
FÖNSTER 0 32 56 VTopp 2
FÖNSTER 3 0 56 VBotten 2
SYMATTR InstName Rout1
SYMATTR-värde 5
SYMBOL-diod 480 64 M180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D1
SYMBOL-diod 784 64 R180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D2
SYMBOL-diod 480288 M180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D3
SYMBOL-diod 784288 R180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D4
SYMBOL Digital \\ och 128 48 R0
FÖNSTER 3 -31 117 Vänster 2
SYMATTR InstName A4
SYMATTR Värde tripdt = 10n Vhigh = {VH}
TEXT 80 288 Vänster 2! .Tran 20m
TEXT -352 320 Vänster 2! .Modell sw sw ron = 10m roff = 10meg vt = 0.5 vh = -0.5 \ n. Modell d d ron = 10m roff = 10meg vfwd = 0.5 epsilon = 50m revepsilon = 10m
TEXT 88 256 Vänster 2! .Param dt = 1u VH = 1.01
 

Ditt schema vill antagligen vara en modulering i tre nivåer, men hur du gjorde det skulle bränna strömbrytarna. Jag ändrade det lite, du är välkommen att modifiera det själv efter ditt hjärtas önskan.


Bara så att jag inte går med att reta, här är versionen på tre nivåer:

3lvl

och här är .asc -filen:

  Version 4
ARK 1 1280 680
TRÅD 496-32 432-32
TRÅD 768-32 496-32
WIRE 832 -32 768 -32
WIRE 976-32 832 -32
TRÅD 432 0 432 -32
WIRE 496 0 496 -32
WIRE 768 0 768 -32
WIRE 832 0832 -32
TRÅD 96 16 -96 16
WIRE 192 16 160 16
WIRE -336 48 -384 48
WIRE -304 48 -336 48
WIRE -176 48 -304 48
TRÅD -96 48-96 16
WIRE -96 48 -112 48
WIRE -80 48-96 48
WIRE 96 48 -16 48
WIRE 976 64 976 -32
WIRE -272 80 -288 80
WIRE -208 80 -272 80
WIRE -176 80 -208 80
WIRE -96 80 -112 80
TRÅD 16 80 -16 80
TRÅD 16 96 16 80
TRÅD 96 96 16 96
WIRE 192 96 160 96
WIRE 432 96 432 80
WIRE 496 96 496 64
WIRE 496 96 432 96
WIRE 768 96 768 64
WIRE 832 96832 80
WIRE 832 96 768 96
WIRE -288 128 -288 80
WIRE -96 128 -96 80
WIRE 96 128 -96 128
TRÅD 432 144 432 96
WIRE 464 144 432 144
WIRE 480 144 464 144
WIRE 592144 560144
WIRE 608 144 592144
TRÅD 736 144 688 144
WIRE 784 144 736 144
WIRE 832 144 832 96
TRÅD 832 144 784 144
WIRE 432 192 432 144
TRÅD 496 192432192
WIRE 832 192832 144
WIRE 832 192768 192
TRÅD 432 208 432 192
WIRE 832 208 832 192
WIRE 496 224 496 192
TRÅD 592 224 592 144
WIRE 624 224592224
TRÅD 736 224736144
WIRE 736 224 688 224
WIRE 768 224 768 192
WIRE 96 240 -96 240
TRÅD 192 240 160 240
WIRE -176 272 -288 272
TRÅD -96 272-96 240
WIRE -96 272 -112 272
WIRE -80 272-96 272
WIRE 96 272 -16 272
WIRE -336 288 -336 48
WIRE -208304 -208 80
WIRE -176 304 -208 304
WIRE -96 304 -112 304
TRÅD 16 304 -16 304
TRÅD 16 320 16 304
WIRE 96320 16320
TRÅD 192 320 160 320
TRÅD 432 320 432 288
TRÅD 496 320 496 288
TRÅD 496 320 432 320
WIRE 768 320 768 288
WIRE 832320832288
WIRE 832 320 768 320
WIRE -96 352-96 304
TRÅD 96 352 -96 352
WIRE 432352332203
WIRE 608352432352
WIRE 832 352832 320
WIRE 832352608352
WIRE 976 352 976 144
WIRE 976352832352
FLAGG -384 128 0
FLAGG -288 208 0
FLAGGA 192 16 A.
FLAG -304 48 Vcon1
FLAGG -272 80 tri
FLAGGA 384 64 0
FLAGG 384272 0
FLAGGA 384 16 A.
FLAGGA 384 224 _A
FLAGG 880 64 0
FLAGG 880272 0
FLAGG 880 224 _B
FLAGG 880 16 B
FLAGG 608352 0
FLAGG -288 352 0
FLAGG -336 336 0
FLAGG 192 96 _A
FLAGG 192 240 B
FLAGG 192 320 _B
FLAGG 464 144 x
FLAGG 784144 y
SYMBOL Digital \\ diffschmitt -176 0 R0
FÖNSTER 3 -7-16 Vänster 2
SYMATTR InstName A1
SYMATTR Värde vt = 0 vh = 0 Vhigh = {VH}
SYMBOL spänning -384 32 R0
FÖNSTER 3 26 80 Vänster 2
SYMATTR InstName V1
SYMATTR Värde sin 0 4,5 50
SYMBOL-spänning -288 112 R0
FÖNSTER 3 33 36 Vänster 2
SYMATTR InstName V2
SYMATTR Värde puls -5 5 0 16u 16u 0 32u
SYMBOL Digital \\ och -48 0 R0
FÖNSTER 3 -40 114 Vänster 2
SYMATTR InstName A2
SYMATTR-värde td = {dt} Vhigh = {VH}
SYMBOL Digital \\ och 128 -32 R0
FÖNSTER 3 -1 1 Vänster 2
SYMATTR InstName A3
SYMATTR Värde tripdt = 10n Vhigh = {VH}
SYMBOL spänning 976 48 R0
FÖNSTER 3 28100 Vänster 2
SYMATTR InstName V3
SYMATTR Värde 10 rser = 10m Cpar = 10u
SYMBOL sw 432 96 M180
SYMATTR InstName S1
SYMBOL sw 432304 M180
SYMATTR InstName S2
SYMBOL sw 832 96 R180
SYMATTR InstName S3
SYMBOL sw 832304 R180
SYMATTR InstName S4
SYMBOL ind 464 160 R270
FÖNSTER 0 32 56 VTopp 2
FÖNSTER 3 5 56 VBotten 2
SYMATTR InstName L1
SYMATTR Värde 500u
SYMBOL-keps 688 208 R90
FÖNSTER 0 0 32 VBotten 2
FÖNSTER 3 32 32 VTopp 2
SYMATTR InstName C1
SYMATTR-värde 50u Rser = 10m
SYMBOL res 592160 R270
FÖNSTER 0 32 56 VTopp 2
FÖNSTER 3 0 56 VBotten 2
SYMATTR InstName Rout1
SYMATTR-värde 5
SYMBOL-diod 480 64 M180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D1
SYMBOL-diod 784 64 R180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D2
SYMBOL-diod 480288 M180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D3
SYMBOL-diod 784288 R180
FÖNSTER 0 24 64 Vänster 2
FÖNSTER 3 24 0 Vänster 2
SYMATTR InstName D4
SYMBOL Digital \\ och 128 48 R0
FÖNSTER 3 -31 117 Vänster 2
SYMATTR InstName A4
SYMATTR Värde tripdt = 10n Vhigh = {VH}
SYMBOL e -288 256 R0
SYMATTR InstName E1
SYMATTR Värde -1
SYMBOL Digital \\ diffschmitt -176 224 R0
FÖNSTER 3 -4 -11 Vänster 2
SYMATTR InstName A5
SYMATTR Värde vt = 0 vh = 0 Vhigh = {VH}
SYMBOL Digital \\ och -48 224 R0
FÖNSTER 3 -40 114 Vänster 2
SYMATTR InstName A6
SYMATTR-värde td = {dt} Vhigh = {VH}
SYMBOL Digital \\ och 128 192 R0
FÖNSTER 3 -1 1 Vänster 2
SYMATTR InstName A7
SYMATTR Värde tripdt = 10n Vhigh = {VH}
SYMBOL Digital \\ och 128272 R0
FÖNSTER 3 -31 117 Vänster 2
SYMATTR InstName A8
SYMATTR Värde tripdt = 10n Vhigh = {VH}
TEXT 1040 288 Vänster 2! .Tran 20m
TEXT 480400 Vänster 2! .Modell sw sw ron = 10m roff = 10meg vt = 0.5 vh = -0.5 \ n. Modell d d ron = 10m roff = 10meg vfwd = 0.5 epsilon = 50m revepsilon = 10m
TEXT 1048 256 Vänster 2! .Param dt = 1u VH = 1.01
 
Tack för det fantastiska svaret.Btw du skapade PWM genom att använda en sinusvåg och en triangulär våg som är ingångar till en Schmitt-utlösarkomparator.Hur implementeras det i ett verkligt?Med sinus och triangulär våg?Skapas de av en oscillator?
@user16307 Schmitt-grinden används här som en komparator, för det är den snabbaste du får med den här rollen, i LTspice, samtidigt som den är helt konvergerande vänlig, och med massor av parametrar att taylor för dina behov: vhigh / vlow, trise /tfall eller rout / cout eller tau, vt / vh, td, tripdt.BTW, dödtiden kunde också ha förenklats genom att eliminera alla NAND, ställa in trise / tfall och ställa in 'vt = 0,75 vh = -0,25' för 'SW' (IIRC, ta ett saltkorn).Och det hela kunde ha förenklats ännu mer genom att eliminera alla A-enheter, bara sinus, triangel och brygga, men klarhet lider.
Dorian
2018-05-03 18:53:08 UTC
view on stackexchange narkive permalink

V4-källan är perfekt och någon gång öppnar både övre och nedre MOSFET-enheter.Det översätts till ett enormt nuvarande värde genom V4 som inte kan beräknas.

Ange V4-egenskaper och sätt lite seriemotstånd för att gå längre.Som 0,000001 ohm.

Redigera

Inte bara V4 är ideal utan även de andra komponenterna, jag kan se att även med V4 som har internt motstånd finns det enorma toppar som saktar ner simuleringen.Lägg ut några riktiga komponenter från listan.Att bara ändra dioderna till riktiga gjorde en väldigt stor skillnad.

loudnoises
2018-05-03 18:44:03 UTC
view on stackexchange narkive permalink

I grund och botten simulerar SPICE kretsar genom att lösa en uppsättning linjära (vanligtvis linjäriserade från ickelinjära) ekvationer, dvs \ $ Ax = b \ $.Beroende på krets kanske matrisen \ $ A \ $ inte är inverterbar, vilket innebär att du inte kan hitta lösningen på \ $ x \ $ eller de okända (nodspänningar, grenströmmar etc.).Detta kallas singularitet.

(Iterationsuttrycket hänvisar till när icke-linjärer linjäriseras för inversionen av \ $ A \ $ -matrisen, detta kräver flera iterationer med en icke-linjär lösare för att hitta den slutliga lösningen.)

Saker som kan orsaka matris singularitet är hängande noder, impedanser med för höga / för låga värden, oklara olinjäriteter etc.

Att ta reda på det specifika problemet kräver mycket felsökning.Kan du ta bort saker tills kretsen fungerar, sedan lägga till saker tills den går sönder?Detta anger vilka komponenter / anslutningar som orsakar problemet.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 4.0-licensen som det distribueras under.
Loading...