clc; clear all; k = 1.8; lower = 1.74; % нижня межа інтервалу upper = 2.26; % верхня межа інтервалу n = 350; % кількість вимірювань tau = 0.1; % константа часу samples = rand(1, n) * (upper - lower) + lower; istyne_value = mean(samples); %histogram (samples); ideal = samples * k; dt = 0.01; % інтервал спостереження t = 0:dt:(n-1)*dt; % часова шкала % розрахунок вихідного сигналу з врахуванням динамічних характеристик ланки першого порядку y = zeros(1, n); for i = 2:n y(i) = y(i-1) + (k * dt * (samples(i-1) - y(i-1))) / (tau + dt +1); end % розрахунок вихідного сигналу з врахуванням динамічних характеристик ланки другого порядку y_2 = zeros(1, n); for i = 2:n y_2(i) = y_2(i-1) + (k * dt * (samples(i-1) - y_2(i-1))) / ((tau^2) * (dt^2) + tau + dt + 1); end % додавання шумів електронних схем (випадкова величина) noise = randn(1, n) * 0.01; y_noise = y + noise; noise = randn(1, n) * 0.01; y_2_noise = y_2 + noise; % візуалізація результатів figure; plot(t, ideal, 'y'); hold on; plot(t, samples, 'b'); hold on; plot(t, y_noise, 'r'); hold on; plot(t, y_2_noise, 'g'); hold off; xlabel('Час (с)'); ylabel('Вихідний сигнал'); legend('Ідеальна мат.модель', 'Вихідний сигнал з шумами','Ланка першого роду','Ланка другого роду'); experemental_k_ideal = ideal/samples experemental_k_1 = y_noise/samples experemental_k_2 = y_2_noise/samples