Marko Petek's Thesis application 1.0
The Marko Petek's code for numerical analysis of nonlinear damped and driven oscillation.

IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum Class Reference

Specifični solver, ki zastopa vsiljeno nihanje. More...

Inheritance diagram for IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum:
Collaboration diagram for IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum:

List of all members.

Public Member Functions

override double DE (double[] arg)
 Vsiljeno harmonsko nihanje.
override double DrivingFunction (double t)
 Funkcija vsiljevanja.
 DrivenHarmonicPendulum ()
void LoadDrivingFunctionInSolution ()
 Tabelira funkcijo vsiljevanja in jo naloži v tabelo Solution, ki je vir podatkov za GeneralPlotter.
void FindAnalyticallyPhaseVsDrivingFrequency ()
 Vzorči fazni zamik nihanja glede na vsiljevanje v odvisnosti od vsiljevane frekvence. para>Parametri: NSamplesForResonanceCurve, StartingDrivingFrequnecy, EndingDrivingFrequency v razredu DrivenPendulumBase.
void SolveAnalytically ()
 Vsebuje analitično rešitev, ki jo ob podaji začetnih in končnih pogojev izpiše v tabelo _solutionMain, ki živi na tem specifičnem solverju.
void CalculateExactErrors ()
 Izračuna numerično in analitično rešitev pri istih parametrih in ju nato odšteje med seboj. Nato nariše graf teh razlik.
void CalcAnalyticalAmplitudeVsDrivingFrequnecy ()
 Metoda analitično izračuna amplitude dolgoročne rešitve v odvisnosti od frekvence vsiljevanja.
void CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency ()
 Nariše parametrično krivuljo pozicije resonančnih vrhov v odvisnosti od koeficienta dušenja (modra krivulja).

Public Attributes

const string DefaultName = "Vsiljeno nihanje."
const double DefaultAngularFrequencySquare = 4.0
const double DefaultDampingCoefficient = 0.25
const double DefaultDrivingAmplitude = 5
const double DefaultDrivingAngularFrequency = 1.0
List< string > _drivenPendulumVariableNames = new List<string>(4) { "t", "x", "v", "a" }

Protected Attributes

double _angularFrequencySquare = DefaultAngularFrequencySquare
 Lastna frekvenca nihala.
double _dampingCoefficient = DefaultDampingCoefficient
double _drivingAmplitude = DefaultDrivingAmplitude
int _domainDensityMultiplier = 1
 Kolikokrat gosteje (od numerične) naj prečesa analtično odvisnost dolgoročne amplitude od frekvence vsiljevanja.
double _startDampingCoefficient
 Začetni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].
double _endDampingCoefficient
 Končni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].
double _stepSizeDampingCoefficient
 Velikost koraka za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

Properties

double AngularFrequencySquare [get, set]
 Lastna frekvenca nihala.
double DampingCoefficient [get, set]
 Koeficient dušenja pri linearnem uporu.
double DrivingAmplitude [get, set]
double ResonantDrivingFrequencySquare [get]
 Kvadrat resonančne frekvence vzbujanja pri trenutnuh parametrih harmonskega nihala.
double ResonantAmplitude [get]
 Resonančna amplituda harmonskega oscilatorja.
double PhaseAnalytical [get]
 Fazni zaostanek nihala za vsiljevanjem, izračunan analitično.
double AnalyticalSteadyStateAmplitude [get]
 Analitično izračunana amplituda dolgoročne rešitve.
int DomainDensityMultiplier [get, set]
 Kolikokrat gosteje (od numerične) naj prečesa analtično odvisnost dolgoročne amplitude od frekvence vsiljevanja.
double StartDampingCoefficient [get, set]
 Začetni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].
double EndDampingCoefficient [get, set]
 Končni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].
double StepSizeDampingCoefficient [get, set]
 Velikost koraka za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

Private Attributes

List< double[]> _analyticalSSAmplitudeVsDrivingFrequency
 Seznam drži ananlitično izračunane amplitude dolgoročne rešitve v odvisnosti od frekvence vsiljevanja pri trenutnih parametrih nihala.

Detailed Description

Specifični solver, ki zastopa vsiljeno nihanje.


Constructor & Destructor Documentation

IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DrivenHarmonicPendulum ( ) [inline]

Member Function Documentation

override double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DE ( double[]  arg) [inline, virtual]

Vsiljeno harmonsko nihanje.

Implements IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase.

override double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DrivingFunction ( double  t) [inline, virtual]

Funkcija vsiljevanja.

Parameters:
tČas. Neodvisna spremenljivka.
Returns:

Implements IG::MPetekLib::Algorithms::SpecificSolver::DrivenPendulumBase.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::LoadDrivingFunctionInSolution ( ) [inline]

Tabelira funkcijo vsiljevanja in jo naloži v tabelo Solution, ki je vir podatkov za GeneralPlotter.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::FindAnalyticallyPhaseVsDrivingFrequency ( ) [inline]

Vzorči fazni zamik nihanja glede na vsiljevanje v odvisnosti od vsiljevane frekvence. para>Parametri: NSamplesForResonanceCurve, StartingDrivingFrequnecy, EndingDrivingFrequency v razredu DrivenPendulumBase.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::SolveAnalytically ( ) [inline]

Vsebuje analitično rešitev, ki jo ob podaji začetnih in končnih pogojev izpiše v tabelo _solutionMain, ki živi na tem specifičnem solverju.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::CalculateExactErrors ( ) [inline]

Izračuna numerično in analitično rešitev pri istih parametrih in ju nato odšteje med seboj. Nato nariše graf teh razlik.

Zaenkrat metoda učinkuje samo na x spremenljivki. v in a se ne obravnavata.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::CalcAnalyticalAmplitudeVsDrivingFrequnecy ( ) [inline]

Metoda analitično izračuna amplitude dolgoročne rešitve v odvisnosti od frekvence vsiljevanja.

void IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency ( ) [inline]

Nariše parametrično krivuljo pozicije resonančnih vrhov v odvisnosti od koeficienta dušenja (modra krivulja).


Member Data Documentation

Seznam drži ananlitično izračunane amplitude dolgoročne rešitve v odvisnosti od frekvence vsiljevanja pri trenutnih parametrih nihala.

Kolikokrat gosteje (od numerične) naj prečesa analtično odvisnost dolgoročne amplitude od frekvence vsiljevanja.

Začetni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

Končni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

Velikost koraka za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].


Property Documentation

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::AngularFrequencySquare [get, set]

Lastna frekvenca nihala.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DampingCoefficient [get, set]

Koeficient dušenja pri linearnem uporu.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DrivingAmplitude [get, set]
double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::ResonantDrivingFrequencySquare [get]

Kvadrat resonančne frekvence vzbujanja pri trenutnuh parametrih harmonskega nihala.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::ResonantAmplitude [get]

Resonančna amplituda harmonskega oscilatorja.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::PhaseAnalytical [get, protected]

Fazni zaostanek nihala za vsiljevanjem, izračunan analitično.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::AnalyticalSteadyStateAmplitude [get]

Analitično izračunana amplituda dolgoročne rešitve.

int IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DomainDensityMultiplier [get, set]

Kolikokrat gosteje (od numerične) naj prečesa analtično odvisnost dolgoročne amplitude od frekvence vsiljevanja.

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::StartDampingCoefficient [get, set]

Začetni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::EndDampingCoefficient [get, set]

Končni koeficient dušenja za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].

double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::StepSizeDampingCoefficient [get, set]

Velikost koraka za izračun vseh koeficientov dušenja za katere naj metoda CalcAnalyticalResonantAmplitudeVsResonantDrivingFrequency() izračuna točke [resonančna frekvenca, resonančna amplituda].


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties