../../_images/anacdu.png

Funções Úteis Construídas com os Blocos Elementares de CDU

A linguagem de escrita de diagramas de blocos em CDU permite a construção de diversas funções, desde as mais básicas até as mais complexas.

Neste caso exemplo é ilustrada a construção de uma série de funções úteis via CDU para a aplicação em sistemas de controle de diversos equipamentos de sistemas de potência.

Listagem 153 CDU Teste para ilustração de funções úteis construídas com blocos elementares
   1(===============================================================================
   2( DADOS DE CDU
   3(===============================================================================
   4DCDU
   5(
   6(
   7(ncdu) ( nome cdu )
   8  0010 TESTE_CDU_01
   9(
  10( #####################################################################
  11( #            CDU PARA GERACAO DE SINAIS DE EXCITACAO                #
  12( #                  A SEREM USADOS NOS EXEMPLOS                      #
  13( #                                                                   #
  14( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
  15( #   - ENTRAD                                                        #
  16( #   - IMPORT subtipo  TEMPO                                         #
  17( #   - SOMA                                                          #
  18( #   - MULTPL                                                        #
  19( #   - DIVSAO                                                        #
  20( #   - GANHO                                                         #
  21( #   - FUNCAO subtipos ATAN, EXP, PULSO e SIN                        #
  22( #   - EXPORT subtipo  CDU                                           #
  23( #                                                                   #
  24( #  E' exemplificada tambem a definicao de valor inicial conhecido   #
  25( #  de uma variavel atraves da instrucao DEFVAL sem subtipo.         #
  26( #                                                                   #
  27( #####################################################################
  28(
  29(
  30( ----------
  31( CONSTANTES
  32( ----------
  33(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
  34   1 ENTRAD               UM
  35   2 FUNCAO ATAN   UM     ATAN1
  36   3 GANHO         ATAN1  DPI       8.0
  37(
  38(EFVAL (stip) (vdef) ( d1 )
  39DEFVAL        UM        1.0
  40(
  41(
  42( ------------------
  43( TEMPO DE SIMULACAO
  44( ------------------
  45(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
  46  11 IMPORT TEMPO         TIME
  47(
  48(
  49( --------------------------------------------------------------
  50( PULSO COM AMPLITUDE  1.0 APLICADO EM  1.0s E RETIRADO EM  5.0s
  51(  +
  52( PULSO COM AMPLITUDE -1.0 APLICADO EM 11.0s E RETIRADO EM 15.0s
  53( --------------------------------------------------------------
  54(
  55(        ^
  56( SINAL1 |
  57(        |  1.0 ********
  58(        |      *      *           11.0    15.0
  59(   *************------**************------**************----->
  60(        |     1.0    5.0           *      *        TIME (seg.)
  61(        |                    - 1.0 ********
  62(        |
  63(
  64(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
  65  21 FUNCAO PULSO  TIME   PULSO+    1.0   1.0   5.0   0.0
  66  22 FUNCAO PULSO  TIME   PULSO-   11.0  -1.0  15.0   0.0
  67  23 SOMA          PULSO+ SINAL1
  68                   PULSO- SINAL1
  69(
  70(
  71( -------------------------------------------------
  72( SINAL SENOIDAL COM AMPLITUDE 1.0 E FREQUENCIA 1Hz
  73( -------------------------------------------------
  74(
  75(  SINAL2 =  AMP2 * SIN( 2Pi * FREQ2 * TIME )
  76(
  77(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
  78  31 ENTRAD               FREQ2
  79  32 ENTRAD               AMP2
  80(
  81  33 MULTPL        DPI    ANG2
  82                   FREQ2  ANG2
  83                   TIME   ANG2
  84  34 FUNCAO SIN    ANG2   SIN2
  85(
  86  35 MULTPL        AMP2   SINAL2
  87                   SIN2   SINAL2
  88(
  89(EFVAL (stip) (vdef) ( d1 )
  90DEFVAL        AMP2      1.0
  91DEFVAL        FREQ2     1.0
  92(
  93(
  94( -------------------------------------------------
  95( SINAL SENOIDAL COM AMPLITUDE 0.5 E FREQUENCIA 5Hz
  96( -------------------------------------------------
  97(
  98(  SINAL3 =  AMP3 * SIN( 2Pi * FREQ3 * TIME )
  99(
 100(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 101  41 ENTRAD               FREQ3
 102  42 ENTRAD               AMP3
 103(
 104  43 MULTPL        DPI    ANG3
 105                   FREQ3  ANG3
 106                   TIME   ANG3
 107  44 FUNCAO SIN    ANG3   SIN3
 108(
 109  45 MULTPL        AMP3   SINAL3
 110                   SIN3   SINAL3
 111(
 112(EFVAL (stip) (vdef) ( d1 )
 113DEFVAL        AMP3      0.5
 114DEFVAL        FREQ3     5.0
 115(
 116(
 117( ------------------------------------------
 118( SINAL SENOIDAL AMORTECIDO APLICADO EM 1.0s
 119( ------------------------------------------
 120(
 121( SINAL4 = 0.0 ;  p/ TIME < T4
 122(
 123(                  (TIME-T4)/TAU4
 124( SINAL4 = AMP4 * e               * SIN( 2Pi * FREQ4 * (TIME-T4) ) ;
 125(                                                      p/ TIME >= T4
 126(
 127( T4    ( Instante da aplicacao da perturbacao em segundos )
 128( AMP4  ( Amplitude da perturbacao oscilatoria             )
 129( TAU4  ( cte. de tempo da perturbacao em segundos         )
 130( FREQ4 ( frequencia da perturbacao em Hz                  )
 131(
 132(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 133  51 ENTRAD               T4
 134  52 ENTRAD               AMP4
 135  53 ENTRAD               TAU4
 136  54 ENTRAD               FREQ4
 137(
 138  55 SOMA          TIME   TREL4
 139                  -T4     TREL4
 140(
 141  56 MULTPL        DPI    ANG4
 142                   FREQ4  ANG4
 143                   TREL4  ANG4
 144  57 FUNCAO SIN    ANG4   SIN4
 145(
 146(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 147  58 DIVSAO       -TREL4  E4
 148                   TAU4   E4
 149  59 FUNCAO EXP    E4     EXP4      1.0  1.0    0.0
 150(
 151  60 FUNCAO PULSO  TREL4  DEG4      0.0   1.0 999.0   1.0
 152(
 153  61 MULTPL        AMP4   SINAL4
 154                   EXP4   SINAL4
 155                   SIN4   SINAL4
 156                   DEG4   SINAL4
 157(
 158(EFVAL (stip) (vdef) ( d1 )
 159DEFVAL        T4        1.0
 160DEFVAL        AMP4      1.0
 161DEFVAL        TAU4      6.0
 162DEFVAL        FREQ4    0.15
 163(
 164(
 165( ------------------------------------------
 166( SINAIS A SEREM EXPORTADOS PARA OUTROS CDUs
 167( ------------------------------------------
 168(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 169  71 EXPORT CDU    SINAL1
 170  72 EXPORT CDU    SINAL1
 171  73 EXPORT CDU    SINAL1
 172  74 EXPORT CDU    SINAL2
 173  75 EXPORT CDU    SINAL3
 174  76 EXPORT CDU    SINAL4
 175(
 176( OBS: Note  que se  um mesmo sinal  de CDU  for exportado  para varios
 177(      lugares devera' haver  um bloco EXPORT  para  cada  bloco IMPORT
 178(      correspondente. Portanto e' necessario criar um local de medicao
 179(      referenciando cada bloco EXPORT subtipo CDU.
 180(
 181FIMCDU
 182(
 183(
 184(
 185(ncdu) ( nome cdu )
 186  0020 TESTE_CDU_02
 187(
 188( #####################################################################
 189( #             CDU PARA TESTE DE BLOCOS DINAMICOS                    #
 190( #                                                                   #
 191( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
 192( #   - IMPORT subtipo  CDU                                           #
 193( #   - PROINT                                                        #
 194( #   - WSHOUT                                                        #
 195( #   - LEDLAG                                                        #
 196( #   - LIMITA                                                        #
 197( #   - POL(S)                                                        #
 198( #   - GANHO                                                         #
 199( #   - SOMA                                                          #
 200( #   - EXPORT subtipo  CDU                                           #
 201( #   - SAIDA                                                         #
 202( #                                                                   #
 203( #  E' exemplificada tambem a definicao de valor inicial conhecido   #
 204( #  de uma variavel atraves da instrucao DEFVAL  sem subtipo  e  a   #
 205( #  a inicializacao de uma variavel com  o valor de outra variavel   #
 206( #  do mesmo CDU atraves da instrucao DEFVAL subtipo VAR.            #
 207( #                                                                   #
 208( #  E' exemplificada tambem a utilizacao do nome de parametro ao     #
 209( #  inves de valor numerico nos campos P1, P2, P3 e P4 do registro   #
 210( #  de dados de bloco e sua definicao atraves da instrucao DEFPAR    #
 211( #  ( ver blocos 61, 74, 75 e 76 ).                                  #
 212( #                                                                   #
 213( #####################################################################
 214(
 215(
 216( --------------------------------
 217( SINAIS IMPORTADOS DE OUTROS CDUs
 218( --------------------------------
 219(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 220   1 IMPORT CDU           INP1       11
 221(
 222( OBS: Os blocos IMPORT subtipo CDU referenciam no campo p1 um local de
 223(      medicao ( ver codigo DLOC ).
 224(
 225(
 226( ----------------------------------
 227( BLOCOS DINAMICOS DE PRIMEIRA ORDEM
 228( ----------------------------------
 229(
 230(            1
 231( OUT1(S) = --- INP1(S)       polo em S =  0.0
 232(            S
 233(
 234(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 235  11 PROINT        INP1   OUT1      1.0   0.0   1.0
 236  12 PROINT        INP1   OUT1LD    1.0   0.0   1.0       LMIN1  LMAX1
 237(
 238(
 239(            1 + S
 240( OUT2(S) = ------- INP1(S)       polo em S =  0.0
 241(              S                  zero em S = -1.0
 242(
 243(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 244  21 PROINT        INP1   OUT2      1.0   1.0   1.0
 245  22 PROINT        INP1   OUT2LD    1.0   1.0   1.0       LMIN2  LMAX2
 246(
 247(
 248(              S
 249( OUT3(S) = ------- INP1(S)       polo em S = -1.0
 250(            1 + S                zero em S =  0.0
 251(
 252(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 253  31 WSHOUT        INP1   OUT3      1.0   1.0   1.0
 254  32 WSHOUT        INP1   OUT3LD    1.0   1.0   1.0       LMIN3  LMAX3
 255(
 256(
 257(              1
 258( OUT4(S) = ------- INP1(S)       polo em S = -1.0
 259(            1 + S
 260(
 261(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 262  41 LEDLAG        INP1   OUT4      1.0   0.0   1.0   1.0
 263  42 LEDLAG        INP1   OUT4LD    1.0   0.0   1.0   1.0 LMIN4  LMAX4
 264(
 265(
 266(             1 + S
 267( OUT5(S) = --------- INP1(S)     polo em S = -2.0
 268(            1 + 0.5S             zero em S = -1.0
 269(
 270(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 271  51 LEDLAG        INP1   OUT5      1.0   1.0   1.0   0.5
 272  52 LEDLAG        INP1   OUT5LD    1.0   1.0   1.0   0.5 LMIN5  LMAX5
 273(
 274(
 275(EFVAL (stip) (vdef) ( d1 )
 276DEFVAL        OUT1       0.
 277DEFVAL        OUT1LD     0.
 278DEFVAL        OUT2       0.
 279DEFVAL        OUT2LD     0.
 280( OBS: Neste caso nao ha' como o programa determinar a saida dos
 281(      integradores,  portanto elas devem ser inicializadas pelo
 282(      usuario.
 283(
 284( Valores dos limites
 285(EFVAL (stip) (vdef) ( d1 )
 286DEFVAL        LMIN1     -2.
 287DEFVAL        LMAX1      2.
 288DEFVAL VAR    LMIN2  LMIN1
 289DEFVAL VAR    LMAX2  LMAX1
 290DEFVAL        LMIN3    -0.5
 291DEFVAL        LMAX3     0.5
 292DEFVAL VAR    LMIN4  LMIN3
 293DEFVAL VAR    LMAX4  LMAX3
 294DEFVAL VAR    LMIN5  LMIN3
 295DEFVAL VAR    LMAX5  LMAX3
 296(
 297( OBS: Observe  que  o  programa  permite  inicializar  o valor  de uma
 298(      variavel com o de outra do mesmo CDU, sem a necessidade de local
 299(      de medicao, usando-se a instrucao DEFVAL subtipo VAR.  E' impor-
 300(      tante  frisar  que  as duas variaveis  devem pertencer  ao mesmo
 301(      CDU. Caso o valor para inicializacao venha  de  uma  variavel de
 302(      outro CDU deve-se usar o comando DEFVAL subtipo CDU referencian-
 303(      do o correspondente local de medicao.
 304(
 305(      Os  limites  de  blocos tipo PROINT, WSHOUT e LEDLAG sao do tipo
 306(      dinamico, isto e', a variavel de estado e' limitada ao inves  da
 307(      sua saida.
 308(
 309(      Quando a funcao do bloco nao possui um zero a variavel de estado
 310(      e' igual à saida do bloco (por exemplo blocos 11, 12, 41 e 42).
 311(      Quando  a funcao do bloco possui um zero a variavel de estado e'
 312(      diferente  da  variavel  de  saida  do  bloco e esta ultima pode
 313(      ultrapassar o limite fornecido (por exemplo blocos 22, 32 e 52).
 314(      Neste caso deve-se em geral colocar um bloco  limitador estatico
 315(      em serie com o bloco com o limite dinamico, se o usuario desejar
 316(      garantir que a saida resultante nao ultrapasse os limites.
 317(
 318(
 319( ----------------------------
 320( BLOCOS LIMITADORES ESTATICOS
 321( ----------------------------
 322(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 323  13 LIMITA        OUT1   OUT1LS                          LMIN1  LMAX1
 324  23 LIMITA        OUT2   OUT2LS                          LMIN2  LMAX2
 325  33 LIMITA        OUT3   OUT3LS                          LMIN3  LMAX3
 326  43 LIMITA        OUT4   OUT4LS                          LMIN4  LMAX4
 327  53 LIMITA        OUT5   OUT5LS                          LMIN5  LMAX5
 328(
 329( OBS: No caso de blocos limitadores estaticos a saida corresponde
 330(      simplesmente à entrada limitada.  Observe  pela  simulacao
 331(      que um bloco do tipo K/(1+ST) com limite dinamico  responde
 332(      mais rapido que aquele com limite estatico na hora de  sair
 333(      do limite ( comparar saida do bloco 42 com a do 43 ).
 334(
 335(
 336( ----------------------------------
 337( BLOCO DINAMICO DE SEGUNDA ORDEM
 338( REPRESENTADO POR BLOCO TIPO POL(S)
 339( ----------------------------------
 340(
 341(                   144
 342( OUT6(S) = -------------------- INP1(S)    polos em S = -1.25 + j 11.97
 343(            S**2 + 2.5 S + 144                          -1.25 - j 11.97
 344(
 345(EFPAR (nome) (     valor      )
 346DEFPAR #K1                 144.0
 347DEFPAR #K2                   2.5
 348(
 349(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 350  61 POL(S)        INP1   OUT6                     #K1
 351                                          1.0#K2   #K1
 352(
 353( OBS: Este tipo de bloco usa sempre dois registros de dados.
 354(      Blocos  tipo POL(S) nao admitem limites dinamicos ( campos VMIN
 355(      e VMAX devem ser deixados em branco ).
 356(
 357(
 358( -----------------------------------
 359( BLOCO DINAMICO DE SEGUNDA ORDEM
 360( REPRESENTADO POR BLOCOS DE PRIMEIRA
 361( ORDEM ( FORMULACAO DE ESTADO )
 362( -----------------------------------
 363(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 364  71 SOMA         +INP1   A
 365                  -Z1     A
 366                  -Z2     A
 367  72 PROINT        A      X2        1.0   0.0   1.0
 368  73 PROINT        X2     X1        1.0   0.0   1.0
 369  74 GANHO         X1     Z1     #K1
 370  75 GANHO         X2     Z2     #K2
 371  76 GANHO         X1     W1     #K1
 372( 77 GANHO         X2     W2        0.0
 373( 78 GANHO         A      W3        0.0
 374  79 SOMA         +W1     OUT7
 375(                 +W2     OUT7
 376(                 +W3     OUT7
 377(
 378( OBS: Os blocos 77 e 78 podem ser necessarios caso se deseje alterar a
 379(      funcao de transferencia.
 380(
 381(      As  variaveis  X1 e X2  correspondem  às variaveis de estado da
 382(      funcao de 2a ordem.
 383(
 384(      Comparando-se os sinais OUT6 e OUT7 e' possivel verificar que os
 385(      os blocos 71 a 79 produzem exatamente a mesma funcao de transfe-
 386(      rencia do bloco 61.
 387(
 388(
 389( ------------------------------------------
 390( SINAIS A SEREM EXPORTADOS PARA OUTROS CDUs
 391( ------------------------------------------
 392(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 393  81 EXPORT CDU    OUT3
 394  82 EXPORT CDU    OUT4
 395  83 EXPORT CDU    OUT5
 396(
 397(
 398( ----------------------------
 399( BLOCOS TERMINADORES DE SAIDA
 400( ----------------------------
 401(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 402  91 SAIDA         OUT1
 403  92 SAIDA         OUT1LD
 404  93 SAIDA         OUT1LS
 405  94 SAIDA         OUT2
 406  95 SAIDA         OUT2LD
 407  96 SAIDA         OUT2LS
 408  97 SAIDA         OUT3LD
 409  98 SAIDA         OUT3LS
 410  99 SAIDA         OUT4LD
 411 100 SAIDA         OUT4LS
 412 101 SAIDA         OUT5LD
 413 102 SAIDA         OUT5LS
 414 103 SAIDA         OUT6
 415 104 SAIDA         OUT7
 416(
 417( OBS: Os blocos tipo SAIDA devem ser conectados na saida de blocos
 418(      cuja variavel nao e' entrada ou limite de nenhum outro bloco.
 419(      Isto e' necessario para que a logica do programa identifique
 420(      corretamente se nao foi esquecida nenhuma ligacao.
 421(
 422FIMCDU
 423(
 424(
 425(
 426(ncdu) ( nome cdu )
 427  0030 TESTE_CDU_03
 428(
 429( #####################################################################
 430( #              CDU PARA TESTE DE BLOCOS TIPO FUNCAO                 #
 431( #                                                                   #
 432( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
 433( #   - ENTRAD                                                        #
 434( #   - IMPORT subtipo  TEMPO                                         #
 435( #   - MULTPL                                                        #
 436( #   - GANHO                                                         #
 437( #   - LIMITA                                                        #
 438( #   - SAIDA                                                         #
 439( #   - FUNCAO subtipos MENOS, DEGREE, RADIAN, SIN, COS, TAN, ASIN,   #
 440( #                     ACOS, ATAN, X**2, SQRT, ABS, INVRS, EXP,      #
 441( #                     TRUNC, ROUND, PULSO, RAMPA, RETA, DEADB1,     #
 442( #                     DEADB2, SAT01 e PONTOS.                       #
 443( #                                                                   #
 444( #  E' exemplificada tambem a definicao de valor inicial conhecido   #
 445( #  de uma variavel atraves da instrucao DEFVAL sem subtipo.         #
 446( #                                                                   #
 447( #  E' exemplificada tambem a utilizacao do nome de parametro ao     #
 448( #  inves de valor numerico nos campos P1, P2, P3 e P4 do registro   #
 449( #  de dados de bloco e sua definicao atraves da instrucao DEFPAR    #
 450( #  ( ver bloco 61 ). Notar a utilizacao do sinal "-" antes do nome  #
 451( #  do parametro no campo P2.                                        #
 452( #                                                                   #
 453( #####################################################################
 454(
 455(
 456( ------------------
 457( TEMPO DE SIMULACAO
 458( ------------------
 459(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 460   1 IMPORT TEMPO         TIME
 461(
 462(
 463( ------------------------------------
 464( ANGULO PARA UMA FREQUENCIA DE 0.1 Hz
 465( ------------------------------------
 466(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 467  11 ENTRAD               FREQ1
 468(
 469( Angulo em graus
 470(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 471  12 MULTPL        FREQ1  FT
 472                   TIME   FT
 473  13 GANHO         FT     ANG1D    360.
 474(
 475( Conversao de graus para radianos
 476(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 477  14 FUNCAO RADIAN ANG1D  ANG1R
 478(
 479(EFVAL (stip) (vdef) ( d1 )
 480DEFVAL        FREQ1     0.1
 481(
 482(
 483( -----------------------
 484( FUNCOES TRIGONOMETRICAS
 485( -----------------------
 486(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 487  21 FUNCAO SIN    ANG1R  SIN1
 488  22 FUNCAO COS    ANG1R  COS1
 489  23 FUNCAO TAN    ANG1R  TAN1
 490(
 491(
 492( --------------------------------
 493( FUNCOES TRIGONOMETRICAS INVERSAS
 494( --------------------------------
 495(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 496  31 FUNCAO ASIN   SIN1   ASIN1R
 497  32 FUNCAO ACOS   COS1   ACOS1R
 498  33 FUNCAO ATAN   TAN1   ATAN1R
 499(
 500( Conversao de radianos para graus
 501(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 502  34 FUNCAO DEGREE ASIN1R ASIN1D
 503  35 FUNCAO DEGREE ACOS1R ACOS1D
 504  36 FUNCAO DEGREE ATAN1R ATAN1D
 505(
 506(
 507( -------------------------------------------------------------
 508( FUNCOES QUADRADO, RAIZ QUADRADA, VALOR ABSOLUTO e SINAL MENOS
 509( -------------------------------------------------------------
 510(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 511  41 FUNCAO X**2   SIN1   SIN**2
 512  42 FUNCAO ABS    SIN1   ABSSIN
 513  43 FUNCAO SQRT   ABSSIN SQRSIN
 514  44 FUNCAO MENOS  SIN1   MSIN1
 515(
 516(
 517( ----------
 518( FUNCAO 1/X
 519( ----------
 520(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 521  51 LIMITA        TIME   TLIM                            LMIN1  LMAX1
 522  52 FUNCAO INVRS  TLIM   USX
 523(
 524( Valores dos limites
 525(EFVAL (stip) (vdef) ( d1 )
 526DEFVAL        LMIN1    0.05
 527DEFVAL        LMAX1  99999.
 528(
 529(
 530( ------------------
 531( FUNCAO EXPONENCIAL
 532( ------------------
 533(
 534(                -0.25 * (TIME-1.0)
 535( EXP1 = 2.0 * e
 536(
 537(EFPAR (nome) (     valor      )
 538DEFPAR #A                    2.0
 539DEFPAR #B                   0.25
 540(
 541(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 542  61 FUNCAO EXP    TIME   EXP1   #A    -#B      1.0
 543(
 544(
 545( -----------------------------------------
 546( FUNCOES PARA TRUNCAMENTO E ARREDONDAMENTO
 547( -----------------------------------------
 548(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 549  71 FUNCAO TRUNC  TIME   INTT
 550  72 FUNCAO ROUND  TIME   INTR
 551(
 552(
 553( ------------
 554( FUNCAO PULSO
 555( ------------
 556(
 557(        ^
 558( PULSO1 |
 559(        |   2.0 *************
 560(        |       *           *
 561(        |       *       1.0 ***************
 562(        |       *
 563(   **************-----------+------------------------->
 564(        |      1.0        10.0            TIME (seg.)
 565(        |
 566(
 567(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 568  81 FUNCAO PULSO  TIME   PULSO1    1.0   2.0  10.0   1.0
 569(
 570(
 571( ------------
 572( FUNCAO RAMPA
 573( ------------
 574(
 575(        ^
 576( RAMPA1 |
 577(        |         2.0   ************
 578(        |             * .
 579(        |           *   .
 580(        |         *     .
 581(    1.0 +********       .
 582(        |       .       .
 583(        |       .       .
 584(   -----+-------+-------+----------------------------->
 585(        |      1.0     10.0              TIME (seg.)
 586(        |
 587(
 588(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 589  82 FUNCAO RAMPA  TIME   RAMPA1    1.0   1.0  10.0   2.0
 590(
 591(
 592( -----------
 593( FUNCAO RETA
 594( -----------
 595(
 596( RETA1 = 0.05 * TIME + 1.0
 597(
 598(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 599  83 FUNCAO RETA   TIME   RETA1    0.05   1.0
 600(
 601(
 602( -----------------------------
 603( FUNCAO BANDA MORTA ( TIPO 1 )
 604( -----------------------------
 605(
 606(                              ^
 607(                       DBAND1 |     DBAND1 = P4 * ( X - P2 )
 608(                              |
 609(                              |               *
 610(                              |             *
 611(                              |           *
 612(                    P1        |         *
 613(         -----------*******************------------------>
 614(                  *           |       P2               X
 615(                *             |
 616(              *               |
 617(            *                 |
 618(                              |
 619(    DBAND1 = P3 * ( X - P1 )  |
 620(                              |
 621(
 622(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 623  84 FUNCAO DEADB1 SIN1   DBAND1   -0.5   0.5   2.0   2.0
 624(
 625(
 626( -----------------------------
 627( FUNCAO BANDA MORTA ( TIPO 2 )
 628( -----------------------------
 629(
 630(                       ^
 631(                DBAND2 |
 632(                       |      P4 ************
 633(                       |         *
 634(                       |         *
 635(             P1        |         *
 636(  -----------*********************------------------>
 637(             *         |         P3               X
 638(             *         |
 639(             *         |
 640(  ************ P2      |
 641(                       |
 642(
 643(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 644  85 FUNCAO DEADB2 SIN1   DBAND2   -0.5  -1.0   0.5   1.0
 645(
 646(
 647( ----------------------------------
 648( FUNCAO DE SATURACAO POR DUAS RETAS
 649( ----------------------------------
 650(
 651(                       ^
 652(                  SAT1 |
 653(                       |                       *
 654(                    P4 |-------------------*
 655(                       |               *   |
 656(                       |           *       |
 657(                       |       *           |
 658(                    P2 |---*---------------|
 659(                       |  *|               |
 660(                       | * |               |
 661(                       |*  |               |
 662(  ---------------------*---+---------------+--------->
 663(                      *|   P1              P3      X
 664(                     * |
 665(                    *  |
 666(                   *   |
 667(               *       |
 668(           *           |
 669(       *               |
 670(   *                   |
 671(
 672(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 673  86 FUNCAO SAT01  SIN1   SAT1      0.8   0.1   1.0   1.0
 674(
 675(
 676( -------------------------------------
 677( BLOCOS COM NAO-LINEARIDADE POR PONTOS
 678( -------------------------------------
 679(
 680(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 681  87 FUNCAO RETA   TIME   TIME2     1.0  -10.
 682(
 683  88 FUNCAO PONTOS TIME2  NONL1    -7.4 -2.01
 684                                   -7.2 -2.00
 685                                   -3.2 -1.80
 686                                   -1.2 -1.30
 687                                    1.2  1.30
 688                                    3.2  1.80
 689                                    7.2  2.00
 690                                    7.4  2.01
 691(
 692(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 693  89 FUNCAO PONTOS TIME2  NONL2   -10.0  0.00 -8.0  0.20
 694                                   -6.0  0.40 -4.0  1.00
 695                                   -2.0  1.80  0.0  2.00
 696                                    2.0  1.80  4.0  1.00
 697                                    6.0  0.40  8.0  0.20
 698                                   10.0  0.00
 699(
 700( OBS: Os pontos sao dados em pares ( X, Y ) correspondentes aos pares
 701(      ( p1, p2 ) e ( p3, p4 ) .
 702(      Os pontos devem ser dados por ordem crescente de X.
 703(      Caso ambos os campos do par estejam em branco o par e' ignorado.
 704(      Se apenas um dos campos do par estiver em branco este campo
 705(      assumira' o valor zero.
 706(      Dois pontos consecutivos na curva nao podem ter o mesmo valor
 707(      de X ou de Y .
 708(
 709(
 710( ----------------------------
 711( BLOCOS TERMINADORES DE SAIDA
 712( ----------------------------
 713(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 714100  SAIDA         ASIN1D
 715101  SAIDA         ACOS1D
 716102  SAIDA         ATAN1D
 717103  SAIDA         SIN**2
 718104  SAIDA         MSIN1
 719105  SAIDA         SQRSIN
 720106  SAIDA         USX
 721107  SAIDA         EXP1
 722108  SAIDA         INTT
 723109  SAIDA         INTR
 724110  SAIDA         PULSO1
 725111  SAIDA         RAMPA1
 726112  SAIDA         RETA1
 727113  SAIDA         DBAND1
 728114  SAIDA         DBAND2
 729115  SAIDA         SAT1
 730116  SAIDA         NONL1
 731117  SAIDA         NONL2
 732(
 733( OBS: Os blocos tipo SAIDA devem ser conectados na saida de blocos
 734(      cuja variavel nao e' entrada ou limite de nenhum outro bloco.
 735(      Isto e' necessario para que a logica do programa identifique
 736(      corretamente se nao foi esquecida nenhuma ligacao.
 737(
 738FIMCDU
 739(
 740(
 741(
 742(ncdu) ( nome cdu )
 743  0040 TESTE_CDU_04
 744(
 745( #####################################################################
 746( #            CDU PARA TESTE DE NOVOS TIPOS DE BLOCOS                #
 747( #                                                                   #
 748( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
 749( #   - ENTRAD                                                        #
 750( #   - IMPORT subtipos DT e CDU                                      #
 751( #   - SOMA                                                          #
 752( #   - MULTPL                                                        #
 753( #   - DIVSAO                                                        #
 754( #   - FUNCAO subtipos INVRS e PULSO                                 #
 755( #   - MAX    ( novo )                                               #
 756( #   - MIN    ( novo )                                               #
 757( #   - DELAY  ( novo )                                               #
 758( #   - ACUM   ( novo )                                               #
 759( #   - T/HOLD ( novo )                                               #
 760( #   - S/HOLD ( novo )                                               #
 761( #   - SAIDA                                                         #
 762( #                                                                   #
 763( #  E' exemplificada tambem a definicao de valor inicial conhecido   #
 764( #  de uma variavel atraves da instrucao DEFVAL sem subtipo.         #
 765( #                                                                   #
 766( #####################################################################
 767(
 768(
 769( --------------------------------
 770( SINAIS IMPORTADOS DE OUTROS CDUs
 771( --------------------------------
 772(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 773   1 IMPORT CDU           OUT3       21
 774   2 IMPORT CDU           OUT4       22
 775   3 IMPORT CDU           OUT5       23
 776   4 IMPORT CDU           SINAL4     16
 777(
 778( OBS: Os blocos IMPORT subtipo CDU referenciam no campo p1 um local de
 779(      medicao ( ver codigo DLOC ).
 780(
 781(
 782( -----------------------------------------
 783( BLOCOS SELETORES DE VALOR MAXIMO / MINIMO
 784( -----------------------------------------
 785(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 786  11 MAX           OUT3   VMAX
 787                   OUT4   VMAX
 788                   OUT5   VMAX
 789(
 790  12 MIN           OUT3   VMIN
 791                   OUT4   VMIN
 792                   OUT5   VMIN
 793(
 794(
 795( ------------------------------------------------
 796( BLOCOS COM ATRASO FIXO DE UM PASSO DE INTEGRACAO
 797( ------------------------------------------------
 798(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 799  21 DELAY         OUT4   DEL1
 800  22 DELAY         DEL1   DEL2
 801  23 DELAY         DEL2   DEL3
 802  24 DELAY         DEL3   DEL4
 803  25 DELAY         DEL4   DEL5
 804  26 DELAY         DEL5   DEL6
 805  27 DELAY         DEL6   DEL7
 806  28 DELAY         DEL7   DEL8
 807  29 DELAY         DEL8   DEL9
 808  30 DELAY         DEL9   DEL10
 809(
 810( OBS: O atraso do sinal DEL10 em relacao ao sinal INP1 e' de 10*DT.
 811(
 812(
 813( ------------------------------------------------------------------
 814( GERACAO DE ONDA "DENTE DE SERRA" USANDO BLOCO ACUMULADOR RESETAVEL
 815( ------------------------------------------------------------------
 816(
 817( STEP  - passo de integracao
 818( FREQ1 - frequencia da dente de serra
 819( PER1  - periodo da dente de serra
 820( NSTEP - numero de passos correspondentes ao periodo da dente de serra
 821( LEVEL - valor que o acumulador deve atingir para ser resetado
 822(
 823(
 824( ** Calculo do nivel para reset do acumulador **
 825(
 826(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 827  40 IMPORT DT            STEP
 828  41 ENTRAD               DOIS
 829  42 ENTRAD               FREQ1
 830(
 831  43 FUNCAO INVRS  FREQ1  PER1
 832  44 DIVSAO        PER1   NSTEP
 833                   STEP   NSTEP
 834  45 SOMA          NSTEP  LEVEL
 835                  -DOIS   LEVEL
 836(
 837(EFVAL (stip) (vdef) ( d1 )
 838DEFVAL        DOIS      2.0
 839DEFVAL        FREQ1     3.0
 840(
 841(
 842( ** Geracao do sinal de reset do acumulador ( sinal RESETA ) **
 843(
 844(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 845  46 SOMA          ACUMUL RESET
 846                  -LEVEL  RESET
 847  47 DELAY         RESET  RESETA
 848(
 849( OBS: E' necessario  acrescentar um atraso de um DT no sinal de reset
 850(      ( atraves de um bloco DELAY ) para evitar mudancas de estado do
 851(      bloco acumulador durante as iteracoes da solucao no instante em
 852(      o que  o acumulador  vai ser resetado.  Este procedimento e' em
 853(      geral  necessario  para as entradas de controle dos blocos tipo
 854(      ACUM, S/HOLD e T/HOLD.
 855(
 856(      Para que a duracao da onda "dente de serra" seja igual a PER1 o
 857(      acumulador  deve  ser resetado apos atingir o valor NSTEP-1. No
 858(      entanto devido ao atraso imposto ao pulso de reset  este valor
 859(      deve ser compensado usando-se LEVEL = NSTEP-2 .
 860(
 861(
 862( ** Geracao de uma dente de serra pela acumulacao do valor 1.0  **
 863( ** a cada DT e pelo reset do acumulador ao final de cada ciclo **
 864(
 865(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 866  48 ACUM          INPUT  ACUMUL
 867                   HOLD   ACUMUL
 868                   RESETA ACUMUL
 869                   ACUM0  ACUMUL
 870  49 ENTRAD               INPUT
 871  50 ENTRAD               HOLD
 872  51 ENTRAD               ACUM0
 873(
 874(EFVAL (stip) (vdef) ( d1 )
 875DEFVAL        INPUT     1.0
 876DEFVAL        HOLD      0.0
 877DEFVAL        ACUM0     0.0
 878DEFVAL        ACUMUL    0.0
 879(
 880( OBS: Como o sinal HOLD e' igual a  0.0  o acumulador  estara' sempre
 881(      em estado de acumulacao enquanto o sinal RESETA =< 0.0.  Quando
 882(      RESETA fica > 0.0 a variavel ACUMUL e' inicializada com o valor
 883(      ACUM0 ( = 0.0 ).
 884(
 885(
 886( ** Convertendo o valor do acumulador para segundos **
 887(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 888  52 MULTPL        ACUMUL TIMER
 889                   STEP   TIMER
 890(
 891(
 892( ----------------------------------------------------------------
 893( GERACAO DE UM TREM DE PULSOS COM FREQUENCIA FREQ1 E LARGURA 0.1s
 894( ----------------------------------------------------------------
 895(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 896  61 FUNCAO PULSO  TIMER  CLOCK     0.0   1.0  0.15   0.0
 897(
 898(
 899( ----------------------------------------------------------
 900( BLOCOS TRACK/HOLD E SAMPLE/HOLD COM UMA SENOIDE AMORTECIDA
 901( APLICADA À ENTRADA  E CHAVEADOS POR UM TREM DE PULSOS  DE
 902( FREQUENCIA FREQ1 e LARGURA 150ms
 903( ----------------------------------------------------------
 904(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 905  71 T/HOLD        SINAL4 T/H
 906                   CLOCK  T/H
 907(
 908  72 S/HOLD        SINAL4 S/H
 909                   CLOCK  S/H
 910(
 911(EFVAL (stip) (vdef) ( d1 )
 912DEFVAL        T/H       0.0
 913DEFVAL        S/H       0.0
 914(
 915(
 916( ----------------------------
 917( BLOCOS TERMINADORES DE SAIDA
 918( ----------------------------
 919(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 920 80  SAIDA         VMAX
 921 81  SAIDA         VMIN
 922 82  SAIDA         DEL10
 923 83  SAIDA         T/H
 924 84  SAIDA         S/H
 925(
 926( OBS: Os blocos tipo SAIDA devem ser conectados na saida de blocos
 927(      cuja variavel nao e' entrada ou limite de nenhum outro bloco.
 928(      Isto e' necessario para que a logica do programa identifique
 929(      corretamente se nao foi esquecida nenhuma ligacao.
 930(
 931FIMCDU
 932(
 933(
 934(
 935(ncdu) ( nome cdu )
 936  0050 TESTE_CDU_05
 937(
 938( #####################################################################
 939( #             CDU PARA EXEMPLO DE SIMULACAO DE RELAY                #
 940( #                 ATRAVES DE BLOCOS ELEMENTARES                     #
 941( #                 E USANDO BLOCO SELET2                             #
 942( #                                                                   #
 943( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
 944( #   - IMPORT subtipo  CDU                                           #
 945( #   - SOMA                                                          #
 946( #   - MULTPL                                                        #
 947( #   - FUNCAO subtipos ABS, PULSO e RETA                             #
 948( #   - SAIDA                                                         #
 949( #   - SELET2                                                        #
 950( #                                                                   #
 951( #####################################################################
 952(
 953(
 954( --------------------------------
 955( SINAIS IMPORTADOS DE OUTROS CDUs
 956( --------------------------------
 957(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 958   1 IMPORT CDU           INP1       14
 959   2 IMPORT CDU           INP2       15
 960   3 IMPORT CDU           INP3       12
 961   4 FUNCAO ABS    INP3   ABSINP
 962   5 FUNCAO RETA   ABSINP CONTR     2.0  -1.0
 963(
 964( OBS: Os blocos IMPORT subtipo CDU referenciam no campo p1 um local de
 965(      medicao ( ver codigo DLOC ).
 966(
 967(
 968( ----------------------
 969( REPRESENTACAO DO RELAY
 970( ----------------------
 971(
 972(                +---------+
 973(  INP1  ------->|         |   OUTREL
 974(                |         |------>
 975(  INP2  ------->|         |
 976(                +---------+
 977(                     ^
 978(                     |
 979(                   CONTR
 980(
 981(  Os sinais INP1 e INP2 serao usados como entradas do RELAY.
 982(  O sinal CONTR sera' usado para controle do RELAY :
 983(      CONTR <= 0    -->  OUTREL = INP1
 984(      CONTR >  0    -->  OUTREL = INP2
 985(
 986( ** Traducao do sinal de controle para um valor logico ( 0 OU 1 )
 987(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 988  21 FUNCAO PULSO  CONTR  LOGIC     0.0   1.0 999.0   1.0
 989(
 990( ** Obtencao da negacao do sinal logico
 991(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 992  22 FUNCAO RETA   LOGIC  NLOGIC   -1.0   1.0
 993(
 994( ** Combinacao das entradas com os sinais logicos para obter o RELAY
 995(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 996  23 MULTPL        INP1   PROD1
 997                   NLOGIC PROD1
 998  24 MULTPL        INP2   PROD2
 999                   LOGIC  PROD2
1000  25 SOMA          PROD1  OUTREL
1001                   PROD2  OUTREL
1002(
1003(
1004( ** A partir da versao V03-01/96 o RELAY pode ser representado diretamente
1005(    pelo bloco tipo SELET2.
1006(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1007  26 SELET2        PROD1  OUTSEL
1008                   PROD2  OUTSEL
1009                   CONTR  OUTSEL
1010( obs: Convem notar que o comportamento do bloco SELET2 do ANATEM e do
1011(      elemento RELAY do TRANSDIR sao diferentes quando a entrada e'
1012(      exatamente igual a zero ( SELET2 seleciona a primeira entrada e
1013(      RELAY seleciona a segunda entrada ).
1014(
1015(
1016( ----------------------------
1017( BLOCOS TERMINADORES DE SAIDA
1018( ----------------------------
1019(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1020  30 SAIDA         OUTREL
1021  31 SAIDA         OUTSEL
1022(
1023FIMCDU
1024(
1025(
1026(
1027(ncdu) ( nome cdu )
1028  0060 TESTE_CDU_06
1029(
1030( #####################################################################
1031( #    CDU PARA EXEMPLO DE PROBLEMAS NA INICIALIZACAO AUTOMATICA      #
1032( #                                                                   #
1033( #    CASO 1 - Canais paralelos com inicializacao da saida para      #
1034( #             a entrada do CDU                                      #
1035( #                                                                   #
1036( #    CASO 2 - Realimentacao com inicializacao  da entrada para      #
1037( #             saida do CDU                                          #
1038( #                                                                   #
1039( #  Este CDU apresenta exemplo de uso dos seguintes tipos de bloco : #
1040( #   - ENTRAD                                                        #
1041( #   - IMPORT subtipo  CDU                                           #
1042( #   - SOMA                                                          #
1043( #   - LEDLAG                                                        #
1044( #   - GANHO                                                         #
1045( #   - FRACAO                                                        #
1046( #   - SAIDA                                                         #
1047( #                                                                   #
1048( #  E' exemplificada tambem a definicao de valor inicial conhecido   #
1049( #  de  uma variavel  atraves da instrucao DEFVAL sem subtipo  e a   #
1050( #  a inicializacao de uma variavel com o valor  de outra variavel   #
1051( #  do mesmo CDU atraves da instrucao DEFVAL subtipo VAR.            #
1052( #                                                                   #
1053( #####################################################################
1054(
1055(
1056( --------------------------------
1057( SINAIS IMPORTADOS DE OUTROS CDUs
1058( --------------------------------
1059(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1060   1 IMPORT CDU           INP1       13
1061(
1062( OBS: Os blocos IMPORT subtipo CDU referenciam no campo p1 um local de
1063(      medicao ( ver codigo DLOC ).
1064(
1065(
1066( -------------------------------------------------------------------
1067( CASO 1 - CANAIS PARALELOS COM INICIALIZACAO DA SAIDA PARA A ENTRADA
1068(          DO CDU
1069( -------------------------------------------------------------------
1070(
1071(                                                     SENTIDO DE
1072(                                                    INICIALIZACAO
1073(                          +----------+            <---------------
1074(                          |    K1    |   X2
1075(                  +------>| -------- |------>---+
1076(                  |       | 1 + S T1 |          |
1077(                  |       +----------+          | -
1078(          X1      |                            ---            X4
1079(  ----->----------+                           | + |------+------->
1080(                  |                            ---       |
1081(            ^     |       +----------+          | +      |
1082(            .     |       |    K2    |   X3     |        |
1083(            .D    +------>| -------- |------>---+        |
1084(            .E            | 1 + S T2 |                   |
1085(            .F            +----------+                   |
1086(            .V                                           |
1087(            .A                                           |
1088(      +--+  .L                                           |
1089(     / S |  .              +---------+                   |
1090(    /  A |     X5          |    1    |                   |
1091(   *   I |---------<-------| ------- |--------<----------+
1092(    \  D |                 | K2 - K1 |
1093(     \ A |                 +---------+
1094(      +--+
1095(
1096(  No esquema acima  se as variaveis X1, X2 e X3  sao  desconhecidas e
1097(  a variavel  X4 e' conhecida a inicializacao do CDU deve se fazer no
1098(  sentido indicado ( da saida para a entrada do CDU ).
1099(
1100(  No entanto como o programa faz uma inicializacao bloco  a  bloco  e'
1101(  impossivel no diagrama acima prosseguir  a inicializacao  automatica
1102(  alem do bloco somador pois este possui  duas entradas  desconhecidas
1103(  ( X2 e X3 ).
1104(
1105(  Como  sabemos  que  o  ganho  em regime  resultante  dos dois canais
1106(  paralelos  corresponde  a  K2-K1 pode-se calcular o valor inicial da
1107(  variavel  X1 usando um bloco auxiliar com ganho 1/(K2-K1) .  O valor
1108(  inicial da variavel X5  e' transportado para  a variavel X1  atraves
1109(  da instrucao DEFVAL.
1110(
1111(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1112  11 ENTRAD               REF1
1113  12 SOMA         +INP1   X1
1114                  -REF1   X1
1115(
1116(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1117  13 LEDLAG        X1     X2        1.0   0.0   1.0   1.0
1118  14 LEDLAG        X1     X3        1.1   0.0   1.0   0.2
1119  15 SOMA         -X2     X4
1120                  +X3     X4
1121(
1122(EFVAL (stip) (vdef) ( d1 )
1123DEFVAL        X4        1.0
1124(
1125(
1126( ** bloco auxiliar para inicializacao **
1127(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1128  21*FRACAO        X4     X5        1.0   0.0   1.1  -1.0
1129  22*SAIDA         X5
1130( obs: Notar o caracter "*" na coluna 5 dos registros referentes aos
1131(      blocos 21 e 22, sinalizando que estes blocos serao utilizados
1132(      apenas na inicializacao do CDU, sendo ignorados durante a
1133(      simulacao no tempo.
1134(
1135(EFVAL (stip) (vdef) ( d1 )
1136DEFVAL VAR    X1     X5
1137(
1138(
1139(
1140( -------------------------------------------------------------------
1141( CASO 2 - REALIMENTACAO COM INICIALIZACAO DA ENTRADA PARA A SAIDA
1142(          DO CDU
1143( -------------------------------------------------------------------
1144(
1145(   SENTIDO DE
1146(  INICIALIZACAO
1147(  --------------->
1148(
1149(                          +----------+
1150(      X6    +  ---   X7   |    K1    |        X8
1151(  ----+------>| + |------>| -------- |--------+------>-------
1152(      |        ---        | 1 + S T1 |        |
1153(      |       - ^         +----------+        |      ^
1154(      |         |                             |      .
1155(      |         |                             |      . D
1156(      |         |    X9      +----+           |      . E
1157(      |         +------------| K2 |<----------+      . F
1158(      |                      +----+                  . V
1159(      |                                              . A
1160(      |                                              . L
1161(      |                                              .     +--+
1162(      |                   +-----------+              .     | S \
1163(      |                   |     K1    |          X10       | A  \
1164(      +------------------>| --------- |-------->-----------| I   *
1165(                          | 1 + K1 K2 |                    | D  /
1166(                          +-----------+                    | A /
1167(                                                           +--+
1168(
1169(  No esquema acima  se as variaveis X7, X8 e X9  sao  desconhecidas e
1170(  a variavel  X6 e' conhecida a inicializacao do CDU deve se fazer no
1171(  sentido indicado ( da entrada para a saida do CDU ).
1172(
1173(  No entanto como o programa faz uma inicializacao bloco  a  bloco  e'
1174(  impossivel no diagrama acima prosseguir  a inicializacao  automatica
1175(  alem do bloco somador pois este possui uma entrada ( X9 ) e a saida
1176(  ( X7 ) desconhecidas.
1177(
1178(  Como  sabemos que o ganho em regime resultante do bloco realimentado
1179(  corresponde a K1/(1+K1K2) pode-se calcular o valor inicial da varia-
1180(  vel  X8  usando  um  bloco auxiliar  com ganho  K1/(1+K1K2). O valor
1181(  inicial da variavel X10 e' transportado para  a variavel X8  atraves
1182(  da instrucao DEFVAL.
1183(
1184(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1185  31 ENTRAD               REF2
1186  32 SOMA         +INP1   X6
1187                  -REF2   X6
1188(
1189(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1190  33 SOMA         +X6     X7
1191                  -X9     X7
1192  34 LEDLAG        X7     X8        2.0   0.0   1.0   1.0
1193  35 GANHO         X8     X9        0.5
1194(
1195(EFVAL (stip) (vdef) ( d1 )
1196DEFVAL        X6        1.0
1197(
1198(
1199( ** bloco auxiliar para inicializacao **
1200(
1201(                                   K1
1202(  K1 = 2.0    K2 = 0.5  ===>  ----------- = 1.0
1203(                               1 + K1 K2
1204(
1205(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
1206  41*GANHO         X6     X10       1.0
1207  42*SAIDA         X10
1208( obs: Notar o caracter "*" na coluna 5 dos registros referentes aos
1209(      blocos 41 e 42, sinalizando que estes blocos serao utilizados
1210(      apenas na inicializacao do CDU, sendo ignorados durante a
1211(      simulacao no tempo.
1212(
1213(EFVAL (stip) (vdef) ( d1 )
1214DEFVAL VAR    X8     X10
1215(
1216FIMCDU
1217(
1218(
1219999999

Sinais exportados para outros CDUs no modo ANAC

O trecho a seguir destaca exemplos de sinais exportados para outros CDUs neste caso exemplo:

Listagem 154 Sinais exportados para outros CDUs
 1( ------------------------------------------
 2( SINAIS A SEREM EXPORTADOS PARA OUTROS CDUs
 3( ------------------------------------------
 4(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
 571 EXPORT CDU    SINAL1
 672 EXPORT CDU    SINAL1
 773 EXPORT CDU    SINAL1
 874 EXPORT CDU    SINAL2
 975 EXPORT CDU    SINAL3
1076 EXPORT CDU    SINAL4
11(
12( OBS: Note  que se  um mesmo sinal  de CDU  for exportado  para varios
13(      lugares devera' haver  um bloco EXPORT  para  cada  bloco IMPORT
14(      correspondente. Portanto e' necessario criar um local de medicao
15(      referenciando cada bloco EXPORT subtipo CDU.

Sinais importados de outros CDUs no modo ANAC

O trecho a seguir destaca exemplos de sinais importados de outros CDUs neste caso exemplo:

Listagem 155 Sinais importados de outros CDUs
1( --------------------------------
2( SINAIS IMPORTADOS DE OUTROS CDUs
3( --------------------------------
4(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
5   1 IMPORT CDU           INP1       14
6   2 IMPORT CDU           INP2       15
7   3 IMPORT CDU           INP3       12

Definição de locais de exportação/importação de sinais de CDUs

Para viabilizar a importação/eportação de sinais entre CDUs no modo ANAC há necessidade de criar locais remotos de medição, conforme ilustrado a seguir:

Listagem 156 Sinais exportados de um CDU para importação em outro CDU
 1(===============================================================================
 2( LOCAIS DE MEDICAO
 3(===============================================================================
 4DLOC
 5(Lc)   (Tipo)( El )( Pa)Nc( Ex)Gr(Bl)
 611   CDU       10                71     ( SINAL1 - TESTE_CDU_01 )
 712   CDU       10                72     ( SINAL1 - TESTE_CDU_01 )
 813   CDU       10                73     ( SINAL1 - TESTE_CDU_01 )
 914   CDU       10                74     ( SINAL2 - TESTE_CDU_01 )
1015   CDU       10                75     ( SINAL3 - TESTE_CDU_01 )
1116   CDU       10                76     ( SINAL4 - TESTE_CDU_01 )
1221   CDU       20                81     ( OUT3   - TESTE_CDU_02 )
1322   CDU       20                82     ( OUT4   - TESTE_CDU_02 )
1423   CDU       20                83     ( OUT5   - TESTE_CDU_02 )
15(
16999999

Exemplos de funções construídas com blocos elementares

A seguir são apresentados alguns resultados de funções construídas neste caso exemplo usando os blocos elementares da estrutura de CDU.

Aviso

Mais detalhes podem ser consultados no arquivo de exemplo “C:\Cepel\Anatem\vXX_YY_ZZ\EXEMPLOS\08_ANACDU\TEST_CDU.STB”

Sendo vXX_YY_ZZ o número da versão instalada.

../../_images/blocos_uteis_1.PNG
../../_images/blocos_uteis_2.PNG
../../_images/blocos_uteis_3.PNG
../../_images/blocos_uteis_4.PNG
../../_images/blocos_uteis_5.PNG
../../_images/blocos_uteis_6.PNG
../../_images/blocos_uteis_7.PNG
../../_images/blocos_uteis_8.PNG
../../_images/blocos_uteis_9.PNG
../../_images/blocos_uteis_10.PNG
../../_images/blocos_uteis_11.PNG
../../_images/blocos_uteis_12.PNG
../../_images/blocos_uteis_13.PNG