import numpy as np from matplotlib import pyplot as plt def generate_sin_wave(frequency, amplitude, duration, phase_shift=0): """ Generate a sine wave with specified parameters. Parameters: frequency (float): Frequency of the sine wave in Hz amplitude (float): Amplitude of the sine wave duration (float): Duration of the sine wave in seconds (can be fractional) phase_shift (float): Phase shift in radians (default: 0) Returns: tuple: (time_array, sine_wave_array) """ # Generate time array with fractional seconds support sample_rate = 44100 # Standard audio sample rate num_samples = int(duration * sample_rate) t = np.linspace(0, duration, num_samples) # Generate sine wave with phase shift y = amplitude * np.sin(2 * np.pi * frequency * t + phase_shift) return t, y t, v = generate_sin_wave(60, 325, 0.045, 0) t2, i = generate_sin_wave(60, 0.125, 0.045, 45) w = np.multiply(v,i) V = np.divide(230, np.sqrt(2)) I = np.divide(0.125, np.sqrt(2)) P = np.multiply(np.multiply(V,I), np.cos(np.deg2rad(45))) q = np.multiply(np.multiply(V,I), np.sin(np.deg2rad(45))) s = np.sqrt(np.square(P) + np.square(q)) S = [] for _ in range(len(t)): S.append(s) Q = [] for _ in range(len(t)): Q.append(q) # plot a graph with i, v and w over t plt.plot(np.multiply(t, 1000), v, label='voltage in V') plt.plot(np.multiply(t2, 1000), np.multiply(i, 1000), label='current in mA') plt.plot(np.multiply(t, 1000), w, label='Leistung in W') # plt.plot(np.multiply(t, 1000), P, label='Wirkleistung in W') plt.plot(np.multiply(t, 1000), Q, label='Blindleistung in W') # plt.plot(np.multiply(t, 1000), S, label='Scheinleistung in W') plt.legend() plt.grid() plt.xlabel('time in ms') plt.ylabel('value') #save plot as svg # plt.savefig('prak5/glühbirne_verlauf.svg', format='svg') plt.savefig('prak5/leuchtröhre_verlauf.svg', format='svg') plt.show() 0x7ffbfe8 0x7ffbff4