Определяем размеры, определяющие размещение светильников в помещении :
1) высота подвеса светильника
h = H – hc - hp,
где H = 3 м – высота помещения;
hc = 0 – свес;
hp = 1 – высота рабочей поверхности;
h = 2 (м);
2) расстояние между светильниками
3) расстояние от крайнего ряда светильников до стен при учёте, что рабочие поверхности горизонтальные и расположены у стен
l = (0.25..0.33) L = 0.25 * 2.8 = 0.7 (м).
Существует несколько методов расчёта искусственного освещения :
1) метод коэффициента использования светового потока (для расчёта общего равномерного освещения горизонтальной поверхности при светильниках любого типа);
2) точечный метод (для расчёта равномерного общего локализованного и местного освещения помещений при светильниках прямого света и наружного освещения);
3) метод «удельных мощностей» (при приближенных расчётах).
При принятом количестве светильников искомой величиной является необходимый световой поток одной лампы, определяемый по формуле (8.2):
(8.2)где Ен = 150 – нормируемая минимальная освещённость, определяется по табл. 2.1 ;
S = 16 м2 – площадь освещенного помещения;
N = 4 – число светильников;
n = 4 – число ламп в светильнике;
кз = 1.4 – коэффициент запаса (принимается в пределах 1.3..2.0 в зависимости от содержания пыли в производственных помещениях с учетом регулярной очистки светильников и вида источника света);
z = 1.2 – коэффициент неравномерности освещения (1.1..1.25);
h = 0.47- коэффициент использования светового потока (зависит от индексов помещения i и значения коэффициента отражения стен и потолка rс и rп), определяется по таблице 2.2;
Индекс помещения вычисляется по формуле:
где А и В – соответственно длина и ширина помещения, м;
h = 2 м – расчётная высота подвеса светильников.
Подставляя в формулу (8.1) имеющиеся значения, получаем:
(Лм)8.3 Вывод
Разработанное программное обеспечение должно эксплуатироваться на IBMPC/AT совместимых компьютерах в помещении, соответствующем санитарным нормам, а именно: площадью не менее 16 м2 и объёмом воздуха 15 м3. В производственном помещении в дневное время должно быть обеспечено достаточное естественное освещение, для чего необходимо расположить два окна размером 2х2 м2, а в темное время суток – искусственное освещение, в качестве источника света которого являются люминесцентные лампы (световой поток одной лампы составляет 536.2 Лм).
Заключение
В рамках дипломного проекта разработана концепция распределенной системы терминального управления робототехническим комплексом, оперирующем в зоне опасной для жизни человека. При разработке концепции использованы современные подходы к организации сбора и передачи информации. В частности рассмотрены основы использования CAN-интерфейса. Для определения коэффициентов терминального управления разработана функция вычисления коэффициентов на двух языках программирования (язык m-скриптов и на языке C++). Возможность применения синтезированного закона опробована на специально разработанной экспериментальной модели системы. Разработка модели и апробация проведены в среде инженерных расчетов Matlab. Конечным продуктом проекта является программное обеспечение пульта управления РСТУ, которое позволяет произвести вычисление коэффициентов терминального управления, построить управляющую функцию, произвести визуализацию результатов работы, создание и сохранение файла протокола, передачу расчетных данных на борт робота манипулятора по сетевому интерфейсу. При разработке учтены все требования технического задания.
Библиографический список
1. Дистанционно управляемые роботы и манипуляторы / ВС. Кулешов, Н.А Лакота, В.В. Андрюнин и др.; Под общ. Ред. Е.П. Попова. – М.Машиностроение, 1986. – 328 с. ил.
2. Батенко А.П. Системы терминального управления. – М.: Радио и связь, 1984. – 160 с., ил.
3. Медведев В.С., Лесков А.Г., Системы управления манипуляционных роботов/Под ред. Е.П. Попова. – М.: Наука, 1978 – 416 с.
4. Летов А.М. Динамика полета и управление. – М.: Наука, – 1969. – 359 с.
5. Красовский А.А. Аналитическое конструирование систем квазитерминального управления // Автоматика и телемеханика. – 1972. – №4. – С. 5-14.
6. Seal C.E., Stabberud A.R. On final value control // IEEE Trans. – 1969. – V.7 – №2. – P. 133-143.
7. Green W.G. Logarithmic navigation for precise guidance for space vehicles // IRE Trans. – 1961. – V. ANE-8 – №2 – P. 59-71.
8. Ястребов В.С., Филатов А.М. Системы управления движением робота. – М.: Машиностроение, 179. 176 с.
9. Батенко А.П. Управление конечным состоянием движущихся объектов. – М.: Сов. радио, 1977. – 256 с.
10. Батенко А.П. Конечное управление цепочкой интеграторов // Автоматика. – 1977. – №2. – С. 63-71.
11. http://www.kaskod.ru
12. http://www.mstu.edu.ru
13. Чиликин М.Г., Ключев В.И. Теория автоматизированного электропривода. – М.: Энергия, 1979. – 616 с.
14. Borland C++Builder. Программирование на С++ без проблем / Шамис В.А.. – М.: «Нолидж», 1997 – 266с., ил.
15. Программирование в среде С++Builder / Сурков К.А., Сурков Д.А., Вальвачев А.Н.. – Мн.: ООО «Попурри», 1998. – 576 с.:ил.
Приложение а
(Обязательное)
Исходные тексты основных функций
А.1 Исходный текст функции вычисления коэффициентов терминального управления на языке Matlab
% ФУНКЦИЯ РАСЧЕТА ТЕРМИНАЛЬНОГО УПРАВЛЕНИЯ
% ----------------------------------------
% ВХОДНЫЕ ПАРАМЕТРЫ:
% Xo - ВЕКТОР НАЧАЛЬНЫХ УСЛОВИЙ
% Xk - ВЕКТОР КОНЕЧНЫХ УСЛОВИЙ
% T - ВРЕМЯ ЗА КОТОРОЕ НЕОБХОДИМО ВЫПОЛНИТЬ ПЕРЕХОД
% dT - ВРЕМЯ ОПЕРЕЖЕНИЯ ФАЗОВОЙ ТОЧКИ
% ----------------------------------------
% ВЫХОДНЫЕ ПАРАМЕТРЫ:
% C - КОЭФФИЦИЕНТЫ ПАРАМЕТРОВ УПРАВЛЕНИЯ
% ----------------------------------------
function [C]=terminal_control(Xo,Xk,T,dT)
r=length(Xo); % КОЛИЧЕСТВО НАЧАЛЬНЫХ УСЛОВИЙ
n=length(Xk); % КОЛИЧЕСТВО КОНЕЧНЫХ УСЛОВИЙ
C=zeros(1,2*r+n);
%---------------------------------------------------------------% РАСЧЕТ ПАРАМЕТРОВ УПРАВЛЕНИЯ Сi
%---------------------------------------------------------------for i=0:r-1
C(i+1)=Xo(i+1)/factorial(i); % ПЕРВЫЕ r ПАРАМЕТРОВ Ci (i=0,1,...,r-1)
end
for i=r:r+n-1
summa_1=0;
summa_2=0;
for nu=0:i-1
summa_1=summa_1+factorial(r+n-nu-1)*C(nu+1)/factorial(r+n-i-1)/factorial(i-nu)/T^(i-nu);
end
for nu=0:r+n-i-1
summa_2=summa_2+((-1)^nu)*factorial(r+n-nu-1)*Xk(nu+1)/factorial(i)/factorial(r+n-i-nu-1)/factorial(nu)/T^(i-nu);
end
C(i+1)=summa_2-summa_1;
end
disp(['---------- ВЫХОДНАЯ ФУНКЦИЯ ----------'])
disp(['X(t)='])
for i=0:r+n-1
disp(['C' num2str(i) '*t^' num2str(i) '+'])
end
disp(['---------- НАЧАЛЬНЫЕ УСЛОВИЯ Xo ----------'])
for i=0:r-1
disp(['Xo(' num2str(i) ')=' num2str(Xo(i+1))])
end
disp(['---------- КОНЕЧНЫЕ УСЛОВИЯ Xk ----------'])
for i=0:n-1
disp(['Xk(' num2str(i) ')=' num2str(Xk(i+1))])
end
disp(['---------- ВРЕМЯ ----------'])
disp(['T=' num2str(T)])
disp(['---------- dT ----------'])
disp(['dT=' num2str(dT)])
disp(['---------- КОЭФФИЦИЕНТЫ Ci ----------'])
for i=0:r+n-1
disp(['C(' num2str(i) ')=' num2str(C(i+1))])
end
А.2 Исходный текст модуля вычисления коэффициентов терминального управления на языке С++
// Функции для вычисления параметров
// терминального управления v.1.0
#include <math.h>
//----------------------------------//
// ФУНКЦИЯ ВЫЧИСЛЕНИЯ ФАКТОРИАЛА N! //
//----------------------------------//
double Factorial(int n)
{
double result=1;
int i=1;
// Если аргумент функции отрицательный возвращаем -1
if (n<0) return -1;
// Расчет факториала
while (i<=n)
{
result*=i;
i++;
}
// Возвращаем результат
return result;
}
//-------------------------------------//
// ФУНКЦИЯ ВЫЧИСЛЕНИЯ ПАРАМЕТРОВ Сi //
//-------------------------------------//
// Входные параметры:
// Xo - массив начальных условий
// r - количество начальных условий
// Xk - массив конечных условий
// n - количество конечных условий
// Tk - конечное время
// Выходные параметры:
// Указатель на массив коэффициентов Ci
//-------------------------------------//
double *CoeffC(double Xo[], int r, double Xk[], int n, double Tk)
{
// Определяем массив коэффициентов
// Памать под массив необходимо очистить
// вызывающей функции delete[] Ci !!!
double *Ci = new double[r+n];
// Вычисляем первые r коэффициентов Ci
for (int i=0; i<=r-1; i++)
{
Ci[i]=(double)(Xo[i]/Factorial(i));
}
// Вычисляем оставшиеся n коэффициентов Ci
// См. Батенко А.П. "Синтез терминального управления" формула (4.16)
int v;
double sum_1, sum_2;
sum_1=sum_2=0.0;
for (int i=r; i<=r+n-1; i++)
{
for (v=0; v<=i-1; v++)
{
sum_1+=(double)(Factorial(r+n-v-1)/Factorial(r+n-i-1)/Factorial(i-v)/pow(Tk,i-v)*Ci[v]);
}
for (v=0; v<=r+n-i-1; v++)
{
sum_2+=(double)(pow(-1,v)*Factorial(r+n-v-1)/Factorial(i)/Factorial(r+n-i-v-1)/Factorial(v)/pow(Tk,i-v)*Xk[v]);
}
Ci[i]=-sum_1+sum_2;
sum_1=sum_2=0.0;
}
r=(int)sizeof(Ci)/sizeof(double);
return Ci;
}
//-------------------------------------//
А.2 Исходный текст функций программного обеспечения РСТУ
//--------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------void __fastcall TForm1::bbCloseClick(TObject *Sender)
{
Close();
}
//--------------------------------------------------------------
void __fastcall TForm1::bOkClick(TObject *Sender)
{
Series1->Clear();
ListBox1->Clear();
int i, k;
String S, s;
//------------------------------------------------------------
// Ввод исходных данных для расчета
//------------------------------------------------------------ int InitConditionNum=StrToInt(Edit1->Text); // Кол-во начальных условий
int FiniConditionNum=StrToInt(Edit3->Text); // - " - конечных условий
String InitCondition=Edit2->Text;
String FiniCondition=Edit4->Text;
double T=StrToFloat(Edit5->Text);
//------------------------------------------------------------
// Формирование массива начальных условий
//------------------------------------------------------------
S=Edit2->Text;
s="";
k=0;
double *xo;
xo=new double[InitConditionNum];
for (i=1; i<=S.Length(); i++)
{
if ((S[i]!=' ')&(S[i]!='[')&(S[i]!=']'))
{
s+=S[i];
}
else
{
if (!s.IsEmpty())
{
xo[k]=StrToFloat(s);