Poor - Switching To LM method
Optimization terminated: directional derivative along
search direction less than TolFun and infinity-norm of
gradient less than 10 * (TolFun + TolX).
Оптимальні значення шуканих коефіцієнтів
Cu_opt розмірністю 5x1
+5.349004 e-001
+5.156158 e-001
+3.167675 e-001
+3.345843 e-001
+3.459092 e-002
Oshibka_0 = 1.444098e-004
----------------------------------------------- --------------
Час розрахунку:
0 годин, 0 хвилин, 34.703 секунд.
Додаток
1) % Програма синтезу управління системи самонаведення (розглядається частина% системи) методами обернених задач динаміки з використанням методу% матричних операторів (Лінійна модель)
close all;
clear all;
clc;
my_tic;
global Nl;
global U tgl;
global Krp Trp Ksn Tsn DZsn V G Kdy Kv mu Tc Xmax;
%% 1. Еталонний закон зміни кута teta (t)
% Час наведення
fId = fopen ('t_navedenija.dat', 'r');
t_f = fread (fId, inf, 'real * 8') ';
fclose (fId);
Nt_f = length (t_f);
h_t_f = t_f (2)-t_f (1);
T = t_f (Nt_f);
% кут theta (t)
fId = fopen ('theta_navedenija.dat', 'r');
theta_f = fread (fId, [1 Nt_f], 'real * 8');
fclose (fId);
% відстань до мети
fId = fopen ('r_navedenija.dat', 'r');
r_f = fread (fId, [1 Nt_f], 'real * 8');
fclose (fId);
fprintf ('1. Еталонний закон зміни кута teta (t) n ');
fprintf ('Кількість точок квантування за часом: Nt =% i; n ', Nt_f);
fprintf ('Крок квантування: h_t =% fc; n ', h_t_f);
fprintf ('Час ураження цілі: T =% f c; n ', T);
fprintf (' n');
my_plot2 (t_f, theta_f, 't, c ',' theta (t), радий ');
my_plot2 (t_f, r_f, 't, c ',' r (t), м ');
% перерахунок на більший крок квантування
Nt = 64;
h_t = T/(Nt-1);
t = 0: h_t: T;
theta = spline (t_f, theta_f, t);
r = spline (t_f, r_f, t);
my_plot2 (t, theta, 't, c ',' theta (t), радий ');
my_plot2 (t, r, 't, c ',' r (t), м ');
%% 2. Параметри системи
% Числові значення параметрів системи самонаведення
Krp = 1;%
Trp = 0.33;% з
Xmax = 24 * pi/180;% радий
Ksn = 0.283;% рад/с
Tsn = 0.155;% з
DZsn = 0.052; % p> V = 70 * 9.81;% м/с
G = 9.81;% м/с ^ 2
Kdy = 0.14;%
Kv = 1.2;% c
mu = 0.115;% з
Tc = 3.05;% з
fprintf ('2. Числові значення параметрів системи самонаведення n ');
fprintf ('Krp = % F; n ', Krp);
fprintf ('Trp = % F, с; n ', Trp);
fprintf ('Xmax =% F, радий; n ', Xmax);
fprintf ('Ksn = % F, радий/с; n ', Ksn);
fprintf ('Tsn = % F, с; n ', Tsn);
fprintf ('DZsn =% F; n ', DZsn);
fprintf ('V = % F, м/с; n ', V);
fprintf ('G = % F, м/с ^ 2; n ', G);
fprintf ('Kdy = % F; n ', Kdy);
fprintf ('Kv = % F, c; n ', Kv);
fprintf ('mu = % F, с; n ', mu);
fprintf ('Tc = % F, с; n ', Tc);
fprintf (' n');
%% 3. Формування ортонормированного базису
Nl = Nt;
setsize (Nl);
settime (T);
Ai = mkint;% оператор інтегрування
Ad = inv (Ai); % Оператор диференціювання
Ae = eye (Nl); % Одинична матриця
fprintf ('3. Базис - функції Уолша n ');
fprintf ('Кількість елементів: Nl =% i; n ', Nl);
pr_matrix (Ai, 'Оператор інтегрування Ai ')
pr_matrix (Ad, 'Оператор диференціювання Ad ')
%% 4. Розрахунок операторів системи
Arp = inv (Trp * Ae + Ai) * (Krp * Ai);
Asn = inv (Tsn ^ 2 * Ae +2 * DZsn * Tsn * Ai + Ai * Ai) * (Ksn * Ai * Ai);
Aos1 = Kv * mu * Tc * Ad * Ad + Kv * (mu + Tc) * Ad + Kv * Ae;
Aos2 = (Kdy * V/G) * Ae;
Apr = Asn * Arp;
Aos = Aos1 + Aos2;
As = inv (Ae + Aos * Apr) * Apr;
As = Ai * As;
fprintf ('4. Матричні оператори системи n ');
pr_matrix (Arp, 'Arp');
pr_matrix (Asn, 'Asn');
pr_matrix (Aos1, 'Aos1');
pr_matrix (Aos2, 'Aos2');
pr_matrix (Apr, 'Apr');
pr_matrix (Aos, 'Aos');
pr_matrix (As, 'As');