By Dr. Hong Zhang
Octave
◦
◦
◦
◦
◦
http://www.gnu.org/software/octave/
Very Similar commands
Can run most M-files
No built-in Simulink package
Pure command line
Scilab
◦ http://www.scilab
.org/
◦ Some commands
are different
◦ Built-in Xcos to
clone Simulink
◦ Some Graphic
interface
Given a transfer function
a 2 s 2 + a 1 s + a0
b 2 s2 + b 1 s + b 0
We can define it in Matlab as
num = [a2, a1, a0];
den = [b2, b1, b0];
sys = tf(num, den);
Unit step response
step(sys)
Unit impulse response
impulse(sys)
Arbitrary input response
t = tstart: tinterval : tfinish;
u = f(t); % u is a function of t, e.g. ramp is u=t;
lsim(sys, u, t)
Just bring the output to a variable. E.g.
y1 = step(sys);
y2 = impule(sys);
y3 = lsim(sys, u, t);
Then we can use the variable. E.g.
plot(t,y1, t, y2)
plot(t, u, t, y3)
[r, p, k] = residue(num, den);
Where
r: root
p: pole
k: constant
If there are complex terms, we
can add the two conjugate ones
together to get a 2nd order real
term.
Click the Simulink
icon in Matlab
window
Matlab main window
Simulink modeling window
Simulink library browser
Find, drag and drop following blocks to
the window
◦ Simulink Continuous Transfer Function
◦ Sources Step
◦ Sinks Scope
You will get
Input
Building Blocks
Output
Except sources and
sinks, every block
should have an input
and an output.
Double click the Transfer function block.
Change Numerator to [1], denominator to
[1 3 2]
Link the blocks by drag the output to input
Double click Scope to show Scope window
Click Ctrl+T or SimulationStart or button
Change the spring constant and damping
ratio, then you can have different response.
[1 2 1]
[1 2 12]
Hint: Hit the binocular to auto-scale the plot.
Replace the source with a Sine wave with
frequency =3
Hint: Double click the block name to
change it.
Hint:
◦ Hold Ctrl and click to tap an output line
◦ Right click a block and select Format to flip or rotate a block
Rewrite
as
Ý cxÝ kx f (t)
mxÝ
Ý
xÝ
Assume
m=2kg
c=3NSec/m
k=3N/m
f(t)=1(t)N
1
m
[ f (t) cxÝ kx]