📄 fcusimulatordlg.cpp
字号:
{
// TODO: Add your message handler code here and/or call default
double NowTime;
//OnButtonRecv(); //接受控制命令
NowTime = 2 * PI * ((double)(RealTime%100)/100);//时间
GenerationCommandProcess();// 根据指令改变状态
GenerationDataSource(NowTime);// 根据时间产生数据
RealTime = RealTime + TIMEDELAY;// 时间轴向右移
// 发送一个批次的数据
OnButtonSend();
CDialog::OnTimer(nIDEvent);
}
void CFcuSimulatorDlg::GenerationDataSource(double now)
{
//发电机1,发电机2是否已经启动
Generator_Start(now);
//Generator_BusOn(now);
//Generator_BusOff(now);
//发电机1,发电机2是否已经tingzhi
Generator_Stop(now);
//电网状态(有待考虑)
//发电机1,发电机2至少有一个已经合闸
if((Generator1_state == GENERATOR_STATUS_BUSON)||(Generator2_state == GENERATOR_STATUS_BUSON))
{
if(Generator1_state == GENERATOR_STATUS_BUSON)
{
GridV_A = GeneratorV1_A;
GridV_B = GeneratorV1_B;//////////
GridV_C = GeneratorV1_C;
for(Generator1_I=0;Generator1_I <= 500;Generator1_I++)
{
Grid_P=Generator1_I;
Grid_I = Generator1_I + Generator2_I ;
Grid_F = 50;
}
//Grid_P = Generator1_P + Generator2_P;
//Grid_State = 1;
}
else if(Generator2_state == GENERATOR_STATUS_BUSON)
{
GridV_A = GeneratorV2_A;
GridV_B = GeneratorV2_B;//////////
GridV_C = GeneratorV2_C;
Grid_I = Generator1_I + Generator2_I ;
Grid_F = 50;
Grid_P = Generator1_P + Generator2_P;
//Grid_State = 1;
}
}
else//否则电网参数均为零 这个也可以不要
{
GridV_A = 0;
GridV_B = 0;
GridV_C = 0;
Grid_I = 0;
Grid_F = 0;
Grid_P = 0;
// Grid_State = 0;
}
}
void CFcuSimulatorDlg::GenerationCommandProcess()
{
//不停的检测Terminal_Command命令并进行判断
if((Terminal1_Command & TERMINAL_COMMAND_START)!=0)
Generator1_state = GENERATOR_STATUS_START;//一号机启动
if((Terminal2_Command & TERMINAL_COMMAND_START)!=0)
Generator2_state = GENERATOR_STATUS_START;//二号机启动
//发送start相应的数据
if((Terminal1_Command & TERMINAL_COMMAND_BUSON)!=0)
Generator1_state = GENERATOR_STATUS_BUSON;//一号机合闸
if((Terminal2_Command & TERMINAL_COMMAND_BUSON)!=0)
Generator2_state = GENERATOR_STATUS_BUSON;//二号机合闸
//发送合闸相应的数据
if((Terminal1_Command & TERMINAL_COMMAND_BUSOFF)!=0)
Generator1_state = GENERATOR_STATUS_BUSOFF;//一号机解列
if((Terminal2_Command & TERMINAL_COMMAND_BUSOFF)!=0)
Generator2_state = GENERATOR_STATUS_BUSOFF;//二号机解列
//发送解裂相应的数据
if((Terminal1_Command & TERMINAL_COMMAND_STOP)!=0)
Generator1_state = GENERATOR_STATUS_STOP;//一号机停机
if((Terminal2_Command & TERMINAL_COMMAND_STOP)!=0)
Generator2_state = GENERATOR_STATUS_STOP;//二号机停机
//发送停机相应的数据
}
bool CFcuSimulatorDlg::Generator_Start(double now)
{
if( (Generator1_state & GENERATOR_STATUS_START)!=0 )
{
GeneratorV1_A = VOLTAGE_AMPTITUDE * sin(now); //发电机1组电压A相
GeneratorV1_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机1组电压B相
GeneratorV1_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机1组电压C相
Generator1_I=0;
Generator1_F=50;
Generator1_P=sqrt(3) * GeneratorV1_A * Generator1_I;
}
else
{
GeneratorV1_A = 0; //发电机1组电压A相
GeneratorV1_B = 0; //发电机1组电压B相
GeneratorV1_C = 0; //发电机1组电压C相
Generator1_I = 0;
Generator1_F = 0;
Generator1_P = 0;
}
if( (Generator2_state & GENERATOR_STATUS_START)!=0 )
{
GeneratorV2_A = VOLTAGE_AMPTITUDE * sin(now); //发电机2组电压A相
GeneratorV2_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机2组电压B相
GeneratorV2_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机2组电压C相
Generator2_I=0;
Generator2_F=50;
Generator2_P=sqrt(3) * GeneratorV2_A * Generator2_I;
}
else
{
GeneratorV2_A = 0; //发电机2组电压A相
GeneratorV2_B = 0; //发电机2组电压B相
GeneratorV2_C = 0; //发电机2组电压C相
Generator2_I = 0;
Generator2_F = 0;
Generator2_P = 0;
}
return true;
}
/*
bool CFcuSimulatorDlg::Generator_BusOn(double now)
{
bool ret=TRUE;
if(Generator1_state == GENERATOR_STATUS_BUSON)//number1
{
if(Generator2_state != GENERATOR_STATUS_BUSON)//首机合闸
{
GeneratorV1_A = VOLTAGE_AMPTITUDE * sin(now); //发电机1组电压A相
GeneratorV1_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机1组电压B相
GeneratorV1_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机1组电压C相
Generator1_I=0;
Generator1_F=50;
Generator1_P=sqrt(3) * GeneratorV1_A * Generator1_I;
Generator1_state = GENERATOR_STATUS_BUSON; //发电机组1状态
}
}
if(Generator2_state == GENERATOR_STATUS_BUSON)//number2
{
if(Generator1_state != GENERATOR_STATUS_BUSON)//首机合闸
{
GeneratorV2_A = VOLTAGE_AMPTITUDE * sin(now); //发电机2组电压A相
GeneratorV2_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机2组电压B相
GeneratorV2_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机2组电压C相
Generator2_I=0;
Generator2_F=50;
Generator2_P=sqrt(3) * GeneratorV2_A * Generator2_I;
Generator2_state = GENERATOR_STATUS_BUSON; //发电机组2状态
}
}
return ret;
}
bool CFcuSimulatorDlg::Generator_BusOff(double now)
{
bool ret = TRUE;
if(Generator1_state == GENERATOR_STATUS_BUSOFF)//number1
{
if(Generator1_state == GENERATOR_STATUS_BUSON)//在网
{
if(Generator2_state == GENERATOR_STATUS_BUSON)//是首机解列
{
GeneratorV1_A = VOLTAGE_AMPTITUDE * sin(now); //发电机1组电压A相
GeneratorV1_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机1组电压B相
GeneratorV1_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机1组电压C相
Generator1_I=0;
Generator1_F=50;
Generator1_P=sqrt(3) * GeneratorV1_A * Generator1_I;
Generator1_state = GENERATOR_STATUS_BUSOFF; //发电机组1状态
}
else //不是首机解列/////////有问题
{
GeneratorV1_A = VOLTAGE_AMPTITUDE * sin(now); //发电机1组电压A相
GeneratorV1_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机1组电压B相
GeneratorV1_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机1组电压C相
Generator1_I=0;
Generator1_F=50;
Generator1_P=sqrt(3) * GeneratorV1_A * Generator1_I;
Generator1_state = GENERATOR_STATUS_BUSOFF; //发电机组1状态
ret = FALSE;
}
}
else //不在网
ret = FALSE;
}
if(Generator2_state == GENERATOR_STATUS_BUSOFF)//number2
{
if(Generator1_state == GENERATOR_STATUS_BUSON)//是首机解列
{
GeneratorV2_A = VOLTAGE_AMPTITUDE * sin(now); //发电机2组电压A相
GeneratorV2_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机2组电压B相
GeneratorV2_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机2组电压C相
Generator2_I=0;
Generator2_F=50;
Generator2_P=sqrt(3) * GeneratorV1_A * Generator1_I;
Generator2_state = GENERATOR_STATUS_BUSOFF; //发电机组2状态
}
else
{
GeneratorV2_A = VOLTAGE_AMPTITUDE * sin(now); //发电机2组电压A相
GeneratorV2_B = VOLTAGE_AMPTITUDE * sin(now - 2*(double)PI/3); //发电机2组电压B相
GeneratorV2_C = VOLTAGE_AMPTITUDE * sin(now + 2*(double)PI/3); //发电机2组电压C相
Generator2_I=0;
Generator2_F=50;
Generator2_P=sqrt(3) * GeneratorV2_A * Generator2_I;
Generator2_state = GENERATOR_STATUS_BUSOFF; //发电机组2状态
ret = FALSE;
}
}
return ret;
}
*/
bool CFcuSimulatorDlg::Generator_Stop(double now)
{
bool ret = TRUE;
if(Generator1_state == GENERATOR_STATUS_STOP)
{ //发电机1状态为停机
GeneratorV1_A = 0; //发电机1组电压A相
GeneratorV1_B = 0; //发电机1组电压B相
GeneratorV1_C = 0; //发电机1组电压C相
Generator1_I=0;
Generator1_F=0;
Generator1_P=0;
}
if(Generator2_state == GENERATOR_STATUS_STOP)
{ //发电机2状态为停机
GeneratorV2_A = 0; //发电机2组电压A相
GeneratorV2_B = 0; //发电机2组电压B相
GeneratorV2_C = 0; //发电机2组电压C相
Generator2_I=0;
Generator2_F=0;
Generator2_P=0;
}
return ret;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -