10. Симановский С. Направления интенсификации инновационного процесса. “Вопросы изобретательства” № 1-2, 1992 г.
11. Симановский С., К использованию научно-технического потенциала РФ и СНГ, “Российский экономический журнал”, № 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;
}