%% Exercice 9 - Commande à Priori (Feedforward) clear; clc; close all; %% 1. Définition du procédé K(z) h = 1; % Période d'échantillonnage (1 s) num_k = [1.8, 1.2]; den_k = [10, -12, 3.5]; K_z = tf(num_k, den_k, h); %% 2. Modélisation des boucles fermées Kp = 2; g = 0.5; % Sans commande à priori (g = 0) F_cl_sans = feedback(Kp * K_z, 1); % Avec commande à priori (g = 0.5) z = tf('z', h); F_cl_avec = ((g + Kp) * K_z) / (1 + Kp * K_z); %% 3. Affichage des performances en régime permanent fprintf('Gain statique sans commande à priori : %.2f (Erreur = %.0f%%)\n', ... dcgain(F_cl_sans), (1 - dcgain(F_cl_sans))*100); fprintf('Gain statique avec commande à priori : %.2f (Erreur = %.0f%%)\n', ... dcgain(F_cl_avec), (1 - dcgain(F_cl_avec))*100); %% 4. Tracé des réponses indicielles t_sim = 0:h:25; figure('Name', 'Effet de la commande a priori'); step(F_cl_sans, t_sim, 'r--'); hold on; step(F_cl_avec, t_sim, 'b-'); grid on; xlabel('Temps [s]'); ylabel('Sortie y(t)'); legend('Sans commande a priori (g = 0)', 'Avec commande a priori (g = 0.5)'); title('Comparaison de la réponse à un échelon');