Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Using piecewise-constant functions in ode Simulink
Replies: 1   Last Post: Feb 23, 2013 11:58 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Peter Mairhofer

Posts: 36
Registered: 8/18/10
Using piecewise-constant functions in ode Simulink
Posted: Feb 23, 2013 9:37 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Hi,

I want to integrate the multiplication of a cosine with a
piecewise-constant function (e.g. 1 from 0 to 1/1000, -1 from 1/1000 to
2/1000, ...)

The time axis is equally distributed among the time (i.e., transient
change every 1/1000) and the values are stored in an array in MATLAB.

I'm struggling arround for 2 days on this issue :( So help is greatly
appreciated!!


What I did was (among other tries): Create a pulse block with rising
edge every 1/1000 which triggers a "Triggered Subsystem". This calls a
MATLAB function which uses find_system/set_param to change the value of
a constant block. This constant is then multiplied by the cosine and
followed by an integrator.

However, this seems to work for some signal but for some it introduces
huge errors.

For example

p = 1 for [0,1/1000], -1 for [1/1000,2/1000] and 1 for [2/1000,3/1000]
x = cos(100*pi*t);

y = (p*x)-> 1/s block

y at t=3/1000 should be 8.00487e-4 if I solve analytically but Simulink
has 8.29766161000261e-4 :( :(

Thanks a lot!
Peter



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.