Рисунок 2. Пример построения вала.
Внимательно присмотревшись к структуре конического зацепления, легко увидеть, что эскизы вырезов, прилегающих к паре зубьев, которые будут находиться в зацеплении, размещены в разных плоскостях. В отличие от цилиндрической передачи, где оба эскиза лежали в одной торцевой плоскости и при их построении можно было легко привязаться к точке зацепления, в коническом редукторе сложно определить местоположение этой точки в пространстве, общее для обоих эскизов при их построении в разных плоскостях. Можно, конечно, начать решать задачу «в лоб» и попробовать рассчитать угловое смещение одной плоскости относительно другой, а также местоположение в них эскизов.
Плоскость эскиза выреза зуба колеса и плоскость эскиза профиля зуба шестерни, находящиеся в зацеплении, совпадают. То есть, вы построили, например, плоскость в модели колеса, касательную к торцевой поверхности и содержащую эскиз выреза между зубами. Так вот, в этой же плоскости, но уже в модели шестерни, следует разместить эскиз, но не выреза, а профиля зуба. Проще говоря, на коническом колесе зубчатый венец мы будем вырезать, а на шестерне - «приклеивать». При этом начинать следует опять-таки с того выреза в колесе и с того зуба шестерни, которые будут в зацеплении в сборке, а затем делать их копию по концентрической сетке.
Этот пример вдвойне интересен: помимо демонстрации того, насколько может упроститься сборка вследствие грамотного построения деталей, он показывает, как важно иногда использовать нетрадиционный подход к процессу создания трехмерных моделей. Воображение инженера подсказывает ему способы моделирования деталей, зачастую имитирующие различные методы обработки заготовок (нарезание, точение, штамповка, литье и др.). На самом деле, иногда полезно отойти от стереотипов и начать мыслить абстрактно, не по шаблону, видя перед собой лишь конечный результат - готовую модель, а не стандартные пути к ее созданию. В реальной жизни зубчатые колеса изготавливаются, как правило, литьем или штамповкой, а потом в них фрезой вырезается зубчатый венец. И при моделировании (как вручную, так и программно) мы волей-неволей повторяем (имитируем) те же операции. Пример с конической шестерней показал, как нетипичный подход к созданию модели до предела упростил сборку передачи, а сама модель при этом ничуть не пострадала.
Было бы несправедливо не упомянуть еще об одном типе механических передач, проектирование которых реализовано в подключаемой библиотеке «РЕДУКТОР-3D V2.1». Речь идет о червячных редукторах. Червячное зацепление - также задача не из простых, но после всего вышеизложенного создание сборки больше не представляется таким уж сложным делом.
Витки вала-червяка можно сформировать с помощью кинематического вырезания. В качестве траектории вырезания следует взять объект «спираль цилиндрическая» с параметрами, подобранными таким образом, чтобы угол подъема спирали был равен углу подъема витков червяка, а ее диаметр - делительному диаметру червяка. Суть программной сборки заключается в определении такого положения эскиза для кинематической операции, чтобы после вырезания витки червяка вошли точно между зубьями червячного колеса (считаем, что на вертикальной оси червячного колеса всегда будет находиться вырез между зубьями). В этом случае особенно изощряться не приходится - смещение эскиза несложно рассчитать аналитически. Расстояние, на которое нужно сместить эскиз, можно принимать как 2,5·P или 3,5·P, где P - шаг витков червяка, рассчитывается по формуле P = р·m, а m - модуль червячного зацепления. Желательно принимать значение с запасом (3,5·P), поскольку длина нарезной части червяка может быть разной.
В заключение хочу отметить, что возможности автоматизации на основе системы КОМПАС-3D практически безграничны. С помощью современных языков объектно-ориентированного программирования можно создавать гибкие функциональные приложения, способные обеспечить значительную экономию времени и сил на формирование трехмерных моделей и сборок. Подключаемые модули могут быть полезны при серийном производстве (с их помощью можно в считаные минуты получить готовые сборки любого из выпускаемых агрегатов, размеры которых будут занесены в базу данных), использоваться при проектировании новых механизмов (в расчетную часть библиотеки можно включать циклы оптимизации различных параметров с тем, чтобы программа сама находила оптимальный вариант построения), а также для любых других целей в отдельно взятых отраслях машиностроения. Расширение сферы использования конструкторских библиотек и их функциональности значительно упростит работу инженера-проектировщика, а появление все новых библиотек позволит абстрагироваться от рутинной работы и сосредоточиться исключительно на конструировании. Возможно, уже в недалеком будущем, благодаря обширному арсеналу конструкторских библиотек, работа по созданию громоздких трехмерных сборок превратится в увлекательную игру наподобие конструктора. Ведь большая часть рутинной и малоэффективной работы будет быстро выполняться посредством подключаемых модулей. На мой взгляд, КОМПАС-3D - одна из наиболее качественно выполненных графических систем в плане внедрения новых решений в сфере автоматизации и развития трехмерной графики в целом.
Для создания наиболее совершенных и экономичных механизмов и машин важно получить оптимальный вариант входящих в них редукторов (МЗП). Показатель, на основе которого оценивается принятое решение, является критерием оптимальности решаемой задачи, а функция, выражающая значение критерия через управляемые параметры, называется целевой функцией (функцией цели, функцией отклика).
В общем случае цель расчета (определение значения
критерия оптимальности) функционально можно представить [1] зависимостью:
-
компонентный вектор управляемых переменных
;
-
компонентный вектор неуправляемых (постоянных для данной задачи) переменных -
передаваемые нагрузки, например материалы и термообработка зубчатых колес,
условия работы МЗП и т.д.
В решаемой работе задаче управляемыми (искомыми) параметрами редуктора, однозначно определяющими его конструктивный вариант, приняты следующие:
передаточные
отношения
ступеней редуктора;
диаметры
начальных окружностей шестерен;
отношения
рабочей ширины зубчатого венца шестерни к ее
начальному диаметру;
числа
зубьев шестерен;
углы
наклона линии зуба шестерен;
коэффициенты
смещения исходного контура.
Все
величины (за исключением
и
), если в
дальнейшем это специально не оговорено, предполагаются положительными.
Считая
неуправляемые переменные постоянными для конкретной задачи, примем в качестве
целевой функции функцию
, которая каждому фиксированному значению набора
искомых параметров ставит в соответствие некоторое
определенное значение набора
технических
показателей МЗП. Для одноступенчатой передачи
и
показатели МЗП будут являться точками в гиперпараллелепипеде с координатными
осями
.
Для
двухступенчатой передачи характер целевой функции
выразится гиперповерхностями, описываемыми
уравнениями вида:
,
где
- величина, постоянная для каждой поверхности.
Множество
всех возможных вариантов обозначим
. Если
-допустимое решение, т.е. работоспособная передача,
то
. Множество допустимых зубчатых передач
будет определяться рядом равенств и неравенств.
При
заданной целевой функции
и ограничениях, определяющих множество допустимых
решений
для заданной схемы редуктора, найти такие значения
вектора
, для
которого целевая функция
принимает экстремальное (минимальное или
максимальное) значение на множестве
, т.е.:
Данная задача является задачей параметрической оптимизации, решение которой известными классическими методами затруднено, и поэтому требуется применение методов математического программирования.
В основе алгоритма лежит численное исследование
пространства управляемых параметров редуктора. Укрупненная схема алгоритма
приведена на рисунке 3. Процесс поиска оптимального решения выполняется за
четыре этапа.
Рисунок 3. Схема алгоритма оптимизации
1
этап - составление таблиц испытаний.
Выполняется последовательно, с помощью датчика случайных чисел с повышенной
равномерностью, построенного на основе ЛП-последовательности.
Выбираются
пробных точек
,
равномерно расположенных в области поиска, ограниченной параметрическими
ограничениями. При этом координаты каждой точки определяются по формуле:
,
,
,
где
- число параметров (³2);
-
случайное число в диапазоне [0,1 ];
- число
испытаний;
-
минимальные (максимальные) значения варьируемых параметров.
В
каждой из точек области поиска проверяются функциональные ограничения
, и в случае их выполнения вычисляются значения всех
критериев
. В случае невыполнения хотя бы одного из
функциональных ограничений критерию автоматически присваивается заведомо
большее число (например, 9999).
Далее
по каждому критерию составляется таблица испытаний (допустимых вариантов), в
которой значения
располагаются в порядке возрастания с указанием
номеров, соответствующих числу (
) пробных
точек (своих для каждого
).
2 этап - назначение критериальных ограничений. Этап выполняется проектировщиком на основе анализа таблиц испытаний. По каждому из критериев конструктор указывает номер точки, в которой критерий принимает экстремальное значение.
3 этап - формирование паретовского множества. Этап выполняется автоматически. Сначала определяются все точки, удовлетворяющие всем критериальным ограничениям. При этом возможна ситуация, что в силу назначения проектировщиком жестких критериальных ограничений такие точки не обнаружатся. В этом случае необходимо вернуться к этапу 2 и ослабить требования к редуктору, либо изменить исходные данные и решить задачу повторно.
4 этап - определение окончательного
варианта из паретовского множества проектных решений.
Подпрограмма пользователя представляет собой проблемно-ориентированный модуль следующего вида:
Program FUNC;, Imax, bmax, hmax: integer;, n11, n111, u, hrc, hb, kpd, Tl: real;,u2, psil, psi2, ml, m2, B, xl, x2, TII, TIII: real;, SigmaHLim2, NHE1, NHE2, omega1, omega11, omega111, NHlim1, NHlim2: real;, ZN2: real;, sigmaH2, sigmamin, sigmaHP, sigmaH, NFE1, NFE2, sigmaHk: real;,YN2, sigmaflim1, sigmaflim2, sigmaFP1, sigmaFP2:real;, aw, awz, m11, mz, zsum, dw2, Ft, d2, b2, Z1C, Z1K, zl, zsum1, z2, Cz1, Cz2, Czsum1: real;: integer;: array [1..20] of real;: array [1..18] of real;, CSigmaHLim2, CNHE1, CNHE2, Comega1, Comega11, Comega111, CNHIim1, CNHIim2: real;, CZN2: real;, CsigmaH2, Csigmamin, CsigmaHP, CsigmaH, CNFE1, CNFE2: real;, CYN2, Csigmaflim1, Csigmaflim2, CsigmaFP1, CsigmaFP2, V, Y1, Y2:real;, Caw, Cawz, Cm11, Cmz, Czsum, Cdw2, CFt, Cd2, Cb2, dm1, cb, re, ssinB, del, de2, dae1, dae2, dfe1, dfe2: real;, flagaw, flagaw1: integer;: array[1..100] of real;: array[1..100] of real;: text;, criterionnumber, opt1: integer;: char;, sigf1, sigf2: real;: string;: boolean;:=true;:=300;:=12.4;:=950;:=3504;:=45;:=302;:=0.913;:=0;:=0;(fl, 'e:\optim\optl\par.opt');(fl);i:=l to 7 do readln(fl,x[i]);(fl);:=x[l];:=x[2];:=x[3];:=x[4];:=x[5];c:=x[6];k:=x[7];:=l;:=0;:=(u/u2);((z1c<16) or (z1c>100)) then writeln('недопустимое количество зубьев цилиндрической шестерни');
if ((zlk<16) or (zlk>100)) then writeln('недопустимое количество зубьев конической шестерни');
TII:=TI*0.97*ul;:=TII*0.98*u2;
n11:=nl/ul;:=n11/u2;:=n1*3.14/30;:=n11*3.14/30;:=n111*3.14/30;=965;:=674;:=60*n1*t*0.578;:=60*n1*t*0.578;:=60990000;:=25810000;:=exp((l/6)*ln(NHlim1/nhe1));:=exp((l/6)*ln(NHlim2/nhe2));:=0.9*sigmaHlim1*ZN1*1.07/1.2;:=0.9*sigmaHlim2*ZN2* 1.038/1.1;:=0.5*(sigmaHl+sigmaH2);sigmaH1<sigmaH2 then sigmamin:=sigmaH1 else sigmamin:=sigmaH2;:=60*nl*t*0.503;:=60*n1*t*0.515;:=exp((l/6)*ln(4000000/NFE1));:=exp((l/6)*ln(4000000/NFE2));YN1<l then YN1:=l;YN2<l then YN2:=l;:=600;:=519.75;:=0.4*sigmafiim1;:=0.4*sigmaflim2;:=2*psi2/(u2+l);:=10*(u2+l)*exp(l/3*ln(TII/u2));('aw');:=430*2*(u2+l)*exp((l/3)*ln(TII* 1.07/(psiba*706.5389*706.53 9*u2*u2)));:=2*aw*0.9659/m2;:=round(zsum)+l;:=zlc;:=zsum1-zl; (z1+z2)<60 then writeln('не выполняется параметрическое ограничение для суммарного числа зубьев цилиндрической передачи');
dw2:=2*aw*z2/zsum;:=2*TII[/(dw2*0.001);:=2*aw-(z1*m1/0.975);:=psiBA*aw;:=376*sqrt(l.l*l.l*1.07*(z2/z1)*Ft/(b2*d2));sigmaH>sigmaHP then writeln ('значение sigmah>sigmaHP');:=965;:=674;:=60*nl*t*0.578;:=60*n1*t*0.578;:=6.099* 10000000;:=2.686* 10000000;:=exp((l /6)*ln(CNHIim1/Cnhe1));:=exp((l/6)*ln(CNHIim2/Cnhe2));:=CsigmaHlim1*CZN1/l.2;:=CsigmaHlim2*CZN2/l.09;:=0.5*(CsigmaH1+CsigmaH2);CsigmaH1<CsigmaH2 then Csigmamin:=CsigmaH1 else Csigmamin:=CsigmaH2;:=60*n1*t*0.503;:=60*n1*t*0.515;:=exp((l/6)*ln(4000000/CNFE1));:=exp((l/6)*ln(4000000/CNFE2));CYN1<1 then CYN1:=l;CYN2<1 then CYN2=l;:=600;:=528.5;:=Csigmafliml/1.7;:=Csigmaflim2/l.7;:=68*exp((l/3)*ln(TI*1.0863*(sqrt(u1*u1+1))*l000/(0.85*psi1*CsigmaHP*CsignaHP)));:=psi1*dm1;:=0.5*(dm1/sin(17.61));:=dm1*re/(re-0.5*cb);:=zlk;
cz2:=round(u1*cz1);
dae2:=m1*cz2+2*m1*cos(17.52);:=m1*cz1+2*m1*cos(72.48);:=(2*aw+0.5*dae2)*(dae1+30)*(dae1+30)/1000000;:=1500*sqrt((1.04* 1.08*TI)/(cz2*m2*1.5915));(sigmaFP1/stgmaFlim1)>(sigmaFP2/sigmaFlim2) then sigf1:=(sigmaFP1/sigmaFiim1) else sigf1:=(sigmaFP2/sigmaFlim2);(CsigmaFP1/CsigmaFlim1)>(CsigmaFP2/CsigmaFlim2) then sigf2:=(CsigmaFP1/CsigmaFlim1) else sigf2:=(CsigmaFP2/CsigmaFlim2);(sigmaFP1>sigmaFlim1) then writeln('1');(sigmaFP2>sigmaFlim2) then writeln('2');(CsigmaFP1>csigmaFlim1) then writeln('3');(CsigmaFP2>CsigmaFlim2) then writeln('4');(CsigmaHP<sigmaHK) then writeln('5');(sigmaHP<sigmaH) then writeln('6');:=abs((sigmaHP/sigmaH)-sigf1);:=abs((sigmaHP/sigmaHK)-sigf2);(sigmaFP1>sigmaFlim1) or (sigmaFP2>sigmaFlim2) or (CsigmaFP1>CsigmaFliml) or (CsigmaFP2>CsigmaFlim2) then begin('The functional limitation in the program FUNC has been violated');:=false;;(CsigmaHP<sigmaHK) or (sigmaHP<sigmaH) or ((dae2*0.5+25)>aw) then beginfunctional limitation in the program FUNC has been violated');:=false;;lim=true then begin
f[l]:=aw;[2}:=V;[3]:=abs((sigmaHP/sigmaH)-sigf1); {цилиндрическая}[4]:=abs((CsigmaHP/sigmaHK)-sigf2); {коническая}
fI5]:=abs(Yl-Y2);;begin[l]:=9999;[2]:=9999;[3]:=9999;[4]:=9999;[5]:=9999;;('value aw=(',f[1],')');(value V=(',f[2],')');('value 3=(',f[3],')');(value 4=(',f[4],')');(value 5=(',f[5],')');(f1, e:\optim\optl\FUN.OPT');(f1);(f1,f[1]);(f1,f[2]);(f1,f[3]);(f1,f[4]);(f1,fI5]);(f1);
end.