Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы и их программная реализация в задачах моделирования, оптимизации и управления гальваническими процессами. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
882 Кб
Скачать

стояний наблюдается рост плотности тока в центральной части катода (рисунок 4.2в).

Контрольные вопросы

1.Поясните причины неравномерности распределения толщины покрытия, приводящие к необходимости рассмотрения гальванического процесса как объекта с распределенными координатами.

2.Каким базовым уравнением математической физики опи-

сывается распределение потенциала в объеме электролита

вгальванической ванне? Поясните суть граничных условий.

3.Приведите численные методы решения дифференциальных уравнений в частных производных. Каковы их преимущества и недостатки?

4.Поясните принцип расчета плотности тока на поверхности катода сложной геометрической конфигурации.

5.Поясните сущность методов численного интегрирования для расчета критерия неравномерности осаждаемого покрытия.

6.Составьте блок-схему алгоритма моделирования распределения потенциала в объеме электролита для расчета критерия неравномерности распределения толщины покрытия на поверхности детали для последующей программной реализации.

67

5.П ОИС К ОПТ ИМАЛ ЬНОГ О У П РАВЛ Е НИЯ

ГАЛ ЬВАНИЧЕ С К ИМ П РОЦЕ С С ОМ НАНЕ С Е НИЯ П ОК РЫ Т ИЯ

Важнейшей переменной состояния процесса является плотность тока ik катода, которая определяет качество δ и скорость

осаждения T. Существует минимальная плотность тока ikmin для

каждого гальванического процесса, ниже которого покрытие не осаждается. При малых плотностях тока получается крупнокристаллическая структура и возможно наличие областей с непо-

крытой поверхностью. Высокая плотность тока ikmax на катоде

позволяет получить однородный мелкозернистый осадок. Если применяются высокие плотности тока (выше расчетной плотности тока) к гальваническому покрытию, то процесс интенсифицируется. Однако увеличение плотности тока возможно только в определенных пределах:

ikmin ik ikmax .

(5.1)

Регулирования плотности тока в гальванических ваннах состоит в изменении подводимого к ним напряжения постоянного тока. Это осуществляется путем автоматического регулирования с помощью регуляторов, которые реагируют на отклонение от заданной плотности тока и воздействуют на первичное напряжение.

Напряжение питания гальванической ванны определяется согласно:

U(τ)= (1+β) E

 

 

 

+ (1+α)

 

 

k (τ) э

 

 

 

a

E

k

i

,

(5.2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

χэ

 

 

где β – коэффициент,

учитывающий потери

напряжения

в контактах (зависит от

типа

электрохимического

процесса

и вида детали); α – коэффициент, учитывающий увеличение падения напряжения за счет газонаполнения (зависит от количества газов, выделяющихся при электролизе, колеблется от 0.01 до 0.2); Еа, Еk – потенциалы анода и катода при данных плотно-

68

стях тока; χэ – удельная электропроводность электролита;– расстояние между анодом и катодом.

Среднее значение теоретической толщины покрытия, согласно закона Фарадея, рассчитывается исходя из:

 

 

* (τ)=

Э

ηk (ik (0),C(0)) ik (0) τ ,

(5.3)

 

δ

 

 

 

ρ

 

 

где Э – электрохимический эквивалент металла

покрытия;

ρ – плотность металла покрытия; τ – длительность процесса электролиза; ik – средняя катодная плотность тока; ηk – катодный выход

по току; С –концентрация основных компонентов электролита.

В реальности же изменение во времени выхода по току, обусловленное изменением концентрации компонентов электролита в процессе электрохимической реакции и вызванным уносом компонентов электролита при извлечении,детали будет оказывать негативное влияние на среднее значение толщины покрытия:

 

 

 

(τ)=

Э

ηk (ik (τ),C(τ)) ik (τ) τ ,

(5.4)

 

δ

то есть:

ρ

 

 

 

 

(τ).

 

 

 

* (τ)>

 

(5.5)

 

δ

δ

Гальванический процесс является двухпериодным. В течение j-го малого периода производится осаждение покрытия; временной интервал работы на одном электролите до его замены называется большим периодом. Формулировка задачи оптимального управления в данном случае будет звучать:

Найти функцию изменения напряжения питания ванны U* (τ), при которой значение критерия отклонения теоретиче-

ской от реальной толщины покрытия для всех N обрабатываемых изделий будет минимальным:

N

Tj

 

Ψ = ∑∫

 

* (τ)-

 

(τ)

 

min ,

(5.6)

 

 

 

δ

δ

j=1

0

 

 

 

 

 

 

 

с учетом ограничения (5.1).

Для отыскания функции изменения напряжения питания ванны воспользуемся прямым методом Ритца. Идея классического метода

69

Ритца заключается в том, что значения функционала (5.6) рассматриваются не на произвольных допустимых кривых (5.2) данной вариационной задачи, а только на всевозможных линейных комбинациях с постояннымикоэффициентами и известных видах функции.

С целью учета ограничения (5.1) функцию изменения катодной плотности токам следует сконструировать следующим образом:

 

ikmin , если ikmin > ik*

 

 

 

i* (τ)=

i

(τ), если imin

i

*

imax .

(5.7)

k

k

 

k

 

k

k

 

 

max

max

 

*

 

 

 

ik

 

, если ik

< ik

 

 

 

 

 

 

 

 

 

 

Как только в момент времени τ перестает выполняться условие (5.1), дальнейшее управление принимается равным ikmin

или ikmax , в зависимости от того, какое ограничение нарушено.

Тогда изменение катодной плотности тока будем отыскивать в классе кусочно-линейных функций вида:

i10 + i11 τ,τ [0,T1]...

ik (τ)= i0j + i1j τ,τ [Tj-1,Tj ] , (5.8)

...

iN0 + iN1 τ,τ [TN-1,TN ]

где i10 – начальный коэффициент для первого покрываемого изделия, определяющийся согласно закону Ома:

i10 =

 

I

 

,

(5.9)

1.05

 

 

Sk

 

где 1.05 – коэффициент, учитывающий потери электричества на поверхность контактов; ij0 - начальный коэффициент для j-го

покрываемого изделия, определяемый как:

ij

= ij1

+ij1

T

j1

, j = 1, …, N

(5.10)

0

0

1

 

 

 

где Tj-1 – длительность нанесения покрытия для (j-1)-го изделия; i11 , …, i1j , …, i1N – неизвестные коэффициенты.

70

i1,j v

Поиск неизвестных коэффициентов i11 , …, i1j , …, i1N в (5.8) возможно реализовать с использованием метода «пристрелки». Его применение состоит в следующем. Пусть – начальное

приближение к i1j* . Построим итерационный процесс для нахождения последующих приближений i1,j v помощью формулы Ньютона:

j

j

 

Ψ(ij

)

 

 

 

1,v-1

 

,

(5.11)

i1,v

= i1,v-1

Ψ(i1,j v-1 )/i1,j v-1

где v = 0, 1, 2, … – количество итераций.

Частная производная в (5.11) для критерия оптимальности

по неизвестной переменной i1j может быть вычислена согласно разностному аналогу:

 

 

Ψ(i1,vj

-1 )

=

Ψ(i1,vj

-1 + ∆i1,j v-1 )Ψ(i1,vj

-1 )

,

(5.12)

 

 

ij

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

1,v-1

 

 

1,v-1

 

 

 

где

i1,j v-1 – произвольное малое возмущение для i1j .

 

 

Затем по формуле (5.11) находим следующее приближение

i1,j v

коэффициента i1j* и т.д. Итерационный процесс продолжа-

ется до тех пор, пока два последовательных приближения зна-

чения критерия (5.6) для i1,j v-1 и i1,j v не станут

различаться

меньше, чем на заданное малое число ε:

 

 

Ψ(i1,j v-1 )Ψ(i1,j v )

 

< ε.

(5.13)

 

 

Аналогичная процедура повторяется для всех N слагаемых критерия (5.6).

Рассмотрим в качестве примера решение задачи оптимального управления гальваническим процессом меднения в цианистом электролите.

Система уравнений математической модели будет иметь

вид:

71

dC(τ)= −

Эρэ

 

k (τ)[η η

 

(

 

 

(τ),C(τ))]

 

i

 

 

 

k

i

k

 

 

 

 

j

a

 

 

 

 

 

 

 

 

 

 

 

 

,

 

MSkμ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ηk (

 

k (τ),C(τ))= 0.55 0.00086i

 

k (τ)+0.001134C(τ)

 

i

 

 

с системой начальных условий:

 

 

 

 

 

 

 

 

 

 

 

C(0)= C0 [0,T1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C(T )= C(τ) 1

yySkρэ

 

= T

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

M

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yySkρэ

 

 

 

 

 

 

C(Tj )= C(τ)

1

 

 

 

M

 

 

 

= Tj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C(T )= C(τ) 1

yySk

ρэ

= T

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

M

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.14)

(5.15)

где ηа – анодный выход по току; C – концентрация цианида меди; уу – удельный унос электролита на единице поверхности

деталей; M – масса электролита; µ – молярная масса меди; Skj – площадь поверхности j-го катода.

Для реализации поиска оптимального управления данным процессом на языке программирования С объявляем требуемые переменные и инициализируем их исходными данными:

double i0,i00;//Начальный коэффициент плотности тока

(А/м^2)

double i1,x;//Неизвестный коэффициент для плотности тока (A/(c*м^2))

double c1,c2,c0=60;//Начальное значение концентрации (г/л) double I=100;//Сила тока (A)

double Sk=0.35;//Площадь катода (м^2)

double E=0.000000329167; //Электрохимический эквивалент

(г/(А*с))

double ro=8920;//Плотность металла (кг/м^3)

72

double M=1000;//Масса электролита (кг)

double mu=63.546; молярная масса компонента (г/моль) double na=0.9;//Анодный выход по току

double Tmin;//Оптимальная длительность процесса (с) double thzad=3;//Заданная толщина покрытия (мкм) double yy=0.0002;//Удельный унос электролита (м^3/м^2) double r=1175;//Плотность электролита (кг/м^3) double s=0;//Значение функционала (5.7) (мкм)

int n=10;//Количество изделий (шт)

double df;//Значение частной производной (5.12) (мкм/А*c*м^2)

double h=0.00001;//Величина приращения неизвестного коэффициента (A/(c*м^2))

double eps1=0.00001;//Точность расчёта слагаемого функционала (мкм)

double eps2=0.00001;//Точность расчета функционала (мкм) //структура, содержащая оптимальные значения

коэффициентов для плотности тока struct iopt

{

double i0; double i1;

double s;//значение функционала (5.6)

}

struct iopt icopt[100];

Создадим функции, задающие зависимости изменения концентрации электролита, выхода по току, плотности тока и расчета толщины покрытия:

double C1(double tau){//возвращает текущее значение концентрации компонента электролита

return c1;}

double C2(double tau){ //возвращает текущее значение концентрации компонента электролита

return c2;}

double ic(double tau, double I0, double I1){//возвращает текущее значение плотности тока

double icalc=i0+i1*tau;

73

//проверка ограничений из системы (5.7) if(icalc<imin) return imin;

else

if(icalc>imax) return imax; else return icalc;

}

double nk(double x, double y){//возвращает текущее значение выхода по току

return 0.55-0.00086*x+0.001134*y;

}

double C1_t(double tau, double I0, double I1){//возвращает изменение концентрации компонента электролита

return -E*ro*ic(tau,I0,I1)/(M*Sk*mu)*(na- nk(ic(tau,I0,I1),C1(tau)));

}

double C2_t(double tau, double I0, double I1){//возвращает изменение концентрации компонента электролита

return -E*ro*ic(tau,I0,I1)/(M*Sk*mu)*(na- nk(ic(tau,I0,I1),C2(tau)));

}

double thickness(double x, double y, double z){//возвращает значение толщины покрытия

return E/ro*x*y*z;

}

Функция поиска длительности процесса T без учета изменения плотности тока, концентрации компонентов электролита и выхода по току имеет вид:

double SearchT(double I0, double I1)//поиск длительности процесса

{

double T1=0, T2=0;//начальные значения толщины без и с учетом изменения концентрации

double t=0, dt=60;//начальное значение длительности процесса и величина ее приращения

c1=c0;//начальное значение концентрации do{//цикл по росту толщины покрытия

74

T1+=E/ro*nk(I0,c0)*I0*dt;//рост толщины покрытия без учета изменения концентрации

T2+=E/ro*nk(ic(I0,I1),c1)*ic(I0,I1)*dt; //рост толщины покрытия с учетом изменения концентрации

c1+=dt*C1_t(t,I0,I1);//изменение значения концентрации t+=dt;//приращение длительности процесса

}while(T1*1000000<thzad);//проверка толщины покрытия в мкм

return t;//возврат полученного значения длительности процесса

}

Функция для расчета j-го слагаемого функционала (5.6) имеет вид:

double Calculate(double I0, double I1, int i)//функция для расчета слагаемого функционала (5.7)

{

double t=Tmin*i;//начальное значение длительности double dt=60;//величина приращения длительности

double T=0,T1=0,T2=0,S=0;//начальные значения величин толщины покрытия с управлением, идеальной и без управления, а также значения слагаемого функционала

do{//цикл по оптимальной длительности процесса

T+=thickness(nk(ic(t,I0,I1),C1(t)),ic(t,I0,I1),dt);//толщина покрытия с управлением

T1+=E/ro*nk(i00,c0)*i00*dt;//идеальная толщина покрытия T2+=E/ro*nk(i00,c2)*i00*dt;//толщина покрытия без

управления

S+=fabs(T1-T);//значение слагаемого функционала c1+=t*C1_t(t,I0,I1);//изменение концентрации компонента с

управлением

c2+=t*C2_t(t,I0,0); //изменение концентрации компонента без управления

t+=dt;//приращение длительности }while(t<Tmin*(i+1));//пока не достигнем оптимальной

длительности процесса

S*=1000000;//перевод значения функционала в мкм return S;//возвращение найденного значения

75

}

Фрагмент кода, реализующий решение задачи оптимального управления методом пристрелки, имеет вид:

i0=I/(1.05*Sk);//начальное значение коэффициента i0 i00=i0;//сохранение начального значения как эталонного i1=0;//начальное значение коэффициента i1 Tmin=SearchT(i0,i1);//поиск оптимальной длительности

процесса

c1=c2=c0;//начальные значения концентраций //реализация метода пристрелки

x=i1;

do{//цикл по значению функционала s=0;

for(int i=0;i<n;i++)//цикл по количеству изделий

{

for(j=1;eps1<Calculate(i0,x,i);j++)//цикл по поиску значения коэффициента i1

{

df=(Calculate(i0,x+h,i)-Calculate(i0,x,i))/h;//вычисление разностного аналога (5.12)

x=x-Calculate(i0,x,i)/df;//расчет по формуле Ньютона (5.11)

}

icopt[i].i0=i0;//сохраняем оптимальное значение коэффициента i0

icopt[i].i1=x;//сохраняем оптимальное значение коэффициента i1

icopt[i].s=Calculate(icopt[i].i0,icopt[i].i1,i);//значение слагаемого в функционале (5.7)

s+= icopt[i].s;//суммарное значение величины функционала (5.7) x=0;//новое значение коэффициента i1 i0=ic(Tmin*(i+1),icopt[i].i0,x);//новое значение

коэффициента i0 c1=c1*(1-yy*Sk*r/M);//извлечения изделия c2=c2*(1-yy*Sk*r/M);//извлечение изделия

}

h=h/2;//деление шага по i1

76

}while(s>eps2);//пока значение функционала (5.7) больше заданной точности

На рисунке 5.1 приводятся результаты решения задачи оптимального управления для партии изделий из 10 штук.

а)

б)

77

в)

г)

Рис. 5.1. Результаты решения задачи оптимального управления: а) изменение концентрации меди в электролите;

б) изменение катодного выхода по току; в) функция оптимального изменения плотности тока;

г) изменение толщины гальванического покрытия

78

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]