123456789101112131415161718192021222324252627282930 |
- function [A,B,C,D] = go_lin (f,g)
- ## usage: [A,B,C,D] = go_lin (f,g)
- ##
- ##
- n_x = eval(g_nops(f)); # Number of states
- n_y = eval(g_nops(g)); # Number of outputs
- n_u = n_y;
- ## Create symbolic state list
- x = "{}";
- for i=1:n_x
- x = go_append(x,sprintf("x_%i", i));
- endfor
- ## Create symbolic input list
- u = "{}";
- for i=1:n_u
- u = go_append(u,sprintf("u_%i", i));
- endfor
-
- [A_l,A] = go_diff(f,x);
- [B_l,B] = go_diff(f,u);
- [C_l,C] = go_diff(g,x);
- [D_l,D] = go_diff(g,u);
- endfunction
|