../../_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 135 CDU Teste para ilustração de funções úteis construídas com blocos elementares
   1 (===============================================================================
   2 ( DADOS DE CDU
   3 (===============================================================================
   4 DCDU
   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 )
  39 DEFVAL        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 )
  90 DEFVAL        AMP2      1.0
  91 DEFVAL        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 )
 113 DEFVAL        AMP3      0.5
 114 DEFVAL        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 )
 159 DEFVAL        T4        1.0
 160 DEFVAL        AMP4      1.0
 161 DEFVAL        TAU4      6.0
 162 DEFVAL        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 (
 181 FIMCDU
 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 )
 276 DEFVAL        OUT1       0.
 277 DEFVAL        OUT1LD     0.
 278 DEFVAL        OUT2       0.
 279 DEFVAL        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 )
 286 DEFVAL        LMIN1     -2.
 287 DEFVAL        LMAX1      2.
 288 DEFVAL VAR    LMIN2  LMIN1
 289 DEFVAL VAR    LMAX2  LMAX1
 290 DEFVAL        LMIN3    -0.5
 291 DEFVAL        LMAX3     0.5
 292 DEFVAL VAR    LMIN4  LMIN3
 293 DEFVAL VAR    LMAX4  LMAX3
 294 DEFVAL VAR    LMIN5  LMIN3
 295 DEFVAL 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      )
 346 DEFPAR #K1                 144.0
 347 DEFPAR #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 (
 422 FIMCDU
 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 )
 480 DEFVAL        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 )
 526 DEFVAL        LMIN1    0.05
 527 DEFVAL        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      )
 538 DEFPAR #A                    2.0
 539 DEFPAR #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)
 714 100  SAIDA         ASIN1D
 715 101  SAIDA         ACOS1D
 716 102  SAIDA         ATAN1D
 717 103  SAIDA         SIN**2
 718 104  SAIDA         MSIN1
 719 105  SAIDA         SQRSIN
 720 106  SAIDA         USX
 721 107  SAIDA         EXP1
 722 108  SAIDA         INTT
 723 109  SAIDA         INTR
 724 110  SAIDA         PULSO1
 725 111  SAIDA         RAMPA1
 726 112  SAIDA         RETA1
 727 113  SAIDA         DBAND1
 728 114  SAIDA         DBAND2
 729 115  SAIDA         SAT1
 730 116  SAIDA         NONL1
 731 117  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 (
 738 FIMCDU
 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 )
 838 DEFVAL        DOIS      2.0
 839 DEFVAL        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 )
 875 DEFVAL        INPUT     1.0
 876 DEFVAL        HOLD      0.0
 877 DEFVAL        ACUM0     0.0
 878 DEFVAL        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 )
 912 DEFVAL        T/H       0.0
 913 DEFVAL        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 (
 931 FIMCDU
 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 (
1023 FIMCDU
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 )
1123 DEFVAL        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 )
1136 DEFVAL 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 )
1196 DEFVAL        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 )
1214 DEFVAL VAR    X8     X10
1215 (
1216 FIMCDU
1217 (
1218 (
1219 999999

Sinais exportados para outros CDUs no modo ANAC

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

Listagem 136 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)
 5 71 EXPORT CDU    SINAL1
 6 72 EXPORT CDU    SINAL1
 7 73 EXPORT CDU    SINAL1
 8 74 EXPORT CDU    SINAL2
 9 75 EXPORT CDU    SINAL3
10 76 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 137 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 138 Sinais exportados de um CDU para importação em outro CDU
 1 (===============================================================================
 2 ( LOCAIS DE MEDICAO
 3 (===============================================================================
 4 DLOC
 5 (Lc)   (Tipo)( El )( Pa)Nc( Ex)Gr(Bl)
 6 11   CDU       10                71     ( SINAL1 - TESTE_CDU_01 )
 7 12   CDU       10                72     ( SINAL1 - TESTE_CDU_01 )
 8 13   CDU       10                73     ( SINAL1 - TESTE_CDU_01 )
 9 14   CDU       10                74     ( SINAL2 - TESTE_CDU_01 )
10 15   CDU       10                75     ( SINAL3 - TESTE_CDU_01 )
11 16   CDU       10                76     ( SINAL4 - TESTE_CDU_01 )
12 21   CDU       20                81     ( OUT3   - TESTE_CDU_02 )
13 22   CDU       20                82     ( OUT4   - TESTE_CDU_02 )
14 23   CDU       20                83     ( OUT5   - TESTE_CDU_02 )
15 (
16 999999

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