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]