有 3 个正弦输入电压,彼此相差 (2/3)pi,幅度为 230 V。程序应检测指定的间隔。从 I 到 VI 有六个正常间隔。在每个正常区间内,一相输入电压最高,一相最低,一相居中(见附图)。由于输入电压的相对大小在正常区间边界附近不清楚,因此在六个正常区间之间插入六个临界区间(I-II,II-III,...,VI-I)。在每个临界区间内,有两个输入电压相似,它们的相对大小很难区分。所以在 2pi 框架中总共有 12 个间隔,每个间隔应该是 pi/6。 该 C 程序是模拟程序的一部分。我测量了 3 相输入电压,它们是我的 c 脚本块的输入。
我开始对正常间隔进行编程,但我不知道如何对临界间隔进行编程。我如何指定每个扇区/间隔是 pi/6 大?在我的 if 情况下,我只指定电压的幅度而不指定相移。
#include <float.h>
#include <math.h>
#define u1 InputSignal(0, 0)
#define u2 InputSignal(0, 1)
#define u3 InputSignal(0, 2)
#define voltage_sector OutputSignal(0, 0)
#define PI 3.14159265358979323846
//normal intervals
if ((u1 > u2) && (u1 > u3) && (u2 > u3))
{
voltage_sector = 1;
}
else if ((u2 > u1) && (u2 > u3) && (u1 > u3))
{
voltage_sector = 2;
}
else if ((u2 > u3) && (u2 > u1) && (u3 > u1))
{
voltage_sector = 3;
}
else if ((u3 > u2) && (u3 > u1) && (u2 > u1))
{
voltage_sector = 4;
}
else if ((u3 > u1) && (u3 > u2) && (u1 > u2))
{
voltage_sector = 5;
}
else if ((u1 > u3) && (u1 > u2) && (u3 > u2))
{
voltage_sector = 6;
}