Octave ◦ http://www.gnu.org/software/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/ 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 + a 0 b 2 s 2 + b 1 s + b 0 We can define it in Matlab as num = [a 2, a 1, a 0 ]; den = [b 2, b 1, b 0 ]; sys = tf(num, den);
Unit step response step(sys) Unit impulse response impulse(sys) Arbitrary input response t = t start : t interval : t finish ; 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 2 nd order real term.
Click the Simulink icon in Matlab window Simulink library browserSimulink modeling window Matlab main window
Find, drag and drop following blocks to the window ◦ Simulink Continuous Transfer Function ◦ Sources Step ◦ Sinks Scope You will get Building Blocks Output Input Except sources and sinks, every block should have an input and an output.
Double click the Transfer function block. Change Numerator to , 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 Simulation Start or button
Change the spring constant and damping ratio, then you can have different response. [1 2 12][1 2 1] 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 Assume m=2kg c=3NSec/m k=3N/m f(t)=1(t)N