找回密码
 注册
Simdroid-非首页
查看: 160|回复: 6

求助变压器(TR 三角-Yg)注入电流支路模型实现 - PART2

[复制链接]
发表于 2010-10-6 11:42:32 | 显示全部楼层 |阅读模式 来自 台湾
悬赏4仿真币已解决
本帖最后由 武神裝攻 于 2010-10-22 16:12 编辑

http://forum.simwe.com/thread-935800-1-1.html
抱歉 小弟之前在做simulink model
最近才验证一下发现case会有点小问题
推导Y的公式 跟 lin2009大  帮写的Y是没错的
I=YV 经测试是*的V有问题
在此跪求恳请板上英雄帮解 Itr

(一)范例数据:
小弟的EXCEL表格1内容: 线路数据

支路号
起始点
终止点
支路类型编号
1
0
1
1
2
1
2
2
3
2
3
3
4
2
4
1

小弟的EXCEL表格2内容:  编码
1001
1002
1003
2001
2002
2003
3001
3002
3003
4001
4003

小弟的EXCEL表格3内容: TR数据
編號RXα1β1α2β2α3β3
21011324252
312131018191
小弟的 V
Vtr =  [10;12;7;9;11;4;14;13;21;3;8]

数据程式:
clear all;
clc
table1 = [ 1     0     1     1
               2     1     2     2
               3     2     3     3
               4     2     4     1  ];
% col1 支路号 col2 起始点 col3 终止点 col4 支路类型
col1 = table1(:,1);
col2 = table1(:,2);
col3 = table1(:,3);
col4 = table1(:,4);
table2 = [1001        1002        1003  ...
               2001        2002        2003  ...
               3001        3002        3003  ...
              4001        4003]';     
% col5 取编码的千位也就是支路号(用来知道V与 I 哪几个是属于哪个支路)   col6 取编码的个位(可知道三相支路三点是否全通或是缺少哪点)
col5  = floor(table2 /1000);
col6 = mod(table2 ,10);
% 为统一处理,加入了第一行数据。
table3 = [    1     0     0   Inf   Inf   Inf   Inf   Inf   Inf
              2    10    11     3     2     4     2     5     2
              3    12    13    10     1     8     1     9     1 ];
Vtr = [10;12;7;9;11;4;14;13;21;3;8];

(二)原理解说:
EXCEL_1 有 终止点 与 起始点
所以点是有 0,1,2,3,4 总共5个点 (PS:计算加入电流Itr时0不管)
支路号就是连结这些点的线路
示意图 ( 蓝字为支路号 红字为点 )
       @---------------@---------------@---------------@---------------@
        0      1        1        2        2       3       3       4       
4
所以对于支路1来说它的 起始点=0  终止点=1 (PS:但是有时不会照顺序相连例如可能点2分支5跟点5连)

而EXCEL_2的千位数就是指的号码 (PS:如上所说计算加入电流Itr时0不管所以所以由1开始编码)
而EXCEL_2的个位数就是指与点之间的连接不只1条所以个位数1 2 3 指的就是同支路号的abc如下(个位数最多到5一般常见是3)
  @---------------@
   0      1a      1        
  @---------------@
   0      1b      1
  @---------------@
   0       1c     1

先設Itr=zeros(EXCEL_2);
而我说的注入电流就是分别会有值放入EXCEL_2所指起始点终止点(也就是千位数)
如下:(以支路号2为例)

  @-----------------------------------------------------------------------@
   1                                   2a                                  2   
       <--注入起始电=1                      注入终止电=2 -->                                 
  @-----------------------------------------------------------------------@
   1                                   2b                                  2
       <--注入起始电=3                      注入终止电=4 -->            
  @-----------------------------------------------------------------------@
   1                                    2c                                 2
       <--注入起始电=5                        注入终止电=6 -->
Itr=[ 1      -->1001
       3      -->1002
       5      -->1003
       2      -->2001
       4      -->2002
       6]     -->2003        
而Vtr與Itr編碼是一樣的

以编V+编码来看会看出
Vtr=[10   ----->1001
       12   ----->1002
        7    ----->1003
        9    ----->2001
       11   ----->2002
        4    ----->2003
       14   ------>3001
       13   ------>3002
       21   ------>3003
        3    ------>4001
        8]   ------>4003


以EXCEL1表格支路号3当范例
支路号=3 起始点=2 终止点=
3
那起始点电压abc (VS123)
VS1 = 9        VS2 = 11      VS3 = 4  (也就是看编码的千位数+个位数)
那终止点电压abc (VF123)
VF1 = 14       VF2 = 13      VF3 = 21


看分母就知道要乘的电压
β用VF
α用VS
αβ数字 对应 VF VS数字
当分母都有αβ或是2個α或是β那电压要先相减再乘

A=0
B=EXCEL表格3内容 编号=2 的R+j*X     =10+j*11   ( j为虚数)
C=EXCEL表格3内容 编号=3 的R+j*X     =12+j*13   ( j为虚数)


类型,编号 = 1  注入起始电 注入终止电  都是0

类型,编号 = 2
注入终止电
I = [ (B*(1./β1^2)*VF1  -  B*(1./(α1β1))*(VS1-VF1))         -->支路a  = n001            
       (B*(1./β2^2)*VF2  -  B*(1./(α2β2))*(VS2-VF2))        -->支路b  = n002            
         (B*(1./β3^2)*VF3  -   B*(1./(α3β3))*(VS3-VF3)) ]      -->支路c  = n003
注入起始电
I = [ (B*(1./α1^2)*VS1  -  B*(1./(α1β1))*(VS1-VF1))                           
       (B*(1./α2^2)*VS2  -  B*(1./(α2β2))*(VS2-VF2))                    
         (B*(1./α3^2)*VS3  -   B*(1./(α3β3))*(VS3-VF3)) ]

类型,编号 = 3                 
注入终止电
I = [ ((C./(β1^2))*VF1  -  (C./(sqrt(3)*α2*β1))*(VS2-VF1))           --->  仔細看    α2  对应 VS2
       ((C./(β2^2))*VF2  -  (C./(sqrt(3)*α3*β2))*(VS3-VF2))          --->  仔細看    α3  对应 VS3                  
         ((C./(β3^2))*VF3  -  (C./(sqrt(3)*α1*β3))*(VS1-VF3))    ]     --->  仔細看    α1  对应 VS1
注入起始电
I = [ ((C./(3*α1*α3))*(VS1-VS3)  -  (C./(3*α1*α2))*(VS1-VS2)  +  (C./(sqrt(3)*α1*β3))*(VS1-VF3))      
       ((C./(3*α1*α2))*(VS1-VS2)  -  (C./(3*α2*α3))*(VS2-VS3)  +  (C./(sqrt(3)*α2*β1))*(VS2-VF1))            
         ((C./(3*α2*α3))*(VS2-VS3)  -  (C./(3*α1*α3))*(VS1-VS3)  +  (C./(sqrt(3)*α3*β2))*(VS3-VF2))


(三)步骤分解:
A=0
B=EXCEL表格3内容 编号=2 的R+j*X     =10+j*11   ( j为虚数)
C=EXCEL表格3内容 编号=3 的R+j*X     =12+j*13   ( j为虚数)

(1)看表1支路号 = 1 支路类型编号 = 1找到 终止点 = 1 起始点 = 0
看表2内容与相终止同千位数为1的有1001,1002,1003共3

因为支路类型编号 =1    支路类型编号相对应的(类型1-Y=A)

I = [A*0        所以  Itr = [0
      A*0                        0
      A*0]                       0]

(2)看表1支路号 = 2 支路类型编号 = 2找到 终止点 = 2 起始点 = 1
看表2内容与相终止同千位数为2的有2001,2002,2003共3

因为支路类型编号 =2       支路类型编号相对应的(类型2-Y=B)

I = [ (B*(1./β1^2)*VF1  -  B*(1./(α1β1))*(VS1-VF1))                  =[((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))
       (B*(1./β2^2)*VF2  -  B*(1./(α2β2))*(VS2-VF2))                     ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))
         (B*(1./β3^2)*VF3  -   B*(1./(α3β3))*(VS2-VF2)) ]                  ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))]

Itr = [     0
              0

              0

      ((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))
    ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))

     ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))
因为起始点 = 1     不是0   所以刚刚终止点 = 1 的矩阵要多加
I = [ (B*(1./α1^2)*VS1  -  B*(1./(α1β1))*(VS1-VF1))                   =[((10+j*11)*(1./3^2)*10)  -  ((10+j*11)*(1./(3*2))*(10-9))                        
       (B*(1./α2^2)*VS2  -  B*(1./(α2β2))*(VS2-VF2))                     ((10+j*11)*(1./4^2)*12 )  -  ((10+j*11)*(1./(4*2))*(12-11))                    
         (B*(1./α3^2)*VS3  -   B*(1./(α3β3))*(VS2-VF2)) ]                   ((10+j*11)*(1./5^2)*7 )  -  ((10+j*11)*(1./(5*2))*(7-4))]

Itr =[((10+j*11)*(1./3^2)*10)  -  ((10+j*11)*(1./(3*2))*(10-9))   
        ((10+j*11)*(1./4^2)*12 )  -  ((10+j*11)*(1./(4*2))*(12-11))   
        ((10+j*11)*(1./5^2)*7 )  -  ((10+j*11)*(1./(5*2))*(7-4))

         ((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))
       ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))

         ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))
(3)看表1支路号 = 3 支路类型编号 = 3找到 终止点 = 3 起始点 = 2
看表2内容与相终止同千位数为3的有3001,3002,3003共3

因为支路类型编号 =3       支路类型编号相对应的(类型3-Y=C)

I = [ ((C./(β1^2))*VF1  -  (C./(sqrt(3)*α2*β1))*(VS2-VF1))            = [(((12+j*13)./1^2)*14)  -   ((12+j*13)./(sqrt(3)*8*1)*(11-14))
       ((C./(β2^2))*VF2  -  (C./(sqrt(3)*α3*β2))*(VS3-VF2))                (((12+j*13)./1^2)*13)  -   ((12+j*13)./(sqrt(3)*9*1)*(4-13))        
         ((C./(β3^2))*VF3  -  (C./(sqrt(3)*α1*β3))*(VS1-VF3))    ]           (((12+j*13)./1^2)*21)  -   ((12+j*13)./(sqrt(3)*10*1)*(9-21))

Itr =[((10+j*11)*(1./3^2)*10)  -  ((10+j*11)*(1./(3*2))*(10-9))   
        ((10+j*11)*(1./4^2)*12 )  -  ((10+j*11)*(1./(4*2))*(12-11))   
        ((10+j*11)*(1./5^2)*7 )  -  ((10+j*11)*(1./(5*2))*(7-4))

         ((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))
       ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))

         ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))
        (((12+j*13)./1^2)*14)  -   ((12+j*13)./(sqrt(3)*8*1)*(11-14))
        (((12+j*13)./1^2)*13)  -   ((12+j*13)./(sqrt(3)*9*1)*(4-13))
        (((12+j*13)./1^2)*21)  -   ((12+j*13)./(sqrt(3)*10*1)*(9-21))
因为起始点 = 2     不是0   所以刚刚终止点 = 2 的矩阵要多加
I = [ ((C./(3*α1*α3))*(VS1-VS3)  -  (C./(3*α1*α2))*(VS1-VS2)  +  (C./(sqrt(3)*α1*β3))*(VS1-VF3))      =[(((12+j*13)./(3*10*9)*(9-4))  -  ((12+j*13)./(3*10*8)*(9-11))   + ((12+j*13)./(sqrt(3)*10*1)*(9-21))
       ((C./(3*α1*α2))*(VS1-VS2)  -  (C./(3*α2*α3))*(VS2-VS3)  +  (C./(sqrt(3)*α2*β1))*(VS2-VF1))           (((12+j*13)./(3*10*8)*(9-11))  -  ((12+j*13)./(3*8*9)*(11-4))   + ((12+j*13)./(sqrt(3)*8*1)*(11-14))  
       ((C./(3*α2*α3))*(VS2-VS3)  -  (C./(3*α1*α3))*(VS1-VS3)  +  (C./(sqrt(3)*α3*β2))*(VS3-VF2))]        (((12+j*13)./(3*8*9)*(11-4))  -  ((12+j*13)./(3*10*9)*(9-4))   + ((12+j*13)./(sqrt(3)*9*1)*(4-13))  


Itr =[((10+j*11)*(1./3^2)*10)  -  ((10+j*11)*(1./(3*2))*(10-9))   
        ((10+j*11)*(1./4^2)*12 )  -  ((10+j*11)*(1./(4*2))*(12-11))   
        ((10+j*11)*(1./5^2)*7 )  -  ((10+j*11)*(1./(5*2))*(7-4))

         ((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))                    +       (((12+j*13)./(3*10*9)*(9-4))  -  ((12+j*13)./(3*10*8)*(9-11))   + ((12+j*13)./(sqrt(3)*10*1)*(9-21))
       ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))                      +       (((12+j*13)./(3*10*8)*(9-11))  -  ((12+j*13)./(3*8*9)*(11-4))   + ((12+j*13)./(sqrt(3)*8*1)*(11-14))

         ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))                             +       (((12+j*13)./(3*8*9)*(11-4))  -  ((12+j*13)./(3*10*9)*(9-4))   + ((12+j*13)./(sqrt(3)*9*1)*(4-13))  
        (((12+j*13)./1^2)*14)  -   ((12+j*13)./(sqrt(3)*8*1)*(11-14))        
        (((12+j*13)./1^2)*13)  -   ((12+j*13)./(sqrt(3)*9*1)*(4-13))         
        (((12+j*13)./1^2)*21)  -   ((12+j*13)./(sqrt(3)*10*1)*(9-21))      
4)看表1支路号 = 4 支路类型编号 = 1找到 终止点 = 4起始点 = 2
看表2内容与相终止同千位数为4的有4001,4003共2
因为支路类型编号 =1       支路类型编号相对应的(类型1-A,类型2-B,类型3-C)

I = [ 0
        0 ]
因为起始点 = 2     不是0   所以刚刚终止点 = 2 的矩阵要多加
I = [ 0
        0 ]
最终


Itr =[0     +     ((10+j*11)*(1./3^2)*10)  -  ((10+j*11)*(1./(3*2))*(10-9))   
        0      +    ((10+j*11)*(1./4^2)*12 )  -  ((10+j*11)*(1./(4*2))*(12-11))   
        0      +    ((10+j*11)*(1./5^2)*7 )  -  ((10+j*11)*(1./(5*2))*(7-4))

         ((10+j*11)*(1./2^2)*9 )  -  ((10+j*11)*(1./(3*2))*(10-9))                    +       (((12+j*13)./(3*10*9)*(9-4))  -  ((12+j*13)./(3*10*8)*(9-11))   + ((12+j*13)./(sqrt(3)*10*1)*(9-21))   +0
       ((10+j*11)*(1./2^2)*11 )  -  ((10+j*11)*(1./(4*2))*(12-11))                      +       (((12+j*13)./(3*10*8)*(9-11))  -  ((12+j*13)./(3*8*9)*(11-4))   + ((12+j*13)./(sqrt(3)*8*1)*(11-14))

         ((10+j*11)*(1./2^2)*4 )  -  ((10+j*11)*(1./(5*2))*(7-4))                             +       (((12+j*13)./(3*8*9)*(11-4))  -  ((12+j*13)./(3*10*9)*(9-4))   + ((12+j*13)./(sqrt(3)*9*1)*(4-13))       +0
        (((12+j*13)./1^2)*14)  -   ((12+j*13)./(sqrt(3)*8*1)*(11-14))        

        (((12+j*13)./1^2)*13)  -   ((12+j*13)./(sqrt(3)*9*1)*(4-13))         
        (((12+j*13)./1^2)*21)  -   ((12+j*13)./(sqrt(3)*10*1)*(9-21))         

                            0
                            0





最佳答案

查看完整内容

一楼的思路很好,将电流分成2种类型(流入起始点和流入终止点)分别处理,要比原先的方案来得明了、简单。原先的方案逻辑太复杂了,给人的感觉是一团麻,编程的难度也大。
发表于 2010-10-6 11:42:33 | 显示全部楼层 来自 湖南湘潭
Simdroid开发平台
一楼的思路很好,将电流分成2种类型(流入起始点和流入终止点)分别处理,要比原先的方案来得明了、简单。原先的方案逻辑太复杂了,给人的感觉是一团麻,编程的难度也大。

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. clear all;
  3. clc
  4. table1 = [ ...
  5.     1     0     1     1
  6.     2     1     2     2
  7.     3     2     3     3
  8.     4     2     4     1];
  9. % col1 - > bcNo(branch circuit No.)支路号;
  10. % col2 - > bcstart 起始点(变压器)
  11. % col3 - > bsfinal 终止点(变压器)
  12. % col4 - > bctype 支路类型

  13. bcNo = table1(:,1);
  14. bcstart = table1(:,2);
  15. bcfinal = table1(:,3);
  16. bctype = table1(:,4);

  17. % 各支路上的abc三相(选择)情况
  18. table2 = [ ...
  19.     1001 1002 1003 ...
  20.     2001 2002 2003 ...
  21.     3001 3002 3003 ...
  22.     4001 4003 ]';
  23. bcNo2 = floor(table2/1000);
  24. bc3ph = mod(table2, 10);

  25. ind = sub2ind([ max(bcNo2), max(bc3ph) ], bcNo2, bc3ph);
  26. Selected = zeros(max(bcNo2), max(bc3ph));
  27. Selected(ind) = 1;

  28. %  Selected =
  29. %
  30. %       1     1     1
  31. %       1     1     1
  32. %       1     1     1
  33. %       1     0     1
  34. % 表示变压器No(节点), 列表示abc三相。

  35. % 三相变压器各端口的电位, 如U1a, U1b, U1c....U4a, U4b, U4c
  36. % 1001, 1002, 1003, 2001, 2002, 2003, 3001, 3002, 3003, 4001, 4003
  37. Vtr = [ 10; 12; 7; 9; 11; 4; 14; 13; 21; 3; 8 ];
  38. ind = sub2ind([ max(bcNo2), max(bc3ph) ], bcNo2, bc3ph);
  39. Vtr2 = zeros(max(bcNo2), max(bc3ph));
  40. Vtr2(ind) = Vtr; % 转换为矩阵的形式。

  41. %  Vtr2 =
  42. %
  43. %      10    12     7
  44. %       9    11     4
  45. %      14    13    21
  46. %       3     0     8
  47. % 表示变压器abc端的电位大小。

  48. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  49. VSS = [ ];
  50. for k = 1:length(bcNo)
  51.     if bcstart(k) == 0
  52.         VS = zeros(1,3);
  53.     else
  54.         VS = Vtr2(bcstart(k), :);
  55.     end
  56.     VSS = [ VSS, VS ];
  57. end

  58. VFF = [ ];
  59. for k = 1:length(bcNo)
  60.     if bcfinal(k) == 0
  61.         VF = zeros(1,3);
  62.     else
  63.         VF = Vtr2(bcfinal(k), :);
  64.     end
  65.     VFF = [ VFF, VF ];
  66. end

  67. VSS = transpose(reshape(VSS,[3,4]));
  68. VFF = transpose(reshape(VFF,[3,4]));

  69. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  70. % Vtr_tmp = Vtr2;
  71. % Vtr_tmp(end+1,:) = zeros(1,max(bc3ph));
  72. % Vtr_tmp = circshift(Vtr_tmp,[1,0]);
  73. %
  74. % VSS2 = Vtr_tmp(bcstart+1,:);
  75. % VFF2 = Vtr_tmp(bcfinal+1,:);
  76. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  77. % 为统一处理,加入了第一行数据。
  78. table3 = [
  79.     1     0     0   Inf   Inf   Inf   Inf   Inf   Inf
  80.     2    10    11     3     2     4     2     5     2
  81.     3    12    13    10     1     8     1     9     1 ];

  82. bctype2 = table3(:,1);
  83. R = table3(:,2);
  84. X = table3(:,3);
  85. Z = R + 1i*X;

  86. A=Z(1,:);
  87. B=Z(2,:);
  88. C=Z(3,:);

  89. alpha = table3(:,[4,6,8]);
  90. beta  = table3(:,[5,7,9]);

  91. % alpha =
  92. %
  93. %    Inf     3    10
  94. %    Inf     4     8
  95. %    Inf     5     9
  96. % beta =
  97. %
  98. %    Inf   Inf   Inf
  99. %      2     2     2
  100. %      1     1     1

  101. f231 = [2,3,1]; % index for alpha , beta ,etc.
  102. f112 = [1,1,2];
  103. f323 = [3,2,3];
  104. f121 = [1,2,1];
  105. f233 = [2,3,3];
  106. f312 = [3,1,2];

  107. ISS = zeros([ max(bcNo2), max(bc3ph) ]); % Magnitutide of the current flowing into the start node of the specific Branch circuit.
  108. IFF = zeros([ max(bcNo2), max(bc3ph) ]); % Magnitutide of the current flowing into the final node of the specific Branch circuit.
  109. for k = 1:length(bcNo)
  110.     switch(bctype(k))
  111.         case 1
  112.             IS = zeros(1,3);
  113.             IF = zeros(1,3);
  114.         case 2
  115.             IS = (B*(1./alpha(2,:).^2).*VSS(k,:) -  B*(1./(alpha(2,:).*beta(2,:))).*(VSS(k,:)-VFF(k,:)));
  116.             IF = (B*(1./beta(2,:).^2).*VFF(k,:)  -  B*(1./(alpha(2,:).*beta(2,:))).*(VSS(k,:)-VFF(k,:)));
  117.         case 3
  118.             IS = C*( 1./(3*alpha(3,f112).*alpha(3,f323))  .*(VSS(k,f112)- VSS(k,f323)) ...
  119.                     -1./(3*alpha(3,f121).*alpha(3,f233))  .*(VSS(k,f121)- VSS(k,f233)) ...
  120.                     +1./(sqrt(3)*alpha(3,:).*beta(3,f312)).*(VSS(k,:)   - VFF(k,f312)) );
  121.             IF = C*( 1./(beta(3,:).^2).* VFF(k,:) -1./(sqrt(3)*alpha(3,f231).*beta(3,:)).*(VSS(k,f231)-VFF(k,:)));
  122.     end
  123.     % currents that flow into the certain node sepecified by the branch circuit infomation。  
  124.     if bcstart(k) ~= 0
  125.         ISS(bcstart(k),:) = ISS(bcstart(k),:) + IS;
  126.     end
  127.     if bcfinal(k) ~= 0
  128.         IFF(bcfinal(k),:) = IFF(bcfinal(k),:) + IF;
  129.     end
  130. end

  131. Itr2 = ISS + IFF;

  132. % 验证 verified the resultant.
  133. Itr = [0+((10+1i*11)*(1./3^2)*10)-((10+1i*11)*(1./(3*2))*(10-9))
  134.     0+((10+1i*11)*(1./4^2)*12)-((10+1i*11)*(1./(4*2))*(12-11))
  135.     0+((10+1i*11)*(1./5^2)*7)-((10+1i*11)*(1./(5*2))*(7-4))
  136.     ((10+1i*11)*(1./2^2)*9)-((10+1i*11)*(1./(3*2))*(10-9))+(((12+1i*13)./(3*10*9)*(9-4))-((12+1i*13)./(3*10*8)*(9-11))+((12+1i*13)./(sqrt(3)*10*1)*(9-21))+0)
  137.     ((10+1i*11)*(1./2^2)*11)-((10+1i*11)*(1./(4*2))*(12-11))+(((12+1i*13)./(3*10*8)*(9-11))-((12+1i*13)./(3*8*9)*(11-4))+((12+1i*13)./(sqrt(3)*8*1)*(11-14)))
  138.     ((10+1i*11)*(1./2^2)*4)-((10+1i*11)*(1./(5*2))*(7-4))+(((12+1i*13)./(3*8*9)*(11-4))-((12+1i*13)./(3*10*9)*(9-4))+((12+1i*13)./(sqrt(3)*9*1)*(4-13))+0)
  139.     (((12+1i*13)./1^2)*14)-((12+1i*13)./(sqrt(3)*8*1)*(11-14))
  140.     (((12+1i*13)./1^2)*13)-((12+1i*13)./(sqrt(3)*9*1)*(4-13))
  141.     (((12+1i*13)./1^2)*21)-((12+1i*13)./(sqrt(3)*10*1)*(9-21))
  142.     0
  143.     0];
  144. Itr(12) = 0;
  145. Itr = transpose(reshape(Itr,[3,4]))
  146. Itr2
复制代码

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2010-10-15 09:17:11 | 显示全部楼层 来自 台湾
本帖最后由 武神裝攻 于 2010-10-27 09:25 编辑

小弟最近在写一段程式遇到个问题
在此跪求恳请板上英雄帮解
或一同帮想方法
恳请拜托 谢谢
-----------------------------------------------------------------------范例数据程序
clear all;
clc
table1 = [ 1     0     1     1
           2     1     2     2
           3     2     3     3
           4     2     4     1  ];
% col1 支路号 col2 起始点 col3 终止点 col4 支路类型
col1 = table1(:,1);
col2 = table1(:,2);
col3 = table1(:,3);
col4 = table1(:,4);
table2 = [1001 1002 1003  ...
          2001 2002 2003  ...
          3001 3002 3003  ...
          4001 4003]';     
% col5 取编码的千位也就是支路号(用来知道V与 I 哪几个是属于哪个支路)   col6 取编码的个位(可知道三相支路三点是否全通或是缺少哪点)
col5  = floor(table2 /1000);
col6 = mod(table2 ,10);
Vtr = [10;12;7;9;11;4;14;13;21;3;8];
-----------------------------------------------------------------------問
以Vtr与table2关系来看会看出
Vtr=[10   ----->1001
     12   ----->1002
     7    ----->1003
     9    ----->2001
     11   ----->2002
     4    ----->2003
     14   ----->3001
     13   ----->3002
     21   ----->3003
     3    ----->4001
     8]   ----->4003
以table1表格支路号col1=3当范例
支路号col1=3 起始点col2=2 终止点col3=3
那起始点Vtr(VS)(看千位数=2)
找到 9 11 4  (VS1=个位数=1,VS2=个位数=2,VS3=个位数=3)
VS1 = 9        VS2 = 11      VS3 = 4  
那终止点Vtr(VF))(看千位数=3)
找到 14 13 21  (VF1=个位数=1,VF2=个位数=2,VF3=个位数=3)
VF1 = 14       VF2 = 13      VF3 = 21

类型,col4编号 = 1  注入起始电 注入终止电  都是0

类型,col4编号 = 2
注入终止I
I = [ (VF1  -  (VS1-VF1))           
       VF2  -  (VS2-VF2))               
       VF3  -  (VS3-VF3)) ]     
注入起始I
I = [ (VS1  -  (VS1-VF1))                           
       VS2  -  (VS2-VF2))                    
       VS3  -  (VS3-VF3)) ]

类型,col4编号 = 3                 
注入终止I
I = [ VF1  -  (VS2-VF1)         --->  仔細看是 VS2
      VF2  -  (VS3-VF2)         --->  仔細看是 VS3
      VF3  -  (VS1-VF3)    ]    --->  仔細看是 VS1
注入起始I
I = [ (VS1-VS3)  -  (VS1-VS2)  +  (VS1-VF3)     
      (VS1-VS2)  -  (VS2-VS3)  +  (VS2-VF1)            
      (VS2-VS3)  -  (VS1-VS3)  +  (VS3-VF2)]

------------------步骤分解:
(1)看table1支路号col1 = 1 支路类型编号col4 = 1找到 终止点col3 = 1 起始点col2 = 0
因为支路类型编号col4 = 1 (遇到1 I就是直接代0)
I=[0;     资料库ITR=[0;
   0;               0;
   0];              0;]
因为起始点col2 = 0   所以不再动作
(2)看table1支路号col1 = 2 支路类型编号col4 = 2找到 终止点col3 = 2 起始点col2 = 1
因为支路类型编号col4 = 1
I = [ (VF1  -  (VS1-VF1))     =[9 -(10-9)      
       VF2  -  (VS2-VF2))       11-(12-11)        
       VF3  -  (VS2-VF2)) ]     4-(7-4)   ]
ITR=[0;
     0;
     0;
     8;
     10;
     1 ];
因为起始点col2 = 1 不是0所以刚刚终止点 = 1 的矩阵要多加注入起始I
I = [ (VS1  -  (VS1-VF1))     =[10 -(10-9)
       VS2  -  (VS2-VF2))       12-(12-11)            
       VS3  -  (VS2-VF2)) ]      7-(7-4) ]
ITR=[0+9      =[9
     0+11;      11
     0+4;       4
     8;         8
     10;        10
     1 ];       1]
(3)看table1支路号col1 = 3 支路类型编号col4 = 3找到 终止点col3 = 3 起始点col2 = 2
因为支路类型编号col4 = 3
I = [ VF1-(VS2-VF1)  --->  仔細看 VS2  =[14-(11-14)
      VF2-(VS3-VF2)  --->  仔細看 VS3    13-(4-13)
      VF3-(VS1-VF3)] --->  仔細看 VS1    21-(9-21)
ITR=[9
     11
     4
     8
     10
     1
     17
     22
     33]
因为起始点col2 = 2 不是0所以刚刚终止点 = 2 的矩阵要多加注入起始I
I = [ (VS1-VS3)-(VS1-VS2)+(VS1-VF3)    =[(9-4)-(9-11))+(9-21)
      (VS1-VS2)-(VS2-VS3)+(VS2-VF1)      (9-11)-(11-4)+(11-14)      
      (VS2-VS3)-(VS1-VS3)+(VS3-VF2)]     (11-4))-(9-4)+(4-13)]
ITR=[9         =[9
     11          11
     4           4
     8+(-5)      3
     10+(-12)    -2
     1+(-7)      -6
     17          17
     22          22
     33]         33]
(3)看table1支路号col1 = 4 支路类型编号col4 = 1找到 终止点col3 = 4 起始点col2 = 2
因为支路类型编号col4 = 1
I=[0;     因为col1 = 4而table2千位数=4只有4001,4003兩个
   0]              
ITR=[9
     11         
     4         
     3
     -2
     -6
     17         
     22         
     33
     0
     0]         
因为起始点col2 = 2 不是0所以刚刚终止点 = 2 的矩阵要多加注入起始I
ITR=[9
     11         
     4         
     3   +0  因为table2个位数只有1,3 所以相对只加入在 2001 2003
     -2
     -6  +0  
     17         
     22         
     33
     0
     0]
-----------------------------------------------------------------------答案
  ITR         
ITR=[9              
     11               
     4         
     3   
     -2
     -6
     17         
     22         
     33
     0
     0]
回复

使用道具 举报

 楼主| 发表于 2010-10-25 09:55:27 | 显示全部楼层 来自 台湾
目前结果与2#所写的答案不相同?想求问错误点?
clear all;
clc
table1 = [ 1     0     1     1
           2     1     2     2
           3     2     3     3
           4     2     4     1  ];
% col1 支路号 col2 起始点 col3 终止点 col4 支路类型
col1 = table1(:,1);
col2 = table1(:,2);
col3 = table1(:,3);
col4 = table1(:,4);
table2 = [1001 1002 1003  ...
          2001 2002 2003  ...
          3001 3002 3003  ...
          4001 4003]';     
% col5 取编码的千位也就是支路号(用来知道V与 I 哪几个是属于哪个支路)   col6 取编码的个位(可知道三相支路三点是否全通或是缺少哪点)
col5  = floor(table2 /1000);
col6 = mod(table2 ,10);
Vtr = [10;12;7;9;11;4;14;13;21;3;8];
% 三相变压器各端口的电位, 如U1a, U1b, U1c....U4a, U4b, U4c
% 1001, 1002, 1003, 2001, 2002, 2003, 3001, 3002, 3003, 4001, 4003
ind = sub2ind([ max(col5), max(col6) ], col5, col6);

Vtr2 = zeros(max(col5), max(col6));
Vtr2(ind) = Vtr; % 转换为矩阵的形式。
Itr = zeros(size(table2));

VSS = [ ];
VFF = [ ];

for k = 1:length(col1)
    if col2(k) == 0
        VS = zeros(1,3);
    else
        VS = Vtr2(col2(k), :);
    end
    if col3(k) == 0
        VF = zeros(1,3);
    else
        VF = Vtr2(col3(k), :);
    end
    VS2=VS';
    VF2=VF';
    VSS = [ VSS, VS ];
    VFF = [ VFF, VF ];
    VS231 = VS2([2,3,1]);
    VS112 = VS2([1,1,2]);
    VS323 = VS2([3,2,3]);
    VS121 = VS2([1,2,1]);
    VS233 = VS2([2,3,3]);
    VF312  = VF2([3,1,2]);
    switch col4(k)
        case 1
            IValue = zeros(3,1);
        case 2
            IValue = VF2 - (VS2-VF2);
        case 3
            IValue = VF2 - (VS231-VF2);
    end
   
    lacks = setdiff([1,2,3],col6(col5 == k));
    if ~isempty(lacks)
        IValue(lacks,:) = 0;
    end
    Iset{k} = IValue;
    lackSet{k} = (k - 1)*3 + lacks;
   
    for ok = 1: length(col1)     % ok - col2 index
        if k ~= ok && col3(k) == col2(ok)  % ?? = 起?
            switch col4(ok)
                case 1
                    addIV = zeros(3,1);
                    Iset{k} = Iset{k} + addIV;
                case 2
                    addIV = VS2 - (VS2-VF2);
                    Iset{k} = Iset{k} + addIV;
                case 3
                    addIV = (VS112-VS323) - (VS121-VS233) + (VS2-VF312);
                    Iset{k} = Iset{k} + addIV;
            end           
        end
    end      
end

format short g;
Itr_tmp = cat(1,Iset{:});
Itr_tmp([lackSet{:}]) = [];
Itr = Itr_tmp
回复

使用道具 举报

发表于 2010-10-26 20:42:25 | 显示全部楼层 来自 湖南湘潭
1#的思路蛮好的,和2#及3#好像不是同一个问题(alpha和beta省略了?)。
1#的示意图好像画错了:
示意图 ( 蓝字为支路号 红字为点 )
       @---------------@---------------@---------------@---------------@
        0      1        1        2        2       3       3       4        4

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2010-10-27 09:24:45 | 显示全部楼层 来自 台湾
本帖最后由 武神裝攻 于 2010-10-27 09:26 编辑

不好意思小弟回覆一下
(1) 2#及3#是同一个没错
2#是解说
3#是程序
主要拿掉alpha和beta是因为之前程序是可以直接延用所以我就拿掉,只求电压V,而在之后只要在IValue跟addIV放回之前公式便可

(2)依照表1,却实最后一个点有误,在此深为感到抱歉  
示意图 ( 蓝字为支路号 红字为点 )
回复

使用道具 举报

发表于 2010-10-30 21:38:42 | 显示全部楼层 来自 湖南湘潭
Itr =

  1.0e+002 *

   0.0944 + 0.1039i   0.0625 + 0.0688i  -0.0020 - 0.0022i
   0.1284 + 0.1426i   0.2316 + 0.2553i   0.0024 + 0.0038i
   1.7060 + 1.8481i   1.6293 + 1.7651i   2.6031 + 2.8201i
        0                  0                  0         


Itr2 =

  1.0e+002 *

   0.0944 + 0.1039i   0.0625 + 0.0688i  -0.0020 - 0.0022i
   0.1284 + 0.1426i   0.2316 + 0.2553i   0.0024 + 0.0038i
   1.7060 + 1.8481i   1.6293 + 1.7651i   2.6031 + 2.8201i
        0                  0                  0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-21 00:45 , Processed in 0.046785 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表