用C++实现了一个潮流计算程序,是高斯-塞得尔潮流计算
使用了boost,STL库,
从文件中读入原始数据,格式为THFormat
在程序中实现了个元件类从文件中读取自动生成的方法,设计时模仿了MFC中得Runtime_class的宏,定义了两个宏,一个宏用于在类的定义中(h),展开后是一个静态常量(int型)声明,两个宏用于在类的实现中,展开后是那个静态常量的定义主要完成向BuildManager注册元件类的标识符和函数指针(该函数完成从字符串构造出元件类实例的功能),类似于委托机制.节点导纳矩阵,采用十字链表,每行的头,存储该节点对地的导纳.对于节点(PQ节点,PV节点和平衡节点),我使用状态模式(NodeStates)实现不同行为时,产生状态的转换
这样做的好处就是,新增元件类,只需使用宏,就可以完成对象的创建.无需使用switch语句判断需要建立那个对象类.使用boost类库中的ptr_vector,好处就不在这儿说了
在THFormat格式中,之间将GenerCV的P转化成了标识值,
使用高斯-塞得尔潮流计算,设定epsilon=0.000001时,计算结果和实验数据的res计算结果吻合(各节点电压的小数点后四位相同),迭代次数38次
对于节点电压迭代公式中的Pi-jQi要注意是注入系统功率的Pi+jQi的共扼复数,对于PV节点要注意电压大小不变,相交变