Example #1
0
def plot_generated():
    s = 0
    cpm_points, cpm_data = r_cpm(s)
    angles_deg_errors = [0 for i in range(4)]
    vertical_error = 0
    horizontal_error = 0

    angles = [0, 38, 67, 180]
    signals, profile = generate_profile_signals(
        SAMPLES_IN_ROUND,
        angles=angles,
        cpm_points=cpm_points,
        vertical_error=vertical_error,
        horizontal_error=horizontal_error,
        angles_deg_errors=angles_deg_errors)

    signals = np.array(average(signals, SAMPLES_IN_ROUND))
    profile = remove_radius(profile)

    signals = [s * -1 for s in signals]
    angles = [0, 38, 67, 180]

    ozono = ozono_f_coeff(signals, angles[0:3])
    hybrid = hybrid_f_coeff(signals, angles=angles[0:3])
    jansen2 = jansen_roundness_f_coeff(signals, angles)

    filtered_ozono = filter_fft(ozono, include_ecc=False)
    filtered_hybrid = filter_fft(hybrid, include_ecc=False)
    filtered_jansen2 = filter_fft(jansen2, include_ecc=False)

    o = get_roundness_profile(filtered_ozono)
    h = get_roundness_profile(filtered_hybrid)
    ar2 = get_roundness_profile(filtered_jansen2)

    offset = 0.40
    r_max = 0.3
    step = 0.1

    f = 1
    offset = 0.40
    # polar_plot(profile, None, offset * f, True, None, f * r_max, f * 0.1, f, False)
    polar_plot(o, "Ozono", offset, False, None, r_max=r_max, step=step)
    polar_plot(h,
               "4 probe hybrid",
               offset,
               False,
               None,
               r_max=r_max,
               step=step)
    polar_plot(ar2, "4 probe LS", offset, False, None, r_max=r_max, step=step)
    plt.legend()
    plt.show()
Example #2
0
def cpm_generated():
    s = 0.1
    cpm_points, cpm_data = r_cpm(s)
    gen_cpm = [[i[0] for i in cpm_points], [i[1] for i in cpm_points]]
    plot_cpms([gen_cpm], ["Center point movement"])
    plt.show()
    return
    # cpm_points = circle_cpm(104.20)

    signals, profile = generate_profile_signals(SAMPLES_IN_ROUND,
                                                cpm_points=cpm_points)
    signals = np.array(average(signals))

    advanced = advanced_roundness_f_coeff(signals, [0, 38, 67])
    advanced2 = advanced_roundness_f_coeff(signals, [0, 38, 67, 180])
    ozono = ozono_f_coeff(signals, [0, 38, 67])
    hybrid = hybrid_f_coeff(signals, angles=[0, 38, 67])

    filtered_advanced = filter_fft(advanced)
    filtered_advanced2 = filter_fft(advanced2)
    filtered_ozono = filter_fft(ozono)
    filtered_hybrid = filter_fft(hybrid)

    s = [signals[0], signals[2]]
    angles = [0, 67]

    ozono_cpm = get_cpm(s, angles, filtered_ozono)
    hybrid_cpm = get_cpm(s, angles, filtered_hybrid)
    ar_cpm = get_cpm(s, angles, filtered_advanced)
    ar2_cpm = get_cpm(s, angles, filtered_advanced2)
    plot_cpms([gen_cpm, ozono_cpm, hybrid_cpm, ar_cpm, ar2_cpm], [
        "Generated", "Ozono", "Jansen (3 probes)", "Jansen (4 probes)",
        "Hybrid"
    ])

    plt.show()
Example #3
0
def plot_incorrectangles():
    s = 0
    cpm_points, cpm_data = r_cpm(s)
    angles_deg_errors = [0 for i in range(4)]
    vertical_error = 0
    horizontal_error = 0

    signals, profile = generate_profile_signals(
        SAMPLES_IN_ROUND,
        cpm_points=cpm_points,
        vertical_error=vertical_error,
        horizontal_error=horizontal_error,
        angles_deg_errors=angles_deg_errors)

    signals = np.array(average(signals))
    profile = remove_radius(profile)

    signals = [s * -1 for s in signals]

    # advanced = advanced_roundness_f_coeff(signals, [0, 38, 67])
    # advanced1 = advanced_roundness_f_coeff(signals, [0, 37.06875, 65.88984375, 179.41640625])
    advanced1 = advanced_roundness_f_coeff(
        signals, [0, 37.06875, 65.88984375, 179.41640625])
    advanced2 = advanced_roundness_f_coeff(signals, [0, 38, 67, 180])

    filtered_advanced1 = filter_fft(advanced1, include_ecc=False)
    filtered_advanced2 = filter_fft(advanced2, include_ecc=False)

    h = get_roundness_profile(filtered_advanced1)
    h2 = get_roundness_profile(filtered_advanced2)

    offset = 0.45
    polar_plot(profile, "Actual profile", offset)
    polar_plot(h2, "Angles with errors", offset)
    polar_plot(h, "Determined angles", offset)
    plt.show()
Example #4
0
def montecarlo_single(n=0):
    print(n)

    if not os.path.exists("res/"):
        os.makedirs("res/")

    errors = False

    if errors:
        mu = 10 * 0.1
        sigma = 10 * 0.03

        s = nr(mu, sigma)
        cpm_points, cpm_data = r_cpm(s)
        angles_deg_errors = [nr(0, 0.25) for i in range(4)]
        vertical_error = nr(0, 0.35)
        horizontal_error = nr(0, 0.25)

    else:
        mu = 0
        sigma = 0
        cpm_points, cpm_data = r_cpm(0)
        angles_deg_errors = [0 for i in range(4)]
        vertical_error = 0
        horizontal_error = 0

    signals, profile = generate_profile_signals(
        SAMPLES_IN_ROUND,
        cpm_points=cpm_points,
        vertical_error=vertical_error,
        horizontal_error=horizontal_error,
        angles_deg_errors=angles_deg_errors)

    # add probe scaling error

    signals = np.array(average(signals))

    advanced = advanced_roundness_f_coeff(signals, [0, 38, 67])
    advanced2 = advanced_roundness_f_coeff(signals, [0, 38, 67, 180])
    ozono = ozono_f_coeff(signals, [0, 38, 67])
    hybrid = hybrid_f_coeff(signals, angles=[0, 38, 67])

    filtered_ozono = filter_fft(ozono, include_ecc=True)
    filtered_hybrid = filter_fft(hybrid, include_ecc=True)
    filtered_advanced = filter_fft(advanced, include_ecc=True)
    filtered_advanced2 = filter_fft(advanced2, include_ecc=True)

    errors = {
        "SAMPLES_IN_ROUND": SAMPLES_IN_ROUND,
        "cpm_data": cpm_data,
        "vertical_error": vertical_error,
        "horizontal_error": horizontal_error,
        "angles_deg_errors": angles_deg_errors
    }

    res = {
        "ozono": list(filtered_ozono[0:FILTERLEVEL]),
        "hybrid": list(filtered_hybrid[0:FILTERLEVEL]),
        "advanced": list(filtered_advanced[0:FILTERLEVEL]),
        "advanced2": list(filtered_advanced2[0:FILTERLEVEL])
    }
    d = {"res": res, "errors": errors}
    if True:

        with open(
                "res/res-mu{}-sigma{}-{}.pickle".format(
                    mu, sigma, uuid.uuid4()), "wb") as f:
            f.write(pickle.dumps(d))
Example #5
0
def plot_generated():

    # cpm_points = r_cpm(1.00)
    # cpm_points = circle_cpm(1.20)
    errors = False

    if errors:
        s = nr(0.1, 0.03)
        cpm_points, cpm_data = r_cpm(s)
        angles_deg_errors = [nr(0, 0.5) for i in range(4)]
        vertical_error = nr(0, 0.35)
        horizontal_error = nr(0, 0.25)
    else:
        s = 0
        cpm_points, cpm_data = r_cpm(s)
        angles_deg_errors = [0 for i in range(4)]
        vertical_error = 0
        horizontal_error = 0

    signals, profile = generate_profile_signals(
        SAMPLES_IN_ROUND,
        cpm_points=cpm_points,
        vertical_error=vertical_error,
        horizontal_error=horizontal_error,
        angles_deg_errors=angles_deg_errors)

    # probe scale error
    if errors:
        signals = [[i + nr(0, 0.003) for i in signal] for signal in signals]

    signals = np.array(average(signals))
    profile = remove_radius(profile)

    signals = [s * -1 for s in signals]

    advanced = advanced_roundness_f_coeff(signals, [0, 38, 67])
    advanced2 = advanced_roundness_f_coeff(signals, [0, 38, 67, 180])
    ozono = ozono_f_coeff(signals, [0, 38, 67])
    hybrid = hybrid_f_coeff(signals, angles=[0, 38, 67])

    filtered_ozono = filter_fft(ozono, include_ecc=False)
    filtered_hybrid = filter_fft(hybrid, include_ecc=False)

    filtered_advanced = filter_fft(advanced, include_ecc=False)
    filtered_advanced2 = filter_fft(advanced2, include_ecc=False)

    # print(ecc)
    # print(np.abs(ecc))
    # print(np.angle(ecc))

    barchart(filtered_ozono)
    plt.show()
    # barchart(advanced)
    # plt.show()

    ar = get_roundness_profile(filtered_advanced)
    ar2 = get_roundness_profile(filtered_advanced2)
    o = get_roundness_profile(filtered_ozono)
    h = get_roundness_profile(filtered_hybrid)

    offset = 0.30
    polar_plot(profile, "Actual profile", offset, True)
    # polar_plot(profile, "Actual profile", offset)
    polar_plot(o, "Ozono", offset)
    polar_plot(h, "Hybrid four point", offset)
    polar_plot(ar, "Advanced roundness (3 probes)", offset)
    polar_plot(ar2, "Advanced roundness (4 probes)", offset)
    plt.show()
Example #6
0
def plots_generated():
    # signals = np.array(average(SIGNALS))

    X = []
    e_ar = []
    e_ar2 = []
    e_ozono = []
    e_hybrid = []
    diam = 100

    l = 0
    h = 10
    for ecc in np.linspace(l, h, 11):

        signals, profile = generate_profile_signals(ecc=(ecc / 100) * diam)
        signals = np.array(average(signals))

        advanced = advanced_roundness_f_coeff(signals, [0, 38, 67])
        advanced2 = advanced_roundness_f_coeff(signals, [0, 38, 67, 180])
        ozono = ozono_f_coeff(signals, [0, 38, 67])
        hybrid = hybrid_f_coeff(signals, angles=[0, 38, 67])

        filtered_ozono = filter_fft(ozono)
        filtered_hybrid = filter_fft(hybrid)

        ar = get_roundness_profile(advanced)
        ar2 = get_roundness_profile(advanced2)
        o = get_roundness_profile(filtered_ozono)
        h = get_roundness_profile(filtered_hybrid)

        X.append(ecc / diam)

        # e_ar.append(RRMSE(profile, ar))
        # e_ar2.append(RRMSE(profile, ar2))
        # e_ozono.append(RRMSE(profile, o))
        # e_hybrid.append(RRMSE(profile, h))

        e_ar.append(RPPE(profile, ar))
        e_ar2.append(RPPE(profile, ar2))
        e_ozono.append(RPPE(profile, o))
        e_hybrid.append(RPPE(profile, h))

        polar_plot(profile,
                   "Actual profile",
                   True,
                   title="Roundness profile e={}% of d".format(ecc))
        polar_plot(o,
                   "Ozono",
                   False,
                   title="Roundness profile e={}% of d".format(ecc))
        polar_plot(h,
                   "Hybrid four point",
                   False,
                   title="Roundness profile e={}% of d".format(ecc))
        polar_plot(ar,
                   "Advanced roundness (3 probes)",
                   False,
                   title="Roundness profile e={}% of d".format(ecc))
        polar_plot(ar2,
                   "Advanced roundness (4 probes)",
                   False,
                   title="Roundness profile e={}% of d".format(ecc))
        plt.show()
        # plt.savefig("profile_{}.png".format(ecc))
        # plt.clf()

    # plt.plot(X, e_ar, label="ar")
    plt.plot(X, e_ar2, label="ar2")
    plt.plot(X, e_ozono, label="ozono")
    plt.plot(X, e_hybrid, label="hybrid")

    plt.legend()

    plt.show()