VDV-1418 (729267), страница 10
Текст из файла (страница 10)
Литература
-
Фу К., Гонсалес Р., Ли К. Робототехника: Пер. с англ. – М.: Мир, 1989.
-
Робототехника и гибкие автоматизированные производства. В 9-ти кн. Кн. 5. Моделирование робототехнических систем и гибких автоматизированных производств: Учеб. пособие для втузов/С. В. Пантюшин, В. М. Назаретов, О.А. Тягунов и др.; Под ред. И.М. Макарова. – М.: Высш. шк., 1986.
-
Лурье А.И. Аналитическая механика. – М.: Физматгиз, 1961.
-
Феодосьев В.И. Сопротивление материалов: Изд. 8-е – у М.: Наука, 1970.
-
Лойцинский Л.Г., Лурье А.И. Курс теоретической механики: В 2-х т. Т.II: Динамика. Изд. 6-е перераб. и доп. – М.: Наука, 1983. – 640 с.
-
Анго Андре. Математика для электро и радиоинженеров. Пер. с франц.: Под общ. ред. К.С. Шифрина. – М.: Наука, 1985. – 780 с.
-
Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся втузов: Изд. 13-е испр. – М.: Наука, 1986. – 544 с.
-
Справочник по промышленной робототехнике: В 2-х кн. Кн. 1/Под ред. Ш. Нофа; Пер. с англ. Д. Ф. Миронова и др. – Машиностроение, 1989.
-
Рынок научной продукции, рынок научного труда. Материалы семинара, общество “Знание”. 1990 г.
-
Симановский С. Направления интенсификации инновационного процесса. “Вопросы изобретательства” № 1-2, 1992 г.
-
Симановский С., К использованию научно-технического потенциала РФ и СНГ, “Российский экономический журнал”, № 4, 1992 г.
ПРИЛОЖЕНИЕ
В приложении приведены программы для расчета параметров динамической модели портального манипулятора.
// File Mrl.сpp
// Программа для расчета времени переходного процесса и оптимальной
// скорости позиционирования
#include
#include
#include
#include
int Transient(double&,
double,
double,
double,
double,
double );
int OptimalSpeed(double&,
double,
double,
double,
double );
char * s_title = "\n Расчет времени переходного процесса и оптимальной "
"скорости позиционирования\n Разработал Д.В. Грачев 1999"
" E-Mail denis@mail.saratov.ru";
char * s_v0 = "\n\n Иcходные данные для расчетов:\n\n Скорость"
" позиционирования рабочего органа, мм/c - # ";
char * s_d = " Требуемая точность позиционирования рабочего органа, мм - # ";
char * s_b = " Коэффициент демпфирования кинематической"
" схемы манипулятора, кг/c - # ";
char * s_c = " Жесткость кинематической схемы манипулятора, Н/м - # ";
char * s_m = " Масса подвижной части манипулятора, кг - # ";
char * s_inp = "%lf";
char * s_out = "%g\n";
char * s_outp = "\n Результаты расчетов: \n\n Длительность переходного"
" процесса при заданной скорости %g м/c\n составит - %g с."
"\n Оптимальная скорость позиционирования - %g мм/c\n";
char * fn = "resultat.txt";
char * s_badparam = "\n Недопустимый параметр - %c";
void inpparam(char** p)
{
if (*p[1] != 'f'){
printf (s_badparam, *p[1]);
exit(0);
}
strcpy(fn, p[2]);
}
int main(int as, char** av)
{
double t, v0, opv0, b, c, d, m;
printf (s_title);
if (as > 1) inpparam(av);
*strstr(s_v0,"#") = 0;
*strstr(s_d,"#") = 0;
*strstr(s_b,"#") = 0;
*strstr(s_c,"#") = 0;
*strstr(s_m,"#") = 0;
printf (s_v0);
scanf (s_inp, &v0);
v0 /= 1000;
printf (s_d);
scanf (s_inp, &d);
d /= 1000;
printf (s_b);
scanf (s_inp, &b);
printf (s_c);
scanf (s_inp, &c);
printf (s_m);
scanf (s_inp, &m);
Transient(t, v0, d, b, c, m);
OptimalSpeed(opv0, d, b, c, m);
opv0 *= 1000;
printf (s_outp, v0, t, opv0);
FILE * f_res = fopen(fn, "a+");
v0 *= 1000;
fprintf (f_res,strcat(s_v0,s_out), v0);
d *= 1000;
fprintf (f_res,strcat(s_d,s_out), d);
fprintf (f_res,strcat(s_b,s_out), b);
fprintf (f_res,strcat(s_c,s_out), c);
fprintf (f_res,strcat(s_m,s_out), m);
fprintf (f_res,s_outp, v0, t, opv0);
return 0;
}
// File speed.cpp
// Вычисление оптимального значения скорости в момент позиционирования
// по исходным данным
#include
int OptimalSpeed(double& V0, // Начальная скорость
double Delta, // Требуемое значение точности позиционирования
double betta, // Коэффициент демпфирования
double C, // Жесткость
double m) // Масса
{
double mc2 = 2*m/C;
V0 = Delta * (1/mc2) * sqrt( fabs( pow(betta/C,2
) - 2 * mc2 ) );
return 0;
}
// File transient.cpp
// Вычисление времени перходного процесса
// по исходным данным
#include
int Transient(double& t, // Время переходного процесса
double V0, // Начальная скорость
double Delta, // Требуемое значение точности позиционирования
double betta, // Коэффициент демпфирования
double C, // Жесткость
double m) // Масса
{
double mc2 = 2*m/C;
t = (log(V0)-log(Delta)-log( sqrt( fabs(pow(betta/C,2)-2*mc2
)
)/mc2 )
)*2*m/betta;
return 0;
}















