Home    Search    Reference Manuals    Return   



Users Manual for Program PREDAT  




Innehållsförteckning

Inledning
   Allmänt om inläsningen och användarhandledningen
   Felutskrifter
   Läsning av indata från separat ascii-fil
   Definiering och inläsning av substrukturer

Beskrivning av beräkningsmetod

Indatabeskrivning
   Kommandon som beskrivs CALC-användarhandledningen
   Kommandon som gäller speciellt PREDAT

Command line options

Exempel



Inledning

PREdat är ett program för att enkelt kunna skapa en indata till beräkningsprogrammet CALC i GENSYS. Indata till PREdat är uppbyggt i tre delar:

  1. Kända data. Alla kända data definieras så som axelavstånd, boggiavstånd, axellast, m.m. Detta avsnitt uppdateras uppdateras för varje nytt projekt.
  2. Modell beskrivning. Till alla typer av fordon BoBo, CoCo, semitrailer, jakobsboggie, m.m. skapas en modellfil som beskriver fordonets uppbyggnad innehållande antal korgar, boggier, axlar, antal kopplingar och dess typ av egenskap kopplade mellan axlar, boggier och korgar. Geometridata hämtas från avsnitt 1) Kända data.
  3. Beräkning av properties. Styvhets- och dämpnings-egenskaper bestämms genom beräkningar eller genom att definierade properties tilldelas kända värden. Properties beräknas ur t.ex. önskad egenfrekvens, eller önskad dämpning, eller krav på hjulavlastning, eller krav på krängningsvinkelkoefficient. Programmet ställer de properties som finns definierade under punkt 2), och ger varningsutskrifter för de properties som saknar definition.
    Indata liknar i stort sett indata till CALC-programmet, PREdat-programmet kan läsa en indatafil avsedd för CALC men genererar då samma utdata som har lästs som indata. Det som skiljer vid inläsningen mellan CALC och PREdat är att PREdat tillåter att en koppling definieras trots att dess egenskap ej är definierad och att PREdat har ett rikare urval av kommandon. Denna användarhandledning behandlar huvudsakligen de kommandon som ej finns finns i CALC, för de kommandon som är gemensamma för CALC och PREdat hänvisas läsaren till användarhandledningen i CALC.

Allmänt om inläsningen och användarhandledningen

Inläsningen sker i frifältsinmatning. Indatatolkaren läser ett ord i taget från indatafilen, ny rad tecken har ingen betydelse för inläsningen. För vissa kommandon där inte antalet indata på förväg är känt, avbryts kommandoinläsningen genom att ett nytt huvudkommando inläses.

Som avgränsare mellan olika kommandon och indata fungerar tecknen mellanslag, likhetstecken och komma.

Vid angivande av huvudkommandon går det bra med stora eller små bokstäver, men vid signalnamn eller under funktioner så skiljer programmet på små och stora bokstäver.

Indataläsningen till programmet är uppbyggt på följande sätt:

  1. Först kommer ett huvudkommando.
  2. Sedan läses ett underkommando till huvudkommandot.
  3. Efter underkommandot läses namnet på den signal som programmet skall skapa. Namnet på signalen läses med character*12 men endast 8 tecken är signifikanta, ty i många kommandon behöver programmet skapa fler signaler för att möjliggöra styrning av signalerna i efterhand. Det skulle kräva alldeles för mycket indata om varje signal måste manuellt döpas, därför används namnets första 8 tecken plus de extensions som är fastlagda och finns definierade i denna användarhandledning för att lagra signalerna.
  4. Sist läses eventuella övriga indata för att kunna skapa ovan angivna signal(er).
Exempel:
                                                                
 `coupl`  = `c_type`, input(*)                                  
 `c_type` = `p_lin`  =>  input(*) = `p_name'  value0  `value    
                                                                

En koppling definieras med huvudkommandot `coupl`, typen för kopplingar betecknas `c_type` och kan bl.a. sättas till `p_lin` vilket betyder en koppling med linjär karakteristik. När `c_type` är vald till `p_lin` då är också övriga indata bestämda vad de skall betyda. Indata till `p_lin` består av tre komponenter `p_name', value0 och `value.

För att skilja på vad som är i programmet bestämda nyckelord, signaler eller konstanter, är de olika orden i användarhandledningen markerade med olika typer av accenter och förtecken, tecknan har följande betydelser:

  1. Ord inneslutna mellan grav accenter `` Programmet förväntar sig att läsa en godkänd teckensträng, som anger ett godkänt huvud- eller under-kommando. Läsning av integer eller real ger felfunktion.
  2. Ord inneslutna mellan en grav accent och en akut accent `' Programmet förväntar sig att läsa en teckensträng, som anger en signal, som tidigare är definierad i indata. Läsning av integer eller real ger felfunktion.
  3. Ord som saknar accenter Programmet förväntar sig att läsa datakonstant, som består av integer eller real. Läsning av character ger felfunktion.
  4. Ord som inleds med grav accent ` Programmet accepterar i detta läge att läsa en teckensträng eller en datakonstant. Läses en teckensträng så letar programmet upp den signal som har tilldelats det namnet och lagrar adressen till signalen. Läses en datakonstant lagras värdet direkt i minnet.
  5. Ord som inleds med - (minustecken) Programmet accepterar i detta läge att läsa ett tecken före konstanten eller signalen. Den lästa konstanten eller signalen används med omvänt tecken, om inledningen sker med ett minustecken.
  6. Ord som inleds med + (plustecken) Programmet accepterar i detta läge att läsa ett tecken före konstanten eller signalen. Det lästa plustecknet tas bort och signalens värde används som det är.

Indatafilen avslutas med tecknen EOF för att markera att filen är till ända. Anledningen till att det är gjort så är att huvudprogrammet skall kunna avgöra att expandering av indatafilen och substrukturer har fungerat som det ska.



Felutskrifter.

PREdat skiljer på fatala fel där exekvering inte kan fortsätta, och icke fatala fel där endast warningsutskrift erhålles. Ett fatalt fel har följande principiella utseende:

                                                                 
  ***ERROR*** In In_mass:                                        
              max no. of masses= 400                             
              mass type = m_rigid_6                              
              mass name = car_1                                  
              cannot be created, skip the rest of datagroup      
                                                                 

Efter ***ERROR*** texten anges vilken subrutin som har genererat utskriften. På andra raden anges vad felet är, och på tredje och fjärde raden anges vilken komponenttyp och komponentnamn som är under bearbetning när felet uppstod. Med sista raden menas att programmet slaskläser det antal poster som finns kvar att läsa till indatagruppen. Efter denna utskrift kommer programmet att stoppas och körscriptet att avbrytas.

Ett icke fatalt fel har följande principiella utseende:

                                                                 
  * warning * In Error: from routine=In_coupl                    
              variablename kxkb_1h is already defined            
              coupling type = k_lin                              
              coupling name = kxkb_1h                            
              cannot be created, skip the rest of datagroup      
                                                                 

Efter * warning * texten anges vilken subrutin som har genererat utskriften, och i detta fall har utskriften skett i rutinen Error på uppdrag av rutinen In_coupl. På andra raden anges felorsaken, och på tredje och fjärde raden anges vilken komponenttyp och komponentnamn som var under bearbetning när felet uppstod. Med sista raden menas att programmet slaskläser det antal poster som finns kvar att läsa till indatagruppen, så att nästa indatagrupp kan läsas.


Läsning av indata från separat ASCII-fil

Med hjälp av kommando `insert` kan ascii-filer expanderas in till indatafilen. V.v. se användarhandledningen för program CALC för ytterligare information.


Definiering och inläsning av substrukturer.

För att göra indata mera lätthanterligt är det möjligt att definiera substrukturer över indatagrupper som förekommer på flera ställen. En substruktur definieras med kommandot:

                                 
  substruct struct_name [        
      _  _  _  _  _              
      _  _  _  _  _              
                                 
    indata kommandon             
      _  _  _  _  _              
      _  _  _  _  _              
                                 
  ]                              
                                 

Varje substruktur tilldelas ett namn "struct_name" och inom klamrar [ ] defineras vad substrukturen skall innehålla. Denna struktur lagras nu undan på en egen temporär fil för att bli uppkallad av direktivet in_substruct. Denna substruktur har vissa likheter med ett UNIX-script det innehåller kommandoradsargument $1, $2, osv upp till $9. När sedan kommandot in_substruct ges måste dessa argument ersättas med en teckensträng eller ett tal. Rutinen som sätter in argumenten i substrukturen är en ren texteditor, om ett tal anges som argument vid anrop av en substruktur så behandlas det ändock som en textsträng som ersätter tecknet $1 i substrukturen.

Inläsning av en definierad substruktur till indatafilen görs med kommandot:

                                                
  in_substruct struct_name [ arg1 arg2 osv ]    
                                                

definiering av argumenten till substrukturen görs inom klammerparenteser.



Beskrivning av beräkningsmetod.

Indatamodellen byggs upp på följande sätt, först beskrivs geometrin för programmet med kommandona `lsys`, `mass` och `coupl` sedan kan styvheter och dämpningar beräknas med kommandona `coupl pre_efreq`, `coupl pre_edamp`, `coupl pre_twist` och `coupl pre_sway'. Dessa kommandon skapar kopplingsproperties av typ p_lin i minnet. Om flera kommandon ges med samma propertynamn så blir minnet överskrivet för varje kommando och resultatet som kvarsår när alla indata har lästs gäller vid utskrift av utdata.



Indatabeskrivning

Kommandon som beskrivs CALC-användarhandledningen

Program PREDAT förstår alla indatakommandon som program CALC gör v.g. se dokumentationen i CALC-manualen.


Kommandon som gäller speciellt PREDAT

coupl = Definierar en kopplingsegenskap eller en koppling.
lsys = Inläsning av koordinatsystem.
mass = Inläsning av massa.

`coupl` = `c_type`, input(*)

Definierar hur en kopplingsegenskap skall beräknas.
Till huvudkommando `coupl` finns fyra olika typer av underkommandon, dessa är:

  1. Underkommandon som inleds med bokstaven 'k' avser definition av styvhetskoppling mellan två kroppar (Se vidare information i CALC-manualen).
  2. Underkommandon som inleds med bokstaven 'c' avser definition av dämpningskoppling mellan två kroppar (Se vidare information i CALC-manualen).
  3. Underkommandon som inleds med bokstaven 'kc' avser definition av koppling bestående av dämpare seriekopplad med en fjäder (Se vidare information i CALC-manualen).
  4. Underkommandon som inleds med bokstaven 'p' avser definition av kopplingsegenskap även kallat property (Se vidare information i CALC-manualen).
  5. Underkommandon som inleds med bokstaven 'pre' är speciella för program PREdat och avser beräkning av en kopplingsegenskap. Alla underkommandon som inleds med `pre` genererar en kopplingsegenskap typ `p_lin` i minnet.

Följande underkommandon är speciella för PREdat och är avsedda för att beräkna kopplingsegenskaper enligt önskad metod:

pre_copy = Kopiera en tidigare definierad egenskap.
pre_edamp = Beräkna dämpkoefficient m.h.t. önskad relativdämpning.
pre_efreq1 = Beräkna styvhet m.h.t. önskad egenfrekvens.
pre_efreq2 = Samma som pre_efreq1 men styvheten beräknas i QUASI.
pre_load = Beräkna statiska lasten genom en vertikalfjäder.
pre_oper = Beräkning av egenskap analogt med kommandot `func oper`.
pre_twist = Styvheten beräknas m.h.t. till hjulomlastningen.
pre_twist_u = Tidigare beräknad styvhet begränsas uppåt m.h.t. till krav på hjulomlastning.
pre_sway = Styvheten beräknas ur krängningskoefficienten.
pre_sway_l = Tidigare beräknad styvhet begränsas nedåt m.h.t. till krav på maximal krängning.

c_type = `pre_copy`

Kopierar en kopplingsegenskap från en tidigare definierad egenskap.

                                               
  input(*) = `p_name', `p2_name'               
                                               
p_name = Namngivning av denna egenskap.
p2_name = Namngivning av befintlig egenskap.
Lagrade signaler till minnet:
p_name.F0 = Kraft vid nollförskjutning.
p_name.v1 = Kopplingens egenskapsvärde.

c_type = `pre_edamp`

Beräknar en kopplingsegenskap ur önskad relativdämpning.

                                                                
  input(*) = `p_name', `mass', `dire`, set                      
                                                                
p_name = Namngivning av denna egenskap.
mass = Massa vars egenfrekvens skall tilldelas önskad relativdämpning.
dire = Svängningsriktning för massan. Tillåtna rörelseriktningar är: x, y, z, f, k och p.
set = Relativdämpningens värde.

Beräkningen av dämpningsegenskapen tillgår på följande sätt:

  1. Styvheten som massan är inspänd med bestämms genom att massan flyttas ett litet stycke epsilon från vilotillståndet. Bara de styvheter som är definierade ger bidrag till massans inspänning, ej definierade styvheter ger nollbidrag till massans infästningsstyvhet.
  2. Önskad dämpkoefficient mellan massan och en fix punkt i modellen beräknas enligt följande formel:
                                                       
      c = 2. * set * sqrt(k*m)                         
                                                       
      Där: c = Infästningsdämpningen.                  
           k = Infästningsstyvheten                    
           m = Massans värde i aktuell riktning dire.  
                                                       
    
  3. Slutligen varieras egenskapen p_name så att den önskade total dämpningen c uppnås. När denna beräkning görs så rörs inga andra frihetsgrader än aktuell massa i aktuell riktning.
Lagrade signaler till minnet:
p_name.v1 = Dämparens dämpningskoefficient.

c_type = `pre_efreq1` och `pre_efreq2`

Beräknar en kopplingsegenskap ur önskad egenfrekvens. C_type=`pre_efreq1` används då omgivande massor kan anses vara stillastående när önskad egenfrekvens exciteras. C_type=`pre_efreq2` används då omgivande massor följer med när önskad egenfrekvens exciteras.

                                                
  input(*) = `p_name', `mass', `dire`, freq     
                                                
p_name = Namngivning av denna egenskap.
mass = Massa vars egenfrekvens skall tilldelas önskad egenfrekvens.
dire = Svängningsriktning för massan. Tillåtna rörelseriktningar är: x, y, z, f, k och p.
freq = Önskad egenfrekvens.

Beräkningen av styvhetsegenskapen tillgår på följande sätt:

Lagrade signaler till minnet:
p_name.v1 = Kopplingens egenskapsvärde.

c_type = `pre_load`

Beräkna statiska lasten genom en vertikalstyvhet.

                                 
  input(*) = `p_name', `signal'  
                                 
p_name = Namngivning av denna egenskap.
signal = Signal vars värde skall hämtas och tilldelas kopplingsegenskapen dess förspänningskraft. Lämpligen väljes denna signal lika med c_name.F1z där c_name bär namnet från kopplingen vars property skall ställas.

Beräkningen av statiska lasten tillgår på följande sätt:

Programmet uppsöker den kvasistationära jämnvikten i systemet. Fordonet måste då sjunka så lågt att, fjädrarna tar upp massornas statiska last. Värdet som erhålls i signalen `signal' vilket är kraften i fjädern, läses av och dess värde kopieras till p_name.F0. Därefter görs en förnyad kvasistationär beräkning så att systemet hittar sin nya kvasistationära position.

Lagrade signaler till minnet:
p_name.F0 = Kraft vid nollförskjutning.

c_type = `pre_oper`

Definierar en kopplingsegenskap som beräknas ur konstanter och tidigare definierade signaler.

                                                                   
  input(*) = `p_name', -`var1, `oper1`, -`var2, `oper2, ....osv.   
                                                                   
p_name = Namngivning av denna egenskap.
var1 = Namn på insignal eller indata 1.
oper1 = Operation nummer 1.
var2 = Namn på insignal eller indata 2.
oper2 = Operation nummer 2.
Tillåtna operationer är följande symboler:
`+` = Addition.
`-` = Subtraktion.
`*` = Multiplikation.
`/` = Division.
`(` = Vänsterparentes.
`)` = Högerparentes.

Observera att mellan varje `var` och `oper` måste ett avskiljningstecken finnas. Ett avskiljningstecken är ett mellanslag eller ett , (komma). Operationerna görs från vänster till höger utan prioritering mellan operationerna. Parenteser är bara tillåtna upp till en nivå.

Lagrade signaler till minnet:
p_name.v1 = Kopplingens egenskapsvärde.

c_type = `pre_twist`

Styvheten beräknas m.h.t. till hjulomlastningen. Axlarnas och spårstyckenas vaggningsvinkel kan ställas individuellt och ett numeriskt värde på hur mycket kontaktkraften mellan hjul och räl får ändras efter vinkelställningen kan anges. Därigenom kan den vertikala styvheten beräknas. Antalet massor(spårstycken) som skall vridas vid en beräkning är godtyckligt, parentesen kring de sista tre argumenten markerar att PREdat läser indatagrupper om tre tills ett nytt huvudkommando ges.

                                                                
  input(*) = `p_name', `Fvar', rel_sig, (mass, dire, angle)     
                                                                
p_name = Namngivning av denna egenskap.
Fvar = Namn på signal vars värdesförändring skall ställas.
rel_sig = Anger hur mycket `Fvar' får förändras efter vinkling av spårstyckena.
mass = Namn på spårstyckena.
dire = Riktning som spårstyckena skall röra sig i, normalt är riktningen lika med `f`.
angle = Vinkel som spårstyckena skall vinkla sig, vid beräkning av förändringen `Fvar'.

Beräkningen av styvheten tillgår på följande sätt:


c_type = `pre_twist_u`

Styvhetsegenskapen beräknas på samma sätt som för kommando `pre_twist` med den skillnaden att detta kommando ger ett övre gränsvärde för styvheten. Är den befintliga styvheten lägre än det beräknade med 'pre_twist' så görs ingen åtgärd. Men om styvheten är högre så blir den sänkt till den nivå som anges av värdet i rel_sig. Om styvheten inte tidigare finns definierad så får kommandot samma effekt som kommando `pre_twist`.

Indata och beräkningsmetod är lika som för pre_twist enligt ovan.


c_type = `pre_sway`

Styvheten i p_name beräknas ur krängningsskillnaden mellan korgen och spåret. Spårets vaggningsvinkel kan ställas individuellt för varje axel och ett numeriskt värde på krängningsskillnaden mellan korg och underlag kan anges. Därigenom kan den vertikala styvheten beräknas. Antalet massor(spårstycken) som skall vridas vid en beräkning är godtyckligt, parentesen kring det sista argumenten markerar att PREdat läser kroppar(axlar) tills ett nytt huvudkommando ges.

                                                               
  input(*) = `p_name', `mass1', `dire`, rcoeff, (`mass2')      
                                                               
p_name = Namngivning av denna egenskap.
mass1 = Namn på kroppen, vars krängningskoefficient skall ställas till önskat värde. Normalt är kroppen lika med fordonets korg.
dire = Rörelseriktning för vilken signalskillnaden skall beräknas, är normalt lika med `f`.
rcoeff = Anger hur mycket `mass1' får förändras i riktning `dire`, efter ändring av mass2 ett stycke epsilon i riktningen `dire`.
mass2 = Namn på kropparna som ändras ett stycke epsilon. Normalt är kropparna lika med spårstyckena under axlarna.

Beräkningen av styvheten tillgår på följande sätt:



c_type = `pre_sway_l`

Styvhetsegenskapen beräknas på samma sätt som för kommando `pre_sway` med den skillnaden att detta kommando ger ett nedre gränsvärde för styvheten. Är den befintliga styvheten högre än det beräknade med 'pre_sway' så görs ingen åtgärd. Men om styvheten är lägre så höjs den till den nivå som anges av värdet i rcoeff. Om styvheten inte tidigare finns definierad så får kommandot samma effekt som kommando `pre_sway`.

Indata och beräkningsmetod är lika som för pre_sway enligt ovan.


`lsys` = `l_type`, input(*)

För att kunna definiera en massa krävs att det finns ett lsys som massan kan relateras till, och för att kunna definiera ett lsys krävs ett esys som lsys kan relateras till. Se mera detal- jerad beskrivning i användarhandledningen till CALC och teori- rapporten för GENSYS-programmen.


Följande typer koordinatsystem är gemensamma för CALC och PREdat, dessa beskrivs närmare i användarhandledningen för CALC-programmet:

`e_fix` = Skapar ett fixt esys.
`e_abs_bend` = Skapar ett esys som styrs av en krökningssignal.
`l_local` = Skapar ett linjärt lokalt lsys.

Följande koordinatsystem gäller speciellt för PREdat:

`pre_local` = Skapar ett koordinatsystem typ l_local.

Skillnaden mellan pre_local och l_local är att pre_local tillåter att signaler kan användas som argument i indata.

                                                 
  input(*) = `l_name', `esys', -`xk, -`yk, -`zk  
                                                 
l_name = Namn på det skapade koordinatsystemet.
esys = Namn på det eulersystem, som l_name relateras till. Om ett lsys anges istället för ett esys, så söker pro- grammet det esys som ligger bakom det angivna lsys sytemet, och xk,yk,zk summeras upp från de båda systemen.
xk,yk,zk = Koordinatsystemets placering relativt esys.

`mass` = `m_type`, input(*)

Definition av massa.


Förutom alla masstyper som beskrivs i CALC-manualen finns även följande masstyper att tillgå i program PREDAT:

pre_box1 = Från lådform skapa en massa typ m_rigid_6.
pre_rigid_1 = Skapar en massa som endast har frihetsgrader i en riktning.
pre_wset1 = Från axelform skapa en massa typ m_rigid_6.

m_type = `pre_box1`, input(*)

PREdat skapar en massa av typ m_rigid_6 ur indata givna till detta kommando.

                                                                
  input(*) = `m_name', `lsys', mass, rel_a, rel_b, rel_h,       
                      atp, btp, htp, dim_a, dim_b, dim_h        
                                                                
m_name = Namn på den skapade massan.
lsys = Namn på det lokala koordinatsystemet.
mass = Kroppens vikt.
rel_a = Kroppens relativa tröghetsradie i X-led.
rel_b = Kroppens relativa tröghetsradie i Y-led.
rel_h = Kroppens relativa tröghetsradie i Z-led.
atp = Kroppens tyngdpunktskoordinat i X-led relativt lsys.
btp = Kroppens tyngdpunktskoordinat i Y-led relativt lsys.
htp = Kroppens tyngdpunktskoordinat i Z-led relativt lsys.
dim_a = Kroppens huvudmått i X-led.
dim_b = Kroppens huvudmått i Y-led.
dim_h = Kroppens huvudmått i Z-led.

Kommandot genererar en massa typ m_rigid_6 där indata ser ut på följande sätt:

                                                        
  input(*) = `m_name', `lsys' atp, btp, htp, m_diag     
                                                        

Där m_name, lsys, atp, btp, htp direkt kopieras från indata till pre_box1. Och m_diag beräknas på följande sätt:

m_diag(1) = mass
m_diag(2) = mass
m_diag(3) = mass
m_diag(4) = ((rel_b*dim_b)2 + (rel_h*dim_h)2) / 48
m_diag(5) = ((rel_h*dim_h)2 + (rel_a*dim_a)2) / 48
m_diag(6) = ((rel_a*dim_a)2 + (rel_b*dim_b)2) / 48

Kroppar med liknande utseende och form får relativt konstanta värden på rel_a, rel_b och rel_h, dessa tal är avsedda att vara konstanta från fall till fall. Däremot ändras kropparnas dimensioner mellan olika projekt varför dim_a, dim_b och dim_h måste uppdateras.


m_type = `pre_rigid_1`, input(*)

Skapar en 3-dimensionell massa men 5 av massans rörelseriktningar är låsta.

                                                                  
  input(*) = `m_name', `lsys' -`atp, -`btp, -`htp, `mass, `dire`  
                                                                  
m_name = Namn på den skapade massan.
lsys = Namn på det lokala koordinatsystem vilket massan relateras till.
atp,btp,htp = Massans tyngdpunkt relativt lsys.
mass = Massans vikt eller tröghetsmoment i riktning dire.
dire = Koordinatriktning som massan har rörelsefrihetsgrad.

m_type = `pre_wset1`, input(*)

PREdat skapar en massa av typ `m_rigid_6` ur indata givna till detta kommando.

                                                                        
  input(*) = `m_name', `lsys', mass, rel_a, rel_b, rel_h, spv, diam     
                                                                        
m_name = Namn på den skapade massan.
lsys = Namn på det lokala koordinatsystemet.
mass = Kroppens vikt.
rel_a = Kroppens relativa tröghetsradie i X-led.
rel_b = Kroppens relativa tröghetsradie i Y-led.
rel_h = Kroppens relativa tröghetsradie i Z-led.
spv = Spårvidd.
diam = Hjuldiameter.

Kommandot genererar en massa typ m_rigid_6 där indata ser ut på följande sätt:

                                                        
  input(*) = `m_name', `lsys' atp, btp, htp, m_diag     
                                                        

Där m_name, lsys, atp, btp, htp direkt kopieras från indata till pre_box1. Och m_diag beräknas på följande sätt:

atp = 0.
btp = 0.
htp = -diam / 2.
m_diag(1) = mass
m_diag(2) = mass
m_diag(3) = mass
m_diag(4) = ((rel_b*spv )2 + (rel_h*diam)2) / 48
m_diag(5) = ((rel_h*diam)2 + (rel_a*diam)2) / 48
m_diag(6) = ((rel_a*diam)2 + (rel_b*spv )2) / 48


Command line options


For program PREDAT a number of command line options are available. The user can put his or hers favorite options in a file named .gen_conf. Program PREDAT searches primarily for the .gen_conf-file in the local working directory. If the file not can be found in the local working directory, program PREDAT searches for the .gen_conf-file in the users home-directory. At last if no .gen_conf-file can be found program PREDAT reads the file $gensys/bin/gen_conf. Following options are understood:

-addarg = Prompt for more arguments before calculation starts
-debug = Don't remove temporary workfiles after execution
-help = Print this help information
-overwrite = Overwrite old results without questions.
-qident = Ask for an ident before starting the execution
-qread_runf = Ask if a new input data file shall be opened in an editor before execution.
arg(1) = Inputdatafile
arg(2) = Ident

All of the above options can be given with the prefix no_. If the prefix no_ has been given, the opposite meaning of the option will apply.


Example:

Following example: Master.predatf can be used as a master file:

                                                                                
  head 1 Create a mass of 2(kg)                                                 
  head 2 Create a stiffness and a damper giving the system properties           
  head 3 fo= 0.8 Hz and zeta= 0.2                                               
#                                                                               
#                                                                               
  idebug = 1                                                                    
  tsim_param= heun_u  1      #Select an integrator with variable step           
  tstart= 0.  tstop= 16.     #Select start and stop times.                      
  tout= 0.020 tstep= 0.001   #Select storing step and initial integration step  
#                                                                               
#                                                                               
# Create coordinate systems                                                     
#                                                                               
# lsys   typ       namn          koordinat                                      
  lsys   e_fix     esys          0. 0. 0.                                       
  lsys   l_local   lsys   esys   0. 0. 0.                                       
#                                                                               
#                                                                               
# Create the mass                                                               
#                                                                               
# mass   m_type       m_name   lsys   c.g.        diagonal of mass matrix       
  mass   m_rigid_6    massa    lsys   0.  0.  0.  2 2 2  2 2 2                  
  mass   fixpoint_6   point    lsys   0.  0.  0.                                
#                                                                               
  constr fix_rigid_1  massa    x      0.                                        
  constr fix_rigid_1  massa    z      0.                                        
  constr fix_rigid_1  massa    f      0.                                        
  constr fix_rigid_1  massa    k      0.                                        
  constr fix_rigid_1  massa    p      0.                                        
#                                                                               
#                                                                               
# Create couplings                                                              
#                                                                               
# coupl  c_type    c_name  koppl    infästn.punkt  styvhet                      
#                                                                               
  coupl  k         kyy     point    0.  0.  0.                                  
                           massa    0.  0.  0.     kyyp esys y                  
  coupl  c         cyy     point    0.  0.  0.                                  
                           massa    0.  0.  0.     cyyp esys y                  
#                                                                               
#                                                                               
# Create properties                                                             
#                                                                               
  coupl  pre_efreq1 kyyp   massa y  .8                                          
  coupl  pre_edamp  cyyp   massa y  .2                                          
#                                                                               
eof                                                                             


Home    Search    Reference Manuals