Задача_на_торпеду
.docxСодержание
Теория 2
Входные параметры 4
Модель Simulink 5
Схема 5
M-файл smod 5
Условие окончания расчетов 6
Диаграммы 7
Показания, снятые с диаграммы v(t) 8
Выводы 9
Теория
Simulink – среда динамического междисциплинарного моделирования сложных технических систем и основной инструмент для модельно-ориентированного проектирования. Его основным интерфейсом является графический инструмент для построения диаграмм и настраиваемый набор библиотек блоков.
Он предлагает тесную интеграцию с остальной средой MATLAB и может либо использовать MATLAB, либо создавать сценарии из него.
Simulink широко используется в автоматическом управлении и цифровой обработке сигналов для многодоменного моделирования и проектирования на основе моделей.
Б локи Simulink, используемые в лабораторной работе:
S -function - обеспечивает доступ к S-функциям из блок-схемы;
M ux (мультиплексор) - объединяет входные сигналы совпадающего типа данных и сложности в виртуальный вектор;
D emux (демультиплексор) - извлекает и выводит элементы виртуального векторного сигнала;
S cope (осциллограф) - отображает сигналы, сгенерированные в процессе моделирования;
M ATLAB Function - генерирует встраиваемый код С;
Stop Simulation - обеспечивает завершение расчета, если входной сигнал не равен 0.
М-файлы в MatLab бывают двух типов:
файл-программы (Script M-Files), содержащие последовательность команд;
файл-функции (Function M-Files), в которых описываются функции, определяемые пользователем.
Ode – решатели ОДУ; реализация различных численных методов для решения систем ОДУ в MATLAB:
ode45 - одношаговые явные методы Рунге-Кутта 4-го и 5-го порядков в модификации Дорманда и Принца. Это классический метод, рекомендуемый для начальной пробы решения. Во многих случаях дает хорошие результаты, если система решаемых уравнений нежесткая.
ode23 - одношаговые явные методы Рунге-Кутта 2-го и 4-го порядков в модификации Богацки и Шампина. При умеренной жесткости системы ОДУ и низких требованиях к точности этот метод может дать выигрыш в скорости решения.
ode113 - многошаговый метод Адамса-Башворта-Мултона переменного порядка класса предиктор-корректор. Это адаптивный метод, который может обеспечить высокую точность решения.
Входные параметры
v=u(1); %скорость торпеды
x=u(2); %длина
Cx=0.35;%коэффициент сопротивления
p=1030; %плотность воды
r=0.127; %калибр торпеды
S=pi*(r/2)^2; %площадь поперечного сечения
m=30; %масса торпеды
F=2500;%сила тяги
R=Cx*((p*v^2)/2*S); %сила гидродинамического сопротивления
dv=1/m*(F-R);
dx=v;
Модель Simulink
Схема
M-файл smod
function [sys,x0,str,ts]=smod(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates=2;%длина вектора состояния
sizes.NumDiscStates=0;
sizes.NumOutputs=2;%количество выходов
sizes.NumInputs=2;%количество управляющих воздействий
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[0 0];%начальное состояние изделия
str=[];
ts=[0 0];
function sys=mdlDerivatives(t,x,u)
[dv,dx]=systemdu(t,x,u);%система уравнений
sys(1)=dv;%выходные параметры
sys(2)=dx;
function sys=mdlUpdate(t,x,u)
sys=[];
function sys=mdlOutputs(t,x,u)
sys=x;
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime=1;
sys=t+sampleTime;
function sys=mdlTerminate(t,x,u)
sys=[];
Условие окончания расчетов
function u=stop(x)
if x<150 %сантиметров
u=0;
else u=1;
end
Диаграммы
Вся диаграмма v(t), выводимая в осцилляторе;
Ч асть диаграммы v(t), на которой видны различия данных между решателями ОДУ (область 1):
Диаграмма зависимости x(t):
Показания, снятые с диаграммы v(t)
Ode45 |
Ode23 |
Ode113 |
||||
t |
υ |
t |
υ |
t |
υ |
|
0,062 |
5 |
0,061 |
5 |
0,061 |
5 |
|
0,131 |
10 |
0,124 |
10 |
0,124 |
10 |
|
0,199 |
15 |
0,195 |
15 |
0,194 |
15 |
|
0,291 |
20 |
0,279 |
20 |
0,279 |
20 |
|
0,401 |
25 |
0,395 |
25 |
0,393 |
25 |
|
0,609 |
30 |
0,609 |
30 |
0,599 |
30 |
Выводы
После успешного проведения лабораторной работы и получения результатов, можно сделать следующие выводы, касающиеся снятия данных в течение работы:
При выборе решателя ОДУ стоит обратить внимание на поставленную задачу. В расчетных задачах важнее всего точность вычислений, поэтому в лабораторной работе стоит обратить внимание на столбец №3;
Для предоставления результатов удобнее всего использовать графические методы решения задач (графики, диаграммы);
Выводы, относящиеся к, непосредственно, самим расчетам пуска торпеды:
Анализируя график зависимостb v(t) становится понятно, что для набора максимальной скорости υ = 33 см/с торпеде достаточно t ≈ 1.6 секунды;
Для того чтобы торпеда вышла из торпедного аппарата понадобится t = 4,8 секунды;
Расчеты в лабораторной работе показывают оптимальные выходные параметры, на которые следует опираться при проведении эксперимента или непосредственного запуска торпеды.
Программа, написанная в MATLAB и наглядно показанная в Simulinke, значительно сокращает время расчетов для других моделей торпед: необходимо всего лишь изменить входные параметры и получить результаты. Если это необходимо, поменять решатель ОДУ (например, если в приоритете стоит не точность вычислений, а скорость их получения).