[944] | 1 | #*------------------------------------------------------------------- |
---|
| 2 | * EMSO Model Library (EML) Copyright (C) 2004 - 2007 ALSOC. |
---|
| 3 | * |
---|
| 4 | * This LIBRARY is free software; you can distribute it and/or modify |
---|
| 5 | * it under the therms of the ALSOC FREE LICENSE as available at |
---|
| 6 | * http://www.enq.ufrgs.br/alsoc. |
---|
| 7 | * |
---|
| 8 | * EMSO is distributed under the terms of the ALSOC LICENSE as |
---|
| 9 | * available at http://www.enq.ufrgs.br/alsoc. |
---|
| 10 | *----------------------------------------------------------------------- |
---|
| 11 | * Author: Jonathan Ospino |
---|
| 12 | * $Id: TrigFcns.mso 2012$ |
---|
| 13 | *---------------------------------------------------------------------*# |
---|
| 14 | |
---|
| 15 | using "types"; |
---|
| 16 | |
---|
| 17 | Model Trig_Fcns |
---|
| 18 | |
---|
| 19 | ATTRIBUTES |
---|
| 20 | Pallete=true; |
---|
| 21 | Icon="icon/Trig_Fcns"; |
---|
| 22 | Info="== Trigonometric functions block == |
---|
| 23 | |
---|
| 24 | It computes the trigonometric functions sin(x), cos(x), tan(x), cot(x), |
---|
| 25 | sec(x), csc(x), asin(x), acos(x), atan(x), acot(x), asec(x), acsc(x), sinh(x), |
---|
| 26 | cosh(x), tanh(x), coth(x), sech(x), and csch (x) of the |
---|
| 27 | input signal, x. The resulting value is assigned to the output variable"; |
---|
| 28 | |
---|
| 29 | PARAMETERS |
---|
| 30 | Select_a_function as Switcher(Valid=["sin(x)","cos(x)","tan(x)","cot(x)","sec(x)","csc(x)","asin(x)","acos(x)","atan(x)","acot(x)","asec(x)","acsc(x)"],Default="sin(x)"); |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | VARIABLES |
---|
| 34 | in In as Real(Brief="Input signal",PosX=0,PosY=0.5); |
---|
| 35 | out Out as Real(Brief="Output signal",Protected=true,PosX=1,PosY=0.5); |
---|
| 36 | |
---|
| 37 | EQUATIONS |
---|
| 38 | |
---|
| 39 | switch Select_a_function |
---|
| 40 | |
---|
| 41 | case "sin(x)": |
---|
| 42 | Out=sin(In*'rad'); |
---|
| 43 | |
---|
| 44 | case "cos(x)": |
---|
| 45 | Out=cos(In*'rad'); |
---|
| 46 | |
---|
| 47 | case "tan(x)": |
---|
| 48 | Out=sin(In*'rad')/cos(In*'rad'); |
---|
| 49 | |
---|
| 50 | case "cot(x)": |
---|
| 51 | Out=cos(In*'rad')/sin(In*'rad'); |
---|
| 52 | |
---|
| 53 | case "sec(x)": |
---|
| 54 | Out=1/cos(In*'rad'); |
---|
| 55 | |
---|
| 56 | case "csc(x)": |
---|
| 57 | Out=1/sin(In*'rad'); |
---|
| 58 | |
---|
| 59 | case "asin(x)": |
---|
| 60 | Out=asin(In); |
---|
| 61 | |
---|
| 62 | case "acos(x)": |
---|
| 63 | Out=acos(In); |
---|
| 64 | |
---|
| 65 | case "atan(x)": |
---|
| 66 | Out=atan(In); |
---|
| 67 | |
---|
| 68 | case "acot(x)": |
---|
| 69 | Out=1/atan(In); |
---|
| 70 | |
---|
| 71 | case "asec(x)": |
---|
| 72 | Out=1/acos(In); |
---|
| 73 | |
---|
| 74 | case "acsc(x)": |
---|
| 75 | Out=1/asin(In); |
---|
| 76 | |
---|
| 77 | end |
---|
| 78 | |
---|
| 79 | end |
---|