Добавьте файлы проекта.
This commit is contained in:
76
main.cpp
Normal file
76
main.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
#include <iostream>
|
||||
#include <Eigen/Dense>
|
||||
#define M_PI 3.14159265358979323846 // pi
|
||||
|
||||
using namespace Eigen;
|
||||
|
||||
#define STATE_VARS 3*2 // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define PHI 5 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define EDS 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MATRIX_DIM STATE_VARS+PHI+EDS // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
const double TK = 1e-3; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
const double T_Start = 1e-10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
const double SMN = 1e-15; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
const double ACR = 1e-2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double TAU = 5e-9;
|
||||
double MFt = 0.026;
|
||||
|
||||
double C1 = 0.1;
|
||||
double Cb = 2e-12;
|
||||
|
||||
double L = 0.001;
|
||||
|
||||
double R1 = 1000;
|
||||
double R2 = 10000;
|
||||
double Ru = 1e+6;
|
||||
double Rb = 20;
|
||||
|
||||
double I = 1;
|
||||
double It = 1e-12;
|
||||
|
||||
double IL_prev = 0;
|
||||
double UC1_prev = 0;
|
||||
double UCb_prev = 0;
|
||||
|
||||
double E2 = 5.;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
double E1(double t) {
|
||||
const double amplitude = 10.0;
|
||||
const double period = 1e-4;
|
||||
const double frequency = 2 * M_PI / period;
|
||||
const double phase = 0.0;
|
||||
return amplitude * sin(frequency * t + phase);
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MatrixXd Y = MatrixXd::Zero(MATRIX_DIM, MATRIX_DIM);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
VectorXd x = VectorXd::Zero(MATRIX_DIM);
|
||||
|
||||
void Jacobian(double dt) {
|
||||
Y(0, 0) = 1, Y(0, 3) = -1. / dt;
|
||||
Y(1, 1) = 1, Y(1, 4) = -1. / dt;
|
||||
Y(2, 2) = 1, Y(2, 5) = -1. / dt;
|
||||
|
||||
Y(3, 3) = 1., Y(3, 0) = -1.;
|
||||
Y(4, 4) = 1., Y(4, 8) = -1., Y(4, 9) = 1.;
|
||||
Y(5, 2) = L, Y(5, 7) = -1., Y(5, 10) = 1.;
|
||||
|
||||
Y(6, 6) = 1. / R1, Y(6, 7) - 1. / R1, Y(6, 11) = -1.;
|
||||
Y(7, 5) = 1., Y(7, 6) = -1. / R1, Y(7, 7) = 1. / R1 + 1. / Rb, Y(7, 8) = -1. / Rb;
|
||||
Y(8, 1) = Cb, Y(8, 7) = -1. / Rb, Y(8, 8) = 1. / Rb + 1. / Ru, Y(8, 9) = -1. / Ru;
|
||||
Y(9, 1) = -Cb, Y(9, 8) = -1. / Ru, Y(9, 9) = 1. / Ru, Y(9, 11) = 1.;
|
||||
Y(10, 0) = C1, Y(10, 5) = -1., Y(10, 10) = 1. / R2;
|
||||
|
||||
Y(11, 6) = -1.;
|
||||
Y(12, 9) = -1.;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Jacobian(0.1);
|
||||
std::cout << Y;
|
||||
}
|
||||
Reference in New Issue
Block a user