Разделы презентаций


Использование R для контроля обработки резьбы

Содержание

О себеДиаконт Руководитель группы разработки управляющих программ на КИМУниверситет ИТМОСтудент 2 курса магистратуры «Системы и технологии цифрового производства»Mitutoyo RUSРегиональный представитель, специалист по применениюInternational Students and Scholars Rock

Слайды и текст этой презентации

Слайд 1Использование R для контроля обработки резьбы
Завьялов В.С.
Zavyalov_v@diakont.com

Использование R для контроля обработки резьбыЗавьялов В.С.Zavyalov_v@diakont.com

Слайд 2О себе
Диаконт
Руководитель группы разработки управляющих программ на КИМ
Университет ИТМО
Студент

2 курса магистратуры «Системы и технологии цифрового производства»
Mitutoyo RUS
Региональный представитель,

специалист по применению

International Students and Scholars Rock

О себеДиаконт Руководитель группы разработки управляющих программ на КИМУниверситет ИТМОСтудент 2 курса магистратуры «Системы и технологии цифрового

Слайд 3Электромеханический привод
Электромеханический привод – это электромеханическая система, состоящая из электродвигателя,

преобразовательного, передаточного и управляющего устройства, предназначенная для приведения в движение

рабочего органа машины и управления этим движением

Ролико-винтовая передача – это передача винт-гайка в которой в качестве промежуточных тел качения используются резьбовые ролики

Электромеханический приводЭлектромеханический привод – это электромеханическая система, состоящая из электродвигателя, преобразовательного, передаточного и управляющего устройства, предназначенная для

Слайд 4Контуромер Mitutoyo SV-C4500
Проблемы:
Обработка полученных в результате сканирования контура точек занимает

больше времени чем само сканирование
Подготовка программы для измерения занимает неоправданно

большое время

Колонтитул

Контуромер Mitutoyo SV-C4500Проблемы:Обработка полученных в результате сканирования контура точек занимает больше времени чем само сканированиеПодготовка программы для

Слайд 5Колонтитул
Сканирование контура

КолонтитулСканирование контура

Слайд 6Оценка контура
Чтение файла с координатами точек
Определение обозначения детали, чтение номинальных

данных
Черновой разворот системы координат
Определение витков резьбы
Расчет вписанных окружностей для каждой

впадины резьбы
Чистовой разворот системы координат
Расчет параметров диаметра резьбы
Расчет параметров шага резьбы
Расчет параметров профиля резьбы
Оценка годности детали
Сохранение результатов
Вывод протокола

Оценка контураЧтение файла с координатами точекОпределение обозначения детали, чтение номинальных данныхЧерновой разворот системы координатОпределение витков резьбыРасчет вписанных

Слайд 7Почему R?
Я его знаю (спасибо Stepik, Anatoliy Karpov, Антон Антонов)
Красивые

графики (спасибо ggplot2)
Быстро считает

Почему R?Я его знаю (спасибо Stepik, Anatoliy Karpov, Антон Антонов)Красивые графики (спасибо ggplot2)Быстро считает

Слайд 8Подготовка к работе программы
В папке F:/user/25202.00003 есть следующие подпапки:
F:/user/25202.00003/resources
F:/user/25202.00003/nominals –

папка с номинальными данными деталей (csv таблицы)
F:/user/25202.00003/DAT – папка с

результатами сканирования с контуромера
F:/user/25202.00003/csv – папка для сохранения результатов расчета
F:/user/25202.00003/profile – папка с номинальными профилями резьбы
Установлены библиотеки:
library(ggplot2)
library(readxl)
library(RcppRoll)
library(dplyr)
library(files)
library(DT)
library(readODS)
library(readr)


Подготовка к работе программыВ папке F:/user/25202.00003 есть следующие подпапки:F:/user/25202.00003/resourcesF:/user/25202.00003/nominals – папка с номинальными данными деталей (csv таблицы)F:/user/25202.00003/DAT

Слайд 9data_point1

file.name

= file.name,
data.nominal = data.nominal,
n_filtra = 10, unit = "мм",
side = "down", delta = 0.25)
data_point2 <- f_contur(dir.dat = folder$folder[folder$name == "DAT"],
file.name = file.name,
data.nominal = data.nominal,
n_filtra = 10, unit = "мм",
side = "up",
delta = 0.25)
data.point <- f_file(data_point1 = data_point1, data_point2 = data_point2) #объединяем контуры в один датафрейм
data.vitok <- f_center(data.point, data.nominal) #вписываем шарики #вписываем окружности
data.point <- f_rotate(data.point = data.point, data.vitok = data.vitok) #доворачиваем систему координат
data.vitok <- f_center(data.point, data.nominal) #вписываем шарики
data.point <- f_ychastok(data.point, data.nominal, data.vitok) #разбивает на участки
data.vitok <- f_pich(data.vitok, data.nominal) # считаем шаги
data.vitok <- f_dia(data.vitok, data.nominal, data.point) #считаем диаметры
data.vitok <- f_se(data.vitok, data.nominal) #считаем SE
data.vitok <- f_angle(data.point, data.vitok) #считаем угол профиля
data.point <- f_profil_point(data_point = data.point,
data_vitok = data.vitok,
data_tolerans = data.tolerans,
data.nominal = data.nominal) #считаем отклонение профиля

Колонтитул

Обработка контура

data_point1

Слайд 10Файл с точками профиля
мм
17998
-3.272568887976988, -50.373387183678517

-3.262568887976988, -50.371796071005406
-3.252568887976988, -50.370204958332252

-3.242568887976988, -50.368613845659134
-3.232568887976988, -50.367263595670885
-3.222568887976988, -50.366342585652440
-3.212568887976988, -50.365841796801298
-3.202568887976988, -50.365672556592884

npoint1 <- read.table(file = paste(dir.dat, "/", file.name, ".DAT", sep = ""), skip = 0, stringsAsFactors = F, sep = '*')
v_point1 <- which(npoint1 == lang$text[1]) #номера строк в файле с которых начинаются контуры
v_npoints <- npoint1[(v_point1+1),] #количество точек для каждого контура
if (side == "down"){
data_point1 <- read.table(file = paste(dir.dat, "/", file.name,".DAT", sep = ""),
skip = 2,
nrows = as.numeric(v_npoints[1]),
stringsAsFactors = F,
sep = ',') #чтение нижнего контура
} else {
data_point1 <- read.table(file = paste(dir.dat, "/", file.name, ".DAT", sep = ""),
skip = (as.numeric(v_point1[2]+1)),
nrows = as.numeric(v_npoints[2]),
stringsAsFactors = F,
sep = ',')
}
if (data_point1$V1[1] > data_point1$V1[nrow(data_point1)]){
data_point1 <- data_point1[(nrow(data_point1):1),]
rownames(data_point1) <- 1:nrow(data_point1)}#если контур снят в направлении -X разворачиваем его
data_point1$nomer <- 1:nrow(data_point1) #столбик с номерами точек
if (side == "down"){
data_point1$contur <- "X1"
} else {
data_point1$contur <- "X2"
}
colnames(data_point1) <- c('x','y', 'nomer', 'contur')

Файл с точками профилямм17998   -3.272568887976988,  -50.373387183678517   -3.262568887976988,  -50.371796071005406   -3.252568887976988,

Слайд 11Колонтитул
Определение неполных витков
for (i in min(data_point1$n_vitka):max(data_point1$n_vitka)){
#print(i)

#i

координата y для левой и правой половины отличается более чем на delta = 0.025
data.temp <- data_point1[data_point1$n_vitka == i,]
h1 <- abs(max(data.temp$y[data.temp$x <= mean(data.temp$x)]) - min(data.temp$y[data.temp$x <= mean(data.temp$x)]))
h2 <- abs(max(data.temp$y[data.temp$x >= mean(data.temp$x)]) - min(data.temp$y[data.temp$x >= mean(data.temp$x)]))
usl1 <- min(h1, h2) >= data.nominal$h_vitka[1]*0.6
#usl2 <- (h1 >= data.nominal$h_vitka[1]*0.8)&(h1 >= data.nominal$h_vitka[1]*0.8)
usl2 <- abs(h1 - h2) <= 0.015
#print(abs(q1 - q2))
data_point1$full[data_point1$n_vitka == i] <- usl1&usl2
}
КолонтитулОпределение неполных витков for (i in min(data_point1$n_vitka):max(data_point1$n_vitka)){  #print(i)  #i

Слайд 12 error_center_max

x0

+ d_sharika) #исходные координаты
error1 <- sqrt(min((x0 - data_temp1$x)^2 + (y0 - data_temp1$y)^2)) - d_sharika
error2 <- sqrt(min((x0 - data_temp2$x)^2 + (y0 - data_temp2$y)^2)) - d_sharika #ошибка для первой итерации
while (max(abs(error1), abs(error2)) > error_center_max){
#print(c(error1, i ,"X1"))
error1 <- sqrt(min((x0 - data_temp1$x)^2 + (y0 - data_temp1$y)^2)) - d_sharika
error2 <- sqrt(min((x0 - data_temp2$x)^2 + (y0 - data_temp2$y)^2)) - d_sharika #ошибка для последующих итераций
if (abs(error1) > abs(error2)){
x0 <- x0 - error1*sin(pi/4)
y0 <- y0 - error1*sin(pi/4) #смещаем исходный центр с учетом ошибки угол можно заменить на номинальный
} else{
x0 <- x0 + error2*sin(pi/4)
y0 <- y0 - error2*sin(pi/4)
}
data.vitok$x_X1[data.vitok$n_vitka == i] <- x0
data.vitok$y_X1[data.vitok$n_vitka == i] <- y0
}

Колонтитул

Вписывание окружностей в профиль резьбы

error_center_max

Слайд 13Колонтитул
Разделение резьбы на участки
A1
O1
O2
A2
V
Границы
участков

КолонтитулРазделение резьбы  на участкиA1O1O2A2VГраницыучастков

Слайд 14Параметры шага
Шаг резьбы – разница координаты X соседних витков

Параметры шагаШаг резьбы – разница координаты X соседних витков

Слайд 15Еp – действительное значение погрешности перемещения в пределах длины измерения
Vup

– действительное значение диапазона погрешностей перемещения в пределах длины измерения
f_ISO3408

<- function(data.vitok){
model <- lm(formula = CSPX1~n_vitka, data = data.vitok)
data.vitok$Vua_x1 <- max(model$residuals) - min(model$residuals)
data.vitok$Ea_x1 <- model$coefficients[2]*max(data.vitok$n_vitka[data.vitok$full]) - model$coefficients[2]*min(data.vitok$n_vitka[data.vitok$full])
model <- lm(formula = CSPX2~n_vitka, data = data.vitok)
data.vitok$Vua_x2 <- max(model$residuals) - min(model$residuals)
data.vitok$Ea_x2 <- model$coefficients[2]*max(data.vitok$n_vitka[data.vitok$full]) - model$coefficients[2]*min(data.vitok$n_vitka[data.vitok$full])
return(data.vitok)
}

Колонтитул

Накопленная погрешность шага

Еp – действительное значение погрешности перемещения в пределах длины измеренияVup – действительное значение диапазона погрешностей перемещения в

Слайд 16Параметры среднего диаметра

Параметры среднего диаметра

Слайд 17Для каждой точки фактического контура нахожу две ближайшие точки номинального

контура и допусков, считаю расстояние от номинала до фактической и

проверяю выходит за допуск или нет.

Колонтитул

Расчет профиля

Для каждой точки фактического контура нахожу две ближайшие точки номинального контура и допусков, считаю расстояние от номинала

Слайд 18Параметры профиля резьбы
Отклонение профиля для вершины
Отклонение профиля для образующей
Отклонение профиля

для впадины

Параметры профиля резьбыОтклонение профиля для вершиныОтклонение профиля для образующейОтклонение профиля для впадины

Слайд 19Сводный протокол на партию деталей
База данных технологических параметров
Shiny приложение
International Students

and Scholars Rock
Текущие задачи

Сводный протокол на партию деталейБаза данных технологических параметровShiny приложениеInternational Students and Scholars RockТекущие задачи

Слайд 20Завьялов В.С., Мальцева Н.К. Измерение параметров внутренней резьбы детали "Гайка"

роликовинтовой передачи электромеханического привода // Известия высших учебных заведений. Приборостроение

- 2019. - Т. 62. - № 8. - С. 749-757

Колонтитул

Завьялов В.С., Мальцева Н.К. Измерение параметров внутренней резьбы детали

Слайд 21Спасибо за внимание!
www.ifmo.ru

Спасибо за внимание! www.ifmo.ru

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика