~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/eng/scicos/RATELIMITER.htm

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
2
 
 
3
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
 
4
original version by:  Nikos Drakos, CBLU, University of Leeds
 
5
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 
6
* with significant contributions from:
 
7
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 
8
<HTML>
 
9
<HEAD>
 
10
<TITLE>Rate limiter </TITLE>
 
11
<META NAME="description" CONTENT="Rate limiter ">
 
12
<META NAME="keywords" CONTENT="main">
 
13
<META NAME="resource-type" CONTENT="document">
 
14
<META NAME="distribution" CONTENT="global">
 
15
 
 
16
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
 
17
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
18
 
 
19
<LINK REL="STYLESHEET" HREF="main.css">
 
20
 
 
21
</HEAD>
 
22
 
 
23
<BODY bgcolor="#FFFFFF">
 
24
 
 
25
<!--Table of Child-Links-->
 
26
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
27
 
 
28
<UL>
 
29
<LI><A NAME="tex2html4687"
 
30
  HREF="RATELIMITER.htm#SECTION00577100000000000000">Library</A>
 
31
<LI><A NAME="tex2html4688"
 
32
  HREF="RATELIMITER.htm#SECTION00577200000000000000">Description</A>
 
33
<LI><A NAME="tex2html4689"
 
34
  HREF="RATELIMITER.htm#SECTION00577300000000000000">Dialog Box</A>
 
35
<LI><A NAME="tex2html4690"
 
36
  HREF="RATELIMITER.htm#SECTION00577400000000000000">Default properties</A>
 
37
<LI><A NAME="tex2html4691"
 
38
  HREF="RATELIMITER.htm#SECTION00577500000000000000">Interfacing function</A>
 
39
<LI><A NAME="tex2html4692"
 
40
  HREF="RATELIMITER.htm#SECTION00577600000000000000">Computational function (type 4)</A>
 
41
</UL>
 
42
<!--End of Table of Child-Links-->
 
43
<HR>
 
44
 
 
45
<H2><A NAME="SECTION00577000000000000000"></A><A NAME="RATELIMITER"></A>
 
46
<BR>
 
47
Rate limiter 
 
48
</H2>
 
49
<DIV ALIGN="CENTER">
 
50
<!-- MATH
 
51
 $\epsfig{file=RATELIMITER.eps,width=90.00pt}$
 
52
 -->
 
53
<IMG
 
54
 WIDTH="143" HEIGHT="108" ALIGN="BOTTOM" BORDER="0"
 
55
 SRC="img130.gif"
 
56
 ALT="\epsfig{file=RATELIMITER.eps,width=90.00pt}">
 
57
</DIV>
 
58
<H3><font color="blue"><A NAME="SECTION00577100000000000000">
 
59
Library</A>
 
60
</font></H3>
 
61
Others
 
62
 
 
63
<H3><font color="blue"><A NAME="SECTION00577200000000000000">
 
64
Description</A>
 
65
</font></H3>
 
66
 
 
67
<P>
 
68
 
 
69
<H3><font color="blue"><A NAME="SECTION00577300000000000000">
 
70
Dialog Box</A>
 
71
</font></H3>
 
72
<DIV ALIGN="CENTER">
 
73
<TABLE CELLPADDING=3 BORDER="1">
 
74
<TR><TD ALIGN="CENTER">Set rate limiter parameters</TD>
 
75
<TD></TD>
 
76
</TR>
 
77
 
 
78
<TR><TD ALIGN="CENTER">max slope</TD>
 
79
<TD ALIGN="CENTER">1</TD>
 
80
</TR>
 
81
<TR><TD ALIGN="CENTER">min slope</TD>
 
82
<TD ALIGN="CENTER">-1</TD>
 
83
</TR>
 
84
</TABLE>
 
85
</DIV>
 
86
 
 
87
<UL>
 
88
<LI>max slope: YYYY
 
89
</LI>
 
90
<LI>min slope: YYYY
 
91
</LI>
 
92
</UL>
 
93
 
 
94
<H3><font color="blue"><A NAME="SECTION00577400000000000000">
 
95
Default properties</A>
 
96
</font></H3>
 
97
 
 
98
<UL>
 
99
<LI>always active: no
 
100
</LI>
 
101
<LI>direct-feedthrough: yes
 
102
</LI>
 
103
<LI>zero-crossing: no
 
104
</LI>
 
105
<LI>mode: no
 
106
</LI>
 
107
<LI>number/sizes of inputs: 1 / 1
 
108
</LI>
 
109
<LI>number/sizes of outputs: 1 / 1
 
110
</LI>
 
111
<LI>number/sizes of activation inputs: 0 / 
 
112
</LI>
 
113
<LI>number/sizes of activation outputs: 0 / 
 
114
</LI>
 
115
<LI>continuous-time state: no
 
116
</LI>
 
117
<LI>discrete-time state: no
 
118
</LI>
 
119
<LI>name of computational function: <EM>ratelimiter</EM>
 
120
</LI>
 
121
</UL>
 
122
<H3><font color="blue"><A NAME="SECTION00577500000000000000">
 
123
Interfacing function</A>
 
124
</font></H3>
 
125
<TT>scilab/macros/scicos_blocks/misc/RATELIMITER.sci</TT>
 
126
 
 
127
<H3><font color="blue"><A NAME="SECTION00577600000000000000">
 
128
Computational function (type 4)</A>
 
129
</font></H3>
 
130
<BR>
 
131
<PRE>#include "scicos_block.h"
 
132
#include &lt;math.h&gt;
 
133
 
 
134
#if WIN32
 
135
#define NULL    0
 
136
#endif
 
137
 
 
138
void ratelimiter(scicos_block *block,int flag)
 
139
{/*  rpar[0]=rising rate limit, rpar[1]=falling rate limit */
 
140
  double* pw,rate,t;
 
141
  if (flag == 4){/* the workspace is used to store previous values */
 
142
    if ((*block-&gt;work=
 
143
         scicos_malloc(sizeof(double)*4))== NULL ) {
 
144
      set_block_error(-16);
 
145
      return;
 
146
    }
 
147
    pw=*block-&gt;work; 
 
148
    pw[0]=0.0;
 
149
    pw[1]=0.0;
 
150
    pw[2]=0.0;
 
151
    pw[3]=0.0;
 
152
  }else  if (flag == 5){
 
153
    scicos_free(*block-&gt;work);
 
154
  } else if (flag==1) {
 
155
    if (get_phase_simulation()==1) do_cold_restart();
 
156
    pw=*block-&gt;work; 
 
157
    t=get_scicos_time();
 
158
    if(t&gt;pw[2]){
 
159
      pw[0]=pw[2];
 
160
      pw[1]=pw[3];
 
161
      rate=(block-&gt;inptr[0][0]-pw[1])/(t-pw[0]);
 
162
    }
 
163
    else if(t&lt;=pw[2]){
 
164
      if(t&gt;pw[0]){
 
165
        rate=(block-&gt;inptr[0][0]-pw[1])/(t-pw[0]);
 
166
      }else{
 
167
        rate=0.0;
 
168
      }
 
169
    }
 
170
    if(rate&gt;block-&gt;rpar[0]){
 
171
      block-&gt;outptr[0][0]=(t-pw[0])*block-&gt;rpar[0]+pw[1];
 
172
    } else if(rate&lt;block-&gt;rpar[1]){
 
173
      block-&gt;outptr[0][0]=(t-pw[0])*block-&gt;rpar[1]+pw[1];
 
174
    }else{
 
175
      block-&gt;outptr[0][0]=block-&gt;inptr[0][0];
 
176
    }
 
177
    pw[2]=t;
 
178
    pw[3]=block-&gt;outptr[0][0];
 
179
  }
 
180
}
 
181
</PRE>
 
182
<BR><HR>
 
183
<ADDRESS>
 
184
Ramine Nikoukhah
 
185
2004-06-22
 
186
</ADDRESS>
 
187
</BODY>
 
188
</HTML>