how to create a variable without assigning a value to it and also the variables shouldnt be symbolic variables

조회 수: 20 (최근 30일)
syms e d
m= [27.5084 -10.7668 -9.7727;-20.6533 15.8060 14.8502];
k1=[27.5084*e -10.7668*e -9.7727*e;-20.6533*e 15.8060*e 14.8502*e];
g11=tf([27.5084],[1 0])
g12=tf([ -10.7668],[1 0])
g13=tf([-9.7727],[1 0])
g21=tf([ -20.6533],[1 0])
g22=tf([15.8060],[1 0])
g23=tf([14.8502],[1 0])
k2=[g11 g12 g13;g21 g22 g23]
k3=k2*d
i want the matrix k3 in terms of variable 'd' so i can optimize the matrix with respect to the variable 'd' but that is not happening as d is a sym variable
and also unable to perform any kind of command on k1 as it has sym variable , is there any way to rectify this

채택된 답변

Walter Roberson
Walter Roberson 2021년 7월 25일
syms e d
m = [27.5084 -10.7668 -9.7727;-20.6533 15.8060 14.8502];
k1 = m * e; %not used
k2c = arrayfun(@(V) tf(V,[1 0]), m, 'uniform', false);
k2 = [k2c{1,:}; k2c{2,:}]
k2 = From input 1 to output... 27.51 1: ----- s -20.65 2: ------ s From input 2 to output... -10.77 1: ------ s 15.81 2: ----- s From input 3 to output... -9.773 1: ------ s 14.85 2: ----- s Continuous-time transfer function.
syms S
K2N = cellfun(@(V) poly2sym(V,S), k2.Num)
K2N = 
K2D = cellfun(@(V) poly2sym(V,S), k2.Den)
K2D = 
k3 = K2N./K2D * d
k3 = 
This is symbolic, so you can start manipulating it, and can start optimizing.
  댓글 수: 3
Walter Roberson
Walter Roberson 2021년 7월 25일
syms e d
m = [27.5084 -10.7668 -9.7727;-20.6533 15.8060 14.8502];
k1 = m * e; %not used
k2c = arrayfun(@(V) tf(V,[1 0]), m, 'uniform', false);
k2 = [k2c{1,:}; k2c{2,:}]
k2 = From input 1 to output... 27.51 1: ----- s -20.65 2: ------ s From input 2 to output... -10.77 1: ------ s 15.81 2: ----- s From input 3 to output... -9.773 1: ------ s 14.85 2: ----- s Continuous-time transfer function.
syms S t
K2N = cellfun(@(V) poly2sym(V,S), k2.Num)
K2N = 
K2D = cellfun(@(V) poly2sym(V,S), k2.Den)
K2D = 
k3 = K2N./K2D * d
k3 = 
ik3 = ilaplace(k3, S, t)
ik3 = 
bhanu kiran vandrangi
bhanu kiran vandrangi 2021년 7월 25일
clc
syms e d
m = [27.5084 -10.7668 -9.7727;-20.6533 15.8060 14.8502];
k1 = m * e;
k2c = arrayfun(@(V) tf(V,[1 0]), m, 'uniform', false);
k2 = [k2c{1,:}; k2c{2,:}]
syms S t
K2N = cellfun(@(V) poly2sym(V,S), k2.Num)
K2D = cellfun(@(V) poly2sym(V,S), k2.Den)
k3 = K2N./K2D * d
K=k1+k3
GP=tfmatrix
CON=K*GP
% where GP is =
GP =
From input 1 to output...
0.005659 s^2 + 0.05206 s + 0.004496
1: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
0.003013
2: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
0.0006678 s + 0.003046
3: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
From input 2 to output...
0.003013
1: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
0.005659 s^2 + 0.02714 s + 0.004051
2: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
0.02554 s + 0.004018
3: -----------------------------------
s^3 + 9.357 s^2 + 2.228 s + 0.06147
i am getting a error while executing 'CON' in matlab as mentined above CON=K*GP
how to get past this error

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by