Marko Petek's Thesis application 1.0
The Marko Petek's code for numerical analysis of nonlinear damped and driven oscillation.
|
Specifični solver, ki zastopa vsiljeno nihanje. More...
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. |
Specifični solver, ki zastopa vsiljeno nihanje.
IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DrivenHarmonicPendulum | ( | ) | [inline] |
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.
t | Čas. Neodvisna spremenljivka. |
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).
const string IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DefaultName = "Vsiljeno nihanje." |
const double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DefaultAngularFrequencySquare = 4.0 |
const double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DefaultDampingCoefficient = 0.25 |
const double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DefaultDrivingAmplitude = 5 |
const double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::DefaultDrivingAngularFrequency = 1.0 |
List<string> IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_drivenPendulumVariableNames = new List<string>(4) { "t", "x", "v", "a" } |
double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_angularFrequencySquare = DefaultAngularFrequencySquare [protected] |
Lastna frekvenca nihala.
double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_dampingCoefficient = DefaultDampingCoefficient [protected] |
double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_drivingAmplitude = DefaultDrivingAmplitude [protected] |
List<double[]> IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_analyticalSSAmplitudeVsDrivingFrequency [private] |
Seznam drži ananlitično izračunane amplitude dolgoročne rešitve v odvisnosti od frekvence vsiljevanja pri trenutnih parametrih nihala.
int IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_domainDensityMultiplier = 1 [protected] |
Kolikokrat gosteje (od numerične) naj prečesa analtično odvisnost dolgoročne amplitude od frekvence vsiljevanja.
double IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum::_startDampingCoefficient [protected] |
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 [protected] |
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 [protected] |
Velikost koraka 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::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].