镜像法计算变压器漏磁场之四
铁心线圈磁场计算的编程实现。
八、变压器漏磁场计算C++编程实现
1、数据结构定义
struct Point
{
double x, y;
Point() { x = y = 0; }
Point(double x, double y) { this->x =x, this->y = y; }
Point& Offset(double dx, double dy) { x += dx, y += dy; return *this; }
};
struct Wire
{
Point pnt;
double w;
double h;
double J; // 电密
void GetVertex(Point* arVtx) const
{
arVtx[0] = Point(pnt.x, pnt.y);
arVtx[1] = Point(pnt.x + w, pnt.y);
arVtx[2] = Point(pnt.x + w, pnt.y + h);
arVtx[3] = Point(pnt.x, pnt.y + h);
}
Point GetCenter() const { return Point(pnt.x+w/2, pnt.y+h/2); }
Wire& Offset(double dx, double dy) { pnt.Offset(dx, dy); return *this; }
Wire& Clon() const { return Wire(*this); }
};
struct Node
{
double x;
double y;
double B;
double α;
double A;
Node() { x = y = A=B= α= 0; }
Node(double x, double y, double v=0) {
this->x = x; this->y = y; B = v; A = α = 0;
}
operator CPoint() const { return CPoint(int(x + 0.5), int(y + 0.5)); }
};
struct Edge
{
Edge() { x1 = x2 = y1 = y2 = 0; }
double x1;
double y1;
double x2;
double y2;
};
struct Triangle
{
Triangle() { arNode[0] = NULL, arNode[1] = NULL, arNode[2] = NULL; }
Triangle(Node* p1, Node* p2, Node* p3) {arNode[0] = p1; arNode[1] = p2; arNode[2] = p3;}
void GetExtremumB(double& nMin, double& nMax) const {
nMin = nMax= arNode[0]->B;
for (int i=1; i<3; i++)
{
nMin = min(nMin, arNode[i]->B);
nMax = max(nMax, arNode[i]->B);
}
}
void GetExtremumA(double& nMin, double& nMax) const {
nMin = nMax = arNode[0]->

本文介绍了一种使用C++编程实现变压器漏磁场计算的方法。通过定义必要的数据结构,包括点、导线、节点等,并利用这些结构进行磁场计算。此外,还提供了计算原始电流和镜像电流产生的磁场的具体步骤。
1881

被折叠的 条评论
为什么被折叠?



