标准算例动态修改参数(1、simulink仿真该参数 2、matpower对runpf.m修改,每次潮流计算前修改载入的标准算例的数据)

     举个栗子:我要对IEEE39节点进行潮流计算,matpower中case39给出了该标准算例的各种类型的数据。而我现在想要做的是对该标准算例中的所有负荷节点的参数进行修改,实现总负荷的连续增长,并且观察其潮流计算的结果,如所有节点的节点电压的变化。那有人说通过simulink搭一个仿真模型实现咯,我也这么试过。

    先写写simulink我出现的问题吧,有待解决中。搭一个模型倒是不难,麻烦的是各个模块的参数设置。作为一个电力系统方面知识的小白,参数设置真是一个很大的problem。通过老老实实的啃完了于群的《MATLAB-Simulink电力系统建模与仿真》,我总算有点小头绪了,好了,勉强设置完了所有参数。

    但是怎么实负载的连续增长呢?每次都在运行结束后手动修改参数?不行,这么蠢的方案我才不采用呢!

    找啊找啊找资料,我先是通过set_parameter控制仿真运行与暂停,然后同样通过该函数修改负载模块的参数。问题出现了“无法在仿真过程中修改参数”,又想着用S函数吧,也没达到我的预期。后来发现我用的模块本身似乎就不能在运行过程中修改参数。然后呢,我发现了一个动态负载模块。瞧!听这名字,就像是能够实现我的需求。高高兴兴的加入该模块,立马出现了个报错“modeled as a current source, cannot be connected in series with the inductive element of the second block.Add a high-value resistance in parallel with one of the two block.You can also specify high-value resistive snubbers if th并联大电阻。)点击打开链接。  满怀期待的开始了仿真,可是电压波形出来的都是乱七八糟的。查资料得知,引入动态负载的器件等效为一个受控电流源。文章《基于Simulink研发的实时仿真器中动态负荷元件的改进控制策略》王世标有提到过相关内容,这个问题暂时我还没有解决方案,所以先搁置了。


    进入matpower方面,这个东西是真的好用呀。

    为了达到我的目的,我的想法是写一个函数文件控制进行多次潮流计算,而每次潮流计算的参数都不一样。为了实现这一目的,打开runpf.m文件,找到下面这句代码:

   Sbus = @(Vm)makeSbus(baseMVA, bus, gen, mpopt, Vm);

这行代码实现的是读入数据。

那么我们的操作就写在这句代码之前,可以对 bus gen 中的数据进行修改。如:

  bus(operate_num,3)=  percent*bus(operate_num,3);       
  bus(operate_num,4)=  percent*bus(operate_num,4);  
其中operate_num是我要修改的节点数,percent是修改的比例系数由我写的控制循环的函数给出,上面两行代码实现了对给定节点的有功、无功功率进行修改。

    以上是我我循环了125次后生成的一些结果,每次循环负荷节点在原有基础上增加0.2%。bus_cell是一个元胞数组,存有125次循环的每次bus结果数据。其他数据含义类似,此处不多说了。

    相关代码之后上传,留个纪念。simulink的问题还得多挣扎下呀!

    做一只有梦想的咸鱼,over!

猜你喜欢

转载自blog.csdn.net/polaris___/article/details/80046032