1 van 1

singuliere sttijfheidsmatrix

Geplaatst: di 09 dec 2014, 00:17
door In physics I trust
In het kader van een projectje eindige elementen (Matlab), wordt er gemeld dat mijn globale stijfheidsmatrix K singulier is:
(warning matrix is singular to working precision)
naar aanleiding van het commando 
 U=K\P;
maar desondanks wordt er verder gerekend en komen er erg logische momenten, dwarskrachten, normaalkrachten en vervormingen uit.
 
Iemand een idee hoe ik de fout eruit kan krijgen?
Ik vermoed dat het een randvoorwaardenprobleem is? Hoe komt het dat ik ondanks de waarschuwing een schijnbaar correcte oplossing bekom?
 
Alvast bedankt,

Re: singuliere sttijfheidsmatrix

Geplaatst: di 09 dec 2014, 10:19
door Xenion
Het probleem komt door de eindige precisie in MATLAB. Ik weet ook niet precies hoe je dit moet oplossen, maar probeer eens andere technieken om je probleem op te lossen (MATLAB inv commando, LU decompositie, ...) of zoek eens naar preconditioning ofzo.

Re: singuliere sttijfheidsmatrix

Geplaatst: di 09 dec 2014, 12:18
door In physics I trust
Bedankt voor je reactie!
 
De waarschuwing duidt volgens jou niet op een werkelijke fout? Ik dacht dat er werkelijk iets mis was met mijn randvoorwaarden.
 
Ter achtergrond: K is geïmplementeerd als een sparse matrix; en als ik de matrix omzet via full(K) om een beter zicht te hebben op hoe de matrix eruit ziet, merk ik dat de laatste 8 rijen/kolommen enkel nullen bevatten. Ook in de P en U vectoren zijn de laatste 8 elementen 0. Dat lijkt me de oorzaak te zijn van de opmerking over singulariteit?
 
Op dit ogenblik worden er doubles gebruikt voor de voorstelling. Is hier een andere format op zijn plaats?
 
Nogmaals bedankt,

Re: singuliere sttijfheidsmatrix

Geplaatst: wo 10 dec 2014, 11:05
door Xenion
double precision is normaal gezien OK. Als je 8 rijen nullen hebt dan is je matrix inderdaad gewoon singulier en dan kan je geen inverse nemen. Misschien dat de pseudo-inverse (MATLAB: pinv) je verder kan helpen? Maar misschien dat je inderdaad beter kijkt naar wat die waarden in je matrix precies voorstellen en de randvoorwaarden eens nakijkt.

Re: singuliere sttijfheidsmatrix

Geplaatst: wo 10 dec 2014, 11:13
door xansid
Dan heb je eigenlijk 8 vrijheidsgraden 'te veel' dus?
Hoeveel vrijheidsgraden hebben de elementen die je gebruikt?

Re: singuliere sttijfheidsmatrix

Geplaatst: wo 10 dec 2014, 13:53
door In physics I trust
Er was inderdaad een fout ingeslopen: tussen truss elements (die geen moment kunnen doorgeven en dus rotatievrijheid hebben) waren er toch expliciet scharnieren toegekend; waardoor er eigenlijk voorwaarden dubbel inzaten, namelijk de rotatievrijheid in betreffende knopen. Deze redundantie kwam tot uiting in de stijfheidsmatrix.
 
Het probleem is opgelost, bedankt voor het meedenken!