понедельник, 29 декабря 2025 г.

Усекновение хвостов: финал

 Все хвосты по работам, которые должны были быть выполнены в течение семестра, присылать до конца новогодних каникул на электронную почту. После этого, в связи с началом экзаменационной сессии, сводка по результатам будет переслана доц. А.Ю.  Верисокину, который примает экзамен по предмету. Дальнейшее - уже у него на экзамене. Viel Spaß!

пятница, 19 декабря 2025 г.

Усекновние хвостов - 1

 Нового материала не рассмтривается, занятие посвящено возможности отчитаться по невыполненным работам, как минимум в соотвествии с контрольной работой.

пятница, 12 декабря 2025 г.

Расчет доверительного интервала параметров и предсказательного интервала для нелинейной регрессии

 На одном из предыдущих занятий было рассмотрено получение параметров нединейной функции, фитующей экпериментальнеы данные в смысле наименьших квадратов. Однако, использованное там примение функции k = lsqcurvefit(demodel,k0,SOC1dn(ind),Vd1(ind)); возвращало только сами значения параметров k, в то время как более статистически-убедительное их представление должно сопровождаться доверительным интервалов при заданном уровне достоверности. Помимо этого, имеет смысл также указывать и интервал, в который могут попасть предсказания использованной модели, принимая во внимание данные доверительные интервалы параметров. 

пятница, 5 декабря 2025 г.

Основы статистической характеризации данных и моделей

 В физической реальности не бывает "точных" данных, поэтому работа с любыми результатами измерений сопровождается оценкой их неопредленности, для вспоминания основных положений и стандартов см. материалы второго вводного занятия. Аналогично, при использовании моделей явлений необходимо оценивать их адекватность количественно. В презентации ниже привеен обзор самых основных подходов к этим двум задачам с использованием MATLAB или GNU Octave (в данном случае до запуска кода нужно подключить статистический пакет: pkg load statistics).



Задание: опираясь на приведенную методику, для выбранной батареи провести обработку исходных данных и аппроксимируеющих их моделей (линейных и нелинейных, сравнить полученные аппроксимации по обсужденным в презентации критериям). 

пятница, 28 ноября 2025 г.

Оцифровка графических данных и их обработка

 В опубликованных научных работах данные зачастую представлены в виде графиков, а не таблиц с числами. Но для верификации численных моделей возникает необходимость сравнить расчеты с экпериментом, базируясь на этих данных. Поэтому их надо оцифровывать. Удобным и эффективным средством для этого является онлайн-программа WebPlotDigitizer. Ниже представлена презентация, пошагово объясняющая принципы работы с ней.



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

вторник, 25 ноября 2025 г.

Объявление

 В пятницы 28.11.2025 и 05.12.2025 пар в очном формате не будет. Поясняющие презентации и задания для выполнения дна их основе будут размещены здесь на сайте перед временем начала занятий. Выполненные задания принимаются по электронной почте.

пятница, 14 ноября 2025 г.

Нелинейная регрессия: продолжение

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

Внимнию персонажей, полагающих, что они все изучают самостоятлеьно, а не на парах: на следующей паре (21 ноября) таковым будет выдана контрольная работа по характеристикам изученных Li-ion батарей, выяаленных по данным тестовых измерений и их обработки.

пятница, 7 ноября 2025 г.

Нелинейная регрессия

 Помимо моделей, образованных линейной комбинацией функций, рассмотренных ранее, кривые зарядки-разрядки могут аппроксимироваться также более сложными выражениями, которые приближают экспериментальные данные в смысле метода наименьших квадратов. Одна из функций, реализующих такой подход - lsqcurvefit. Рассмотрим ее применение на примере двойной экспоенциальной модели (double exponential fit) - первой из перечня в статье.

пятница, 31 октября 2025 г.

Аппроксимация линейной комбинацией функций: продолжение

 Касательно пар 24.10.2025 и 31.10.25: задание - по аналогии с предыдущим занятием провести аппроксимацию данных теми наборами функциями, которые не были разобраны на нем (за исключением многочленов Чебышева). 

Тем, кто предпочитает делать это самостоятельно, а не посещать пары, - пламенный привет.

пятница, 17 октября 2025 г.

Аппроксимация линейной комбинацией функций

 Рассмотрим масштабированную кривую зависимости напряжения батареи от уровня заряда, полученную на предыдущем занятии. Для процесса разрядки соотеветствующие значения хранятся в переменных Vd1 (напряжение от 3 В до 4.2 В) и SOC1dn (уровни заряда от 0 до 1, соотвестственно). Для удобства и экономии времени расчета эти переменные можно сохранить на диск в файл, с именем, например, V_SoC.mat (из панели переменных вручную или командой save). 

Соотвественно, для решения задачи иетерполяции удобно создать новый m-файл, загрузив в его начале нужные данные как

load V_SoC

Набор типичных комбинаций функций, используемый для представления зависимости V(SoC) можно найти в статье или выборке из нее, приведенной на 8 слайде презентации вводного занятия.

Для начала рассмотрим два варианта: (1) полиномиальную интерполяцию и (2) интерполяцию моделью Нернста. 

пятница, 10 октября 2025 г.

Интерполяция и экстраполяция сплайнами

 Предварительно выбраны напряжения при разрядке Vd и зарядке Vc батареи и рассчитаны методом подсчёта протекшего заряда (интегрирование тока по отношению к номинальной емкости) соответствующие им уровни заряда SoSd и SoCc. Соответствующие графики:



Видно, что эти противоположные процессы проявляют гистерезис, и, кроме того, если начинать с экспериментального значения заряженной батареи, то оно ниже, чем получилось в конце процесса зарядки. Поэтому имеет смысл провести нормировку кривых таким образом, чтобы получить стандартизированные для Li-ion батарей (см. например, обзор по ссылке) границы полного заряда 4.2 В и полного разряда 3 В.

пятница, 26 сентября 2025 г.

Зависимость напряжения открытой цепи от времени и от степени зарядки

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

Графики делать отдельно для процессов зарядки и разрядки. 

Чтобы выбрать индексы в переменной, соответствующие нужному критерию, используется функция find (например, indn=find(I<0) - выдает индексы элементов массива I, которые меньше нуля, что соответствует разрядке батареи; построение только соответствующих точек как функции времени - plot(t(indn),I(indn))., подробнее - см. по ссылке (или же присвоить нужное подмножество элементов вектора другой переменной). Каждый рисунок подписать заголовком, описывающим, что изображено (используя title). 

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


Для построения зависимости напряжения от степени заряда (SoC), SOC можно определить двумя способами. Первый - непосредственно по определению

где интеграл с переменным верхним пределом вычисляется функцией cumtrapz (см. ее документацию по ссылке). Поправочный коэффициент h для разрядки близок к единице, для зарядки - подобрать так, чтобы при полной зарядке SoC=1.

Второй, учитывая постоянность тока разрядки и зарядки: 0 соответствует минимуму напряжения в данных, 1 соответствует максимуму напряжения в данных. Найти индексы минимального и максимального значения - использовать функции min и max с двумя выходами (значение и его индекс), см. подробнее по ссылке-1 и ссылке-2. Вектор SoC создать линейным семплингом от 0 до 1 с числом элементов массива, равным длине выбранного участка (функция length, см. по ссылке), см. по ссылке описание соответствующей функции linspace.

Свойства графиков

Линии и маркеры на графике модифицируются задаением их свойств - или в аргументе самой функции plot, или присвоив команде plot имя и перечисляя свойства командой set, примененной к этому имени объекта. 

Пример первого подхода:
    figure
    plot(t,I,'--','color','blue','LineWidth',1);
    hold on;
    plot(t(1:100:end),I(1:100:end),'o','MarkerSize',4);
    xlabel('{\it t}, s');
    ylabel('{\it I}, A');
    set(gca,'FontSize', 18, 'FontName','Times')

Пример второго подхода:
    figure
    pl1=plot(t,V);
    hold on;
    pl2=plot(t(1:100:end),V(1:100:end));
    xlabel('{\it t}, s');
    ylabel('{\it v}, V');
    title('C');
    set(pl1,'LineStyle','-','LineWidth',1,'color','blue');
    set(pl2,'Marker','s','MarkerFaceColor','magenta',...
       'color','black','LineWidth',1.5,'MarkerSize',10);
    set(gca,'FontSize', 20, 'FontName','Times');

Перечень свойств можно переносить на следующую строку (как это показано выше для объекта pl2), закончив разрываемую строку многоточием (это относится вообще в любым строкам). Объект gca - текущие оси (задается общие свойства типа размера и начертания шрифта осей). Полный перечень свойств графических объектов - по ссылке.




пятница, 5 сентября 2025 г.

Загрузка и построение данных

В базе экспериментальных данных, описанной в работе "Experimental data on open circuit voltage characterization for Li-ion batteries", находящейся в свободном доступе по https://doi.org/10.1016/j.dib.2021.107071, выбрать одну батарею (каждый студент в группе - свою, различную от прочих), скачать данные измерения тока и напряжения при цикле разряда-заряда при температуре T=20 oC и построить соответствующие графики. 

Разобрать данные, считанные с переменную data, в отельные переменные t (время), I (ток), U (напряжение), присвоив им все содержимое соответствующей колонки (например, t=data(:,1)); для данных разных экспериментов создать разные файлы (дополнив имена переменных номером эксперимента (например, t1 - время для первого экcперимента, t2 - для второго и т.д.).

Построить графики для всех экспериментов на одном рисунке (то есть на одном - для тока, на другом - для напряжения); индивидуальные фигуры создаются командой figure. Чтобы графики накладывались, после первого указать команду отключения перерисовки (hold on). Подписать оси с обозначением величин и их размерностей (xlabel, ylabel), каждых из графиков должен быть своего цвета и стиля штриховки - подробности оформления свойств линий и графика в целом см. по ссылке.

Подобрать нормально читаемый размер шрифта ('FontSize') и его начертание ('FontName'). Глобальное оформление текущих осей делается командой set, устанавливающей свойства, в данном случае, текущих осей (gca), например, set(gca,'FontName','Times').

Отчет: прислать m-файл, выполняющий все требуемые действия на электронную почту, заголовок файла в форме "Фамилия_1" (чтобы было видно, кто сделал и номер практического занятия). В начале файла комментарием (т.е. после %) указать название исследуемой батареи. 

пятница, 27 декабря 2024 г.

Практическое занятие: усекновение хвостов

 Ноги, крылья... Главное - хвост!

Из м/ф "Крылья, ноги и хвосты".


Те, кто сегодня не явился отчитаться по хвостам за практические задания - все, опоздали.

пятница, 20 декабря 2024 г.

Подготовка научных тектов в LaTeX


Общее введение:


Чтобы включить в текст красиво оформленные вставки кода на MATLAB/Octave, удобной использовать стилевой файл mcode.sty (альтернативный адрес для скачивания - на github).

Отдельные части кода выделяются окружением
\begin{lstlisting}

\end{lstlisting}
В строке отдельные программные команды и функции для этого пишутся аргументом команды \lstinline{}.


















пятница, 13 декабря 2024 г.

Продолжение предыдущего

 Что было, то и будет; и что делалось, то и будет делаться, и нет ничего нового под солнцем.

Екклезиаст, 1:9

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