|
- % === Problem 1: Simulation of the responce ===
-
- % Parameters
- m = 0.75;
- L = 1.25;
- c = 0.15;
- g = 9.81;
- A0 = 4;
- omega = 2;
-
- % Time span for 20s simulation
- tspan = [0 20];
- dt = 1e-4;
- t_eval = 0:dt:20;
-
- % ODE Function
- odefun = @(t, x) [
- x(2);
- (1/(m*L^2)) * (A0*sin(omega*t) - c*x(2) - m*g*L*x(1))
- ];
-
- x0 = [0; 0]; % Initial conditions
- [t, x] = ode45(odefun, t_eval, x0); % Solve
-
- % Plots for 20 sec
- figure('Name', 'System responce', 'Position', [100, 100, 1280, 860]);
- subplot(2,1,1);
- plot(t, x(:,1)); ylabel('q(t) [rad]'); grid on; title('Γωνία');
- subplot(2,1,2);
- plot(t, x(:,2), 'r'); ylabel('dq(t) [rad/s]'); xlabel('t [sec]'); grid on; title('Γωνιακή Ταχύτητα');
- saveas(gcf, 'output/Prob1_responce_20s.png');
-
- % === Sampling for Problem 2 ===
- Ts = 0.1; % Sampling period
- sample_data(t, x, Ts, A0, omega, 'output/problem1_data.csv');
-
- % --- Extended simulation to 90 sec ---
- tspan = [0 90];
- t_eval = 0:dt:90;
-
- x0 = [0; 0];
- [t, x] = ode45(odefun, t_eval, x0);
-
- % Plots for 90 sec
- figure('Name', 'System responce', 'Position', [100, 100, 1280, 860]);
- subplot(2,1,1);
- plot(t, x(:,1)); ylabel('q(t) [rad]'); grid on; title('Γωνία');
- subplot(2,1,2);
- plot(t, x(:,2), 'r'); ylabel('dq(t) [rad/s]'); xlabel('t [sec]'); grid on; title('Γωνιακή Ταχύτητα');
- saveas(gcf, 'output/Prob1_responce_90s.png');
|